开源分布式数据库能否支撑银行海量非结构化数据应用?
作者: 巨杉数据库
随着银行业务的拓展以及网点业务的需求量加大,在新一轮技术浪潮驱动下,各大商业银行也在纷纷推进智能网点的建设。其中,商业银行的柜面无纸化就是最先推进的业务之一。
银行智慧化业务转型
包括广发银行、民生银行在内的大型商业银行,已经于近几年陆续上线柜面无纸化业务,并开始在全国网点进行推广使用。今后,随着柜面无纸化、“一站式”综合店员、人工智能等系统的陆续应用,各大商业银行也将全面实现网点智能化转型建设。
“无纸化”业务作为商业银行的新一代应用业务,对于数据管理带来了新的挑战。针对银行在新一代柜面无纸化业务上的痛点需求,巨杉数据库在保证稳定安全的基础上,利用其所支持的非结构化存储、结构化事务、可弹性扩张、高可用、以及多数据中心灾备等能力,全面支持广发、民生银行的柜面无纸化业务,为业务带来巨大提升。
金融级分布式数据库助力大型商业银行
巨杉数据库(SequoiaDB)为底层数据引擎的分布式非结构化数据管理平台,已经在包括民生银行、广发银行在内的超过 50 家大型银行业务应用。在某大型股份制商业银行业务系统中,巨杉数据库总集群部署节点数达到 122 台物理服务器,部署逻辑节点 1530 个,平台服务银行网点数超过 840 个,性能响应在毫秒级别,数据实现了同城数据中心灾备和双活。
大型商业银行,平均有超过 300~400 个业务系统,每一个业务系统既有完整技术栈,又和不同的业务之间存在许多的相互依赖和相关的关系,业务和技术复杂度远超其他行业。此外,银行对于平台可靠性要求最为严苛,核心数据需保证 0 丢失、0 错误率,核心业务系统也有“5 个 9”以上的稳定性要求。这些要求给后台数据库带来了极大的要求,因此业界也戏称银行是企业级数据库的“试金石”。
巨杉数据库分布式双活部署整体示意图
1)非结构化数据存储
作为一款分布式的交易型数据库,SequoiaDB 数据库提供了同时存储结构和和非结构化引擎的机制,非结构化数据的存储在引擎中主要是以 LOB 形式来实现的。SequoiaDB 3.0 在对象存储 API 的基础之上提供了标准 Posix 文件系统接口,能够原生接入任何支持 Posix 协议标准的操作系统,用户对应用程序无需任何改造即可从 NAS 迁移至 SequoiaDB。
在巨杉数据库中,LOB 大对象存储引擎可将各种尺寸的非结构化文件切分成小存储块,按散列映射存放于集群的多个数据组,实现文件的高效并发存取,对外提供对象标识进行文件访问。
在巨杉数据库中,LOB 存储结构分为元数据文件(lobm)与数据文件(lobd)。其中,元数据文件存储整个 LOB 数据文件的元数据模型,包括每个页的空闲状况、散列桶、以及数据映射表等一系列数据结构。而数据文件则存储用户真实数据,数据头之后所有数据页按照页面大小进行切分,每个数据页不包含任何元数据信息。
LOB 存储结构
与结构化数据的记录引擎完全不同,巨杉数据库的非结构化存储提供了原生的对象文件块存储机制,同时适用于影像类大文件与票据类小文件。在巨杉数据库对小文件存储与检索的过程当中,每个数据块均使用散列算法判断其所处的物理位置,因此不会进行任何物理查表操作,数据库也不需要维护每个对象文件的物理位置表,因此不论从安全性、吞吐量、以及响应速度都远远高于其他同类对象存储。
2)多活与灾备
巨杉数据库的原生分布式架构,一方面提供了引擎级别的内部数据多副本和高可用以及基于 Raft 算法的数据一致性的保证。同时,在跨数据中心层面,可以做到分布式集群为单位的容灾和多活机制,在满足数据安全要求下减少了数据安全方面的部署和运维难度。
从多活架构的角度看,巨杉数据库都秉承着计算存储分离的设计思路,因此其 SQL 解析与执行器往往与数据存储和事务控制分别运行在不同的进程中。在这种情况下,利用数据库自身分布式与三副本复制的特性,将数据打散放置在多个数据中心内,每个数据中心配置本地 SQL 服务节点,从应用程序的角度看不需要关注底层数据库的主从架构,仅需要通过 JDBC 连接到本地的 SQL 服务节点进行读写操作即可。在这种架构下,每个 SQL 节点完全对等,并均可以处理读写操作。所有的事务控制、一致性控制、锁等待等机制都由底层的分布式数据库直接提供。
以两地三中心为例,在该架构中,城市 A 机房 1 作为主机房,提供与同城的机房 2 之间的同步数据复制。而对于城市 B 的机房来说,在带宽足够的情况下可以选择使用同步机制与城市A的机房进行数据复制。而在带宽不足时则可以选择异步的复制方式。
同时,巨杉也支持异地灾备机房的定期追加更新。用户可以通过定义异地灾备机房的同步策略,使灾备机房定期进行日志文件的同步,以做到灾备机房与主机房的数据拥有一定的时间差异,避免手工误操作。
多活与灾备
3)高性能实时性能响应
通过分布式架构,多维数据分区,高性能索引,以及数据压缩等机制,影像平台无论非结构化数据还是结构化数据在大数据量下依旧保持性能的平滑扩展,实时响应。在性能测试对比中,对比巨杉数据库,传统 NAS 方案想要达到同样吞吐量至少需要 3 倍以上的磁盘数量。
以下是巨杉数据库在实际测试环境中,对于非结构化数据管理这块的测试数据:
- 2GB/s 的整体吞吐量,分布式架构
- 6 节点 x86 服务器、整个集群共 36 块 SAS 盘
- 传统方案,高端配置:5GB/s 120 块盘以上
100% 写入场景:
100% 读取场景:
混合业务场景:
民生银行:
民生银行是中国第一家主要由民营企业发起设立的全国性股份制商业银行,截至 2017 年末,中国民生银行已经成为资产总额 59,020.86 亿元,一级资本净额超过3800 亿元、资产总额超过 5.9 万亿元、分支机构近 3000 家、员工近 5.8 万人的大型商业银行。在英国《银行家》杂志 2017 年 7 月发布的全球 1000 家大银行排名中,中国民生银行位居第 29 位。民生银行坚持“民营企业的银行、科技金融的银行、综合服务的银行”的战略定位,锐意变革创新,加速战略转型,致力于成为一家特色鲜明、价值成长、持续创新的标杆性银行。(摘自民生银行官网)
广发银行:
广发银行是国内首批组建的股份制商业银行之一。目前在全国设立了 43 家一级分行、843 家营业机构,并与全球125个国家和地区的 1,718 家银行总部及其分支机构建立了代理行关系,为超过 30 万对公客户、3,422 万个人客户、5,711 万张信用卡客户、2,427 万移动金融客户提供优质、全面的金融服务。广发银行在移动金融创新领域一直走在行业前列,强力推动智慧化银行发展,持续推动移动金融创新,在升级普惠金融、助力实体经济等方面取得了丰富成果。(摘自广发银行官网)
小结
目前,巨杉数据库已经在目前,巨杉数据库付费企业级客户与社区用户总数超过 1000 家,并已在超过 50 家 500 强级别的银行、保险、证券等大型金融机构生产业务上线。
对于非结构化数据管理,巨杉数据库在金融行业的应用场景包括:金融行业新一代影像平台、内容管理云平台、传统 ECM 替换、计算机视觉与人工智能、金融双录系统以及电子证照等数十个个业务场景。