众所周知,从零开始,坚持自主研发的厂商都经历过十年磨一剑甚至更久的时间对产品进行探索打磨,开发设计分布式事务数据库产品要考虑很多关键点:数据的一致性、数据的安全性、扩容性等,同时还要考虑是否具备现有的技术人才、预计投入资金成本与时间成本等等。
综合以上我们将问题进行了梳理并做了一定的解析,希望对大家有用
问题梳理:
金融行业面临传统数据库:Oracle、DB2等向开源数据库或分布式数据库的转型 2、 行业内有很多类似的分布式数据库,金融行业是否会借鉴行业内的方案进行开发自研 3、 金融行业在做分布式数据库产品研发项目时会主要从哪些方面去考虑 4、金融行业对待分布式数据库产品自主研发、联合研发、产品采购的哪一种是最终合理的方案
问题解析:
1、 金融行业面临传统数据库:Oracle、DB2等向开源数据库或分布式数据库的转型 (1)金融行业传统数据库Oracle、DB2等小容量业务系统数据库也即,吞吐量TPS、QPS不会超过单机或一机写多机读的X86INTEL芯片服务器或国产芯片服务器的数据存储容量和数据事务处理的能力,则: (1.1)60%及以上 金融行业传统数据库Oracle、DB2等小容量业务系统数据库 迁移到MySQL开源数据库产品。 (1.2)30%及以上 金融行业传统数据库Oracle、DB2等小容量业务系统数据库 迁移到五大传统国产数据库产品厂商,分别是:华为GaussDB T、人大金仓、达梦、神通、南大通用占据27%以上市场份额;其他传统国产数据库产品厂商:优炫、瀚高、海量数据等,可能占据3%及以内市场份额,丛市场上发力也能看到二线传统数据库产品厂商在金融行业更多是放弃进攻的态势。 (1.3)10%及以内 金融行业传统数据库Oracle、DB2等小容量业务系统数据库 迁移到PostgreSQL开源数据库产品,主要是甲方自己拥有技术实力及中亦安图等数据库服务厂商帮助甲方实施开源数据库PostgreSQL,也满足行里的自主研发的技术发展思路,特别说明下这里的10%不包含 华为GaussDB T 、 人大金仓 、 优炫、瀚高、海量数据 等都是拿PostgreSQL开源数据库产品做定制研发的国产数据库产品的市场份额。 (2)金融行业传统数据库Oracle、DB2等中大容量或高性能高吞吐量的业务系统数据库也即,吞吐量TPS、QPS 超过单机或一机写多机读的X86INTEL芯片服务器或国产芯片服务器的数据存储容量和数据事务处理的能力,则: (2.1)先名词解释下OLTP分布式数据库产品组成:存储引擎(或按金标委/信通院标准称之存储节点)、计算引擎 或按金标委/信通院标准称之计算节点) 、备份还原软件、跨数据中心容灾双活多活软件、可视化管理平台(是金标委2020年立项重点攻克的产品化降低技术门槛和运维门槛的一项难题,会议上领导特意提出热璞数据库HotDB的产品化做最好,可作为范例学习借鉴)。 (2.2)此类业务系统的数据存储容量、吞吐量TPS/QPS 能突破单机处理能力,则说明业务系统涉及的用户面较大、是内部活跃的业务系统,则业务系统等级就相对较高或行里重点发展的业务板块。则特别在意数据库产品稳定可靠、数据库厂商专注持续发展能力、数据库产品金融行业或同类要求行业的案例数量及案例规模等,另外结合一款数据库产品的存储引擎至少8年及以上才能研发成型和打磨成型,则90%以上金融企业会选择:成熟稳定世界范围打磨过的 存储引擎,且规避因数据库厂商倒闭或转型而束手无策的行为。(2.2.1) 招商银行、民生银行等选择华为数据库DDM合作 (2.2.2) 工商银行、平安银行等选择开源分布式数据库MyCAT做二次定制开发 (2.2.3) 国家开发银行、华夏银行、浦发银行、银联、上交所等 选择热璞数据库HotDB合作 (2.2.4) 南京银行、苏州银行等选择蚂蚁金服OceanBase合作 (2.2.5) 张家港银行选择腾讯TDSQL合作 (2.2.6) 北京银行 选择TiDB合作 (2.2.7) 中信银行选择联合中兴通信共享知识产权研发GoldenDB
2、 行业内有很多类似的分布式数据库,金融行业是否会借鉴行业内的方案进行开发自研 (1)民生银行:选择了淘宝开源TDDL进行二次研发,分库分表架构具有研发成本低、代码研发量小,只是业务场景受限而需要业务系统自己实现跨数据节点的操作。 (2)工商银行:选择开源分布式数据库MyCAT定制研发自己的版本。 (3)中信银行:选择借鉴 开源分布式数据库MyCAT 的思路,但同中兴通讯合作从零研发。
3、 金融行业在做分布式数据库产品研发项目时会主要从哪些方面去考虑 业务系统必须是OLTP业务场景,适合响应时间要求高到毫秒或亚秒级、TPS /QPS 要求高吞吐量等的业务场景
4、金融行业对待分布式数据库产品自主研发、联合研发、产品采购的哪一种是最终合理的方案 (1)基础软件:要是联合研发就能做成的,也不至于国内基础软件全部受国外企业控制,一断供就全新崩溃的风险,更不至于国家下命令式一把手绩效考核和重大立项扶持 基础软件行业的发展。 (2)时间成本角度:自主研发一款OLTP分布式数据库产要是 存储引擎 和计算引擎都从零研发至少8年的时间,这是任何非基础软件行业的企业或公司都无法接受的。 就算存储引擎采用开源数据库MySQL、PostgreSQL、RocksDB等,也至少需要5年的时间。 (3)经济成本角度:研发一款OLTP分布式数据库产品, 存储引擎采用开源数据库MySQL、PostgreSQL、RocksDB等的情况下,至少达到初步可用级别则 2亿人民币左右,每年还要继续投入 5000万以上研发经费,而采购一款OLTP分布式数据库产品 每年给 500万人民币则厂商服务周到。 (4)每家企业 或单位:主业都不会是基础软件研发,从时间成本、经济成本角度考虑,最后产品采购才是最佳的选择,只有专注产品研发的企业才能控制研发成本、试错打磨成本、时间成本、运维成本等。 备注:电力行业、银行、保险、运营商等都采用自主研发、联合研发过,最后都是此刻的现状依然采用Oracle/DB2等。