盖世无双之国产数据库风云榜 -2022 年 02 月
独钓寒江雪
千山鸟飞绝,万径人踪灭。孤舟蓑笠翁,独钓寒江雪。
墨老大(墨天轮)身披蓑衣,头戴斗笠,独自泛舟长白山天池之上。
扁舟一叶画中走,心绪怡然忘蜀天。卧龙藏虎三宝地,登峰临水一池天。
忽见北方天边飞来一白鹰,鹰爪下有一红色卷轴,忽然鹰爪一松,卷轴飞速飘向墨老大,只见墨老大右手扶着鱼杆,眼光平静看着湖面,左手伸出两指,精准接住左上方飞来的卷轴,正是心分多用,左右互搏术的无上神功,打开卷轴只见两个大字:“客到!”。
原来今天是2022年02月的数据库武林大会,八大门派 武当派(关系型数据库)、峨眉派(文档性数据库)、崆峒派(键值数据库)、昆仑派(宽列存储数据库)、点苍派(图形数据库)、华山派(分布式数据库)、青城派(云原生)、嵩山少林派(时序数据库)齐聚长白山上,墨老大(墨天轮)正是本次武林大会主持人。
只见墨老大起身脚尖轻点船沿,身体已向前飞去,一招武当梯云纵轻轻落到岸边,穿上滑雪板飞速向东南方滑去,前方经过一个百米高跳台,墨老大加速飞起,空中转体四周半,一个高难度的 1620 从空中划过,落地时使了一招千斤坠的功夫,双脚稳稳落到地面,落地后双手抱拳,面向八大门派,宣布 2022 年 02 月的数据库武林大会正式开始!
天下英雄出我辈
墨老大(墨天轮)转身背向众人,猛提一口气,忽有一阵狮啸声从口中发出,使的正是金毛狮王谢逊的成名绝技狮吼功,只见对面百米高台斜坡处震落大片雪花,一大片文字显露出来,原来墨老大(墨天轮)脚踩滑雪板从跳台飞下时,瞬间向斜坡雪地挥出数掌,虽然只有双掌,速度之快,看上去有如千掌一般,使用的正是少林派的大慈大悲千叶掌,在雪地上击出大片文字,众人抬头一看,这些文字原来正是 2022 年 2 月数据库武林大会排行榜。
只看排名前五名分别是:
第一名:华山派令狐冲(TiDB 数据库)
第二名:武当派冲虚道长(OpenGauss 数据库)
第三名:华山派剑宗封不平(OceanBase 数据库)
第四名:武当派张三丰(达梦数据库)
第五名:青城派余沧海(GaussDB 数据库)
可以看到,华山派令狐冲(TiDB)数据库)自从 2020 年初夺得武林盟主位置后,一直霸榜至今。
武林盟主令狐冲(TiDB)
华山派令狐冲(TiDB)虽然入门较晚,2016 年才成立,但天赋之高,进步之快让人望尘莫及,TiDB 是 PingCAP 公司自主设计、研发的开源分布式关系型数据库,是一款同时支持在线事务处理与在线分析处理 (Hybrid Transactional and Analytical Processing, HTAP) 的融合型分布式数据库产品,目标是为用户提供一站式 OLTP (Online Transactional Processing)、OLAP (Online Analytical Processing)、HTAP 解决方案。
数据分布
令狐冲(TiDB)成名绝技独孤九剑已达大成,特别是在 MPP 架构下,数据分布技术也是神乎其神。
对于基于 Shared Nothing 架构的并行数据库来说,数据分布(Data Distributing)是不可避免的。同时,整个系统的数据在多个处理单元上的分布状况也决定了系统的整体性能。如果数据分布不均匀,有严重数据倾斜,会出现短板效应,进而成为系统整体性能的瓶颈。因此,对于基于 Shared Nothing 架构的并行数据库,如何在整个系统上进行数据分布是数据库整体设计时需要重点考虑的一个问题。
各位武林前辈纷纷使用 HASH 分布、随机分布时,在某些特定场景下会出现性能问题,例如:
建表时 HASH 分布列选择不合理导致数据倾斜带来的性能问题。
多表连接时,连接列不是 HASH 分布列,需要动态重分布或拉取复制表而效率低下等。
华山派令狐冲(TiDB)确能另辟蹊径,选择一条不一样的道路,他使用独孤九剑破剑式将来源数据存入到 RocksDB 中,具体的数据落地由 RocksDB 负责。这个选择的原因是开发一个单机存储引擎工作量很大,特别是要做一个高性能的单机引擎,需要做各种细致的优化,而 RocksDB 是由 Facebook 开源的一个非常优秀的单机 KV 存储引擎,可以满足 TiKV 对单机引擎的各种要求。对于一个 KV 系统,将数据分散在多台机器上有两种比较典型的方案:
Hash:按照 Key 做 Hash,根据 Hash 值选择对应的存储节点。
Range:按照 Key 分 Range,某一段连续的 Key 都保存在一个存储节点上。
TiKV 选择了第二种方式,将整个 Key-Value 空间分成很多段,每一段是一系列连续的 Key,将每一段叫做一个 Region,并且会尽量保持每个 Region 中保存的数据不超过一定的大小,目前在 TiKV 中默认是 96MB。每一个 Region 都可以用 [StartKey,EndKey) 这样一个左闭右开区间来描述。
这种数据分布方式似乎解决了基于 HASH 数据分布带来的问题,建表时不需要指定 HASH 分布列,也不需要关心数据分布问题,不会出现因 HASH 分布列选择不合理导致数据倾斜的问题,也不会因为多表关联没有关联 HASH 分布列导致性能问题,然而是否会带来其他问题,还需要进一步调研。
2022 年 1 月 29 日,某国有四大行总行发布 HTAP 数据库集采项目中标公告,平凯星辰 TiDB 企业级分布式数据库成功中标。TiDB HTAP 数据库已经成为银行业务创新的重要引擎。
冲虚道长(openGauss)
排名第二的武当派的冲虚道长(OpenGauss 数据库)上升势头之猛,直逼武林盟主宝座,武力值高达 552.15 分,和第一名只差 37 分。
冲虚道长(OpenGauss 数据库)成名绝技太极剑法,精微奥妙,讲究神在剑先,绵绵不绝。以不变应万变,以己之钝,挡敌之无锋。如撒出了一张大网,逐步向中央收紧。这路剑法只是大大小小,正反斜直各种各样的圆圈,要说招数。可说只有一招,然而这一招却永是应付不穷。
openGauss 数据库基于 PG-XC 项目,深度融合华为在数据库领域多年的企业级场景应用经验,在总共 95w 万行的内核代码中,华为修改和新增了 70w 行核心代码,保留了 PostgreSQL 的接口和公共函数代码,着重在架构、事务、存储引擎、优化器和鲲鹏芯片上做优化和修改。
剑宗封不平(OceanBase)
剑宗大师封不平,本月武力值得分 514.71,较比上月上涨了 29.7 分,排名由第四名上升到第三名。
剑宗封不平,剑法不但招数精奇,而且剑上气势凌厉,并非徒以剑招取胜,对手便似是百丈洪涛中的一叶小舟,狂风怒号,骇浪如山,一个又一个的滔天白浪向小舟扑去,小舟随波上下,最后波涛所吞没。
OceanBase 是由蚂蚁集团完全自主研发的企业级分布式关系数据库,基于分布式架构和通用服务器、实现了金融级可靠性及数据一致性,拥有 100%的知识产权,始创于 2010 年。OceanBase 具有数据强一致、高可用、高性能、在线扩展、高度兼容 SQL 标准和主流关系数据库、低成本等特点。连续 8 年稳定支撑双 11,创新推出“三地五中心”城市级容灾新标准,是全球唯一在 TPC-C 和 TPC-H 测试上都刷新了世界纪录的国产原生分布式数据库。
HTAP 混合负载,用同一套高性能并行执行引擎,结合独有的数据存储方式,分别对交易和分析场景进行深度优化。隔离不同负载使用的计算资源,避免分析场景与交易场景相互干扰。
本月 OceanBase 分数上涨离不开新版本的发布。1 月 6 日,在 DC2021 分布式数据库开发者大会上,OceanBase CTO 杨传辉宣布 OceanBase 社区版 3.1.2 正式发布,并推出社区版工具体系,实现了可用性和易用性的双重飞跃。
OceanBase 数据库采用 Shared-Nothing 架构,各个节点之间完全对等,每个节点都有自己的 SQL 引擎、存储引擎,运行在普通 PC 服务器组成的集群之上,具备可扩展、高可用、高性能、低成本、云原生等核心特性。
OceanBase 数据库的整体架构如下图所示
数据分布
从数据分布的角度看,OceanBase 数据库是数据库分区表在分布式系统的实现,语法和使用兼容传统的数据库分区表。当表格的容量或者服务能力不足时,只需要通过 OceanBase 管理命令增加更多表格分区即可。
分布式分区表
传统数据库支持分区表,常见的分区方式包括 Hash 分区、Range 分区、List 分区,且支持二级组合分区。OceanBase 数据库沿用了分区表的使用方式,但是分区可以均匀分布在数据库任意节点上。OceanBase 数据库以分布式分区表数据模型为基础,一方面,数据存储和处理能力能够水平扩展,享受分布式技术的红利,另一方面,使用者不感知后端的分布式架构,可以像使用单机数据库一样使用分布式数据库,具有完整的全局索引和全局约束。
OceanBase 数据库对分区键的选择有要求,如果表格设置了 Primary Keys,那么分区键必须是 Primary Keys 中的列,如果表格没有设置 Primary Keys,那么分区键没有要求。
Hash 分区
Hash 分区需要指定分区键和分区个数。通过 Hash 的分区表达式计算得到一个 int 类型的结果,这个结果再和分区个数取模得到具体这行数据属于哪个分区。通常用于给定分区键的点查询,例如按照用户 ID 来分区。Hash 分区通常能消除热点查询。
下面的例子创建了 t1 表,选择 c1 列作为分区键进行 Hash 分区,分区个数是 5 个。
create table t1 (c1 int, c2 int) partition by hash(c1) partitions 5。
对于有关联性的表,建议使用关联键作为分区键,并采用相同分区方式,使用 Table Group 将相同的分区配置在同样的节点上,以减少跨节点的数据交互。
武当派张三丰(DM)
武当派张三丰,本月武力值得分 483.91,较比上月下降了 35.4 分,排名由第三名下降到第四名。
2022 年 2 月 9 日上午,2022 年湖北省服务高新技术企业“春晓行动”启动会议在武汉举行,会上湖北省科技厅联合湖北省科技信息研究院发布了 2021 年度湖北省高新技术企业百强名单。达梦数据凭借自身过强的实力,荣登湖北省高企百强榜单!
权威市场调研机构 IDC 发布的《2021 年上半年中国关系型数据库软件市场跟踪报告》显示,在中国关系型数据库市场上,武汉达梦数据库股份有限公司 2021 上半年市场份额同比增速达 229%,在国内外主流厂商中位列第 1。
达梦旗下有多种数据库产品:
其中,DM 数据库管理系统软件,简称“DM 数据库”。DM 数据库的定位跟 Oracle 一样,是大型通用关系型数据库。
达梦公司始终坚持原始创新、独立研发,目前已掌握数据管理与数据分析领域的核心前沿技术,拥有全部源代码,具有完全自主知识产权。DM 数据库在数据库思想上或者功能展现上会借鉴 Oracle 等商用数据库软件,或 PostgreSQL 等开源数据库产品,但在代码层面跟这些产品完全没有任何关系。
达梦分析型大规模数据处理集群 DMMPP
达梦分析型大规模数据处理集群软件(DMMPP)是基于达梦数据库管理系统研发的完全对等无共享式的并行集群组件,支持将多个 DM8 节点组织为一个并行计算网络,对外提供统一的数据库服务,最多可支持 1024 个节点,支持 TB 到 PB 级的数据存储与分析,并提供高可用性和动态扩展能力,是超大型数据应用的高性价比通用解决方案。
数据分布
支持多种数据分布,包括 HASH 分布、范围分布和随机分布;支持表的水平分区、垂直分区和多级混合分区,并提供了数据分布和数据分区的组合支持,提供了极高的灵活性。
青城派余沧海(GaussDB)
青城派余沧海(GaussDB),本月武力值得分 427.86,较比上月上涨了 39.55 分,排名不变,还是第五名。
GaussDB 是华为数据库产品品牌名,致敬数学家高斯(Gauss)。
旗下有多种数据库产品:
GaussDB T(OLTP)
GaussDB T(OLTP)数据库是华为公司自主研发的分布式数据库,前身是 GaussDB 100,基于华为公司在 2007 年开始研发并在电信计费领域规模商用的自研内存数据库全面改造,支持 x86 和华为 Kunpeng 硬件架构,基于创新性数据库内核,提供高并发事务实时处理能力、两地三中心金融级高可用能力和分布式高扩展能力,用于支撑金融、政府、电信等行业核心关键系统。当前支持单机、主备、分布式等主流部署方式。简单易用,Oracle 语法兼容性 98%。
GaussDB A(OLAP)
前身是 GaussDB 200,一款具备分析及混合负载能力的分布式数据库,从 2011 年开始,基于 PostgreSQL 9.2.4 的基础上自主研发,支持 x86 和华为 Kunpeng 硬件架构,支持行存储与列存储,提供 PB(Petabyte)级数据分析能力、多模分析能力和实时处理能力。
GaussDB A 采用 MPP(Massively Parallel Processing)架构,在核心技术上跟传统数据库相比有巨大优势,可以解决很多行业用户的数据处理性能问题,可以为超大规模数据管理提供高性价比的通用计算平台,并可用于支撑各类数据仓库系统、BI(Business Intelligence)系统和决策支持系统,统一为上层应用的决策分析等提供服务。
一入江湖岁月催:
DB-Engines Rankinghttps://db-engines.com/en/ranking
查看海外的封神榜(DB-Engines),占据榜单前两位仍然都是来自于日月神教(甲骨文)。
排名第一是日月神教教主任我行(Oracle),独门绝技吸星大法(OLTP)世间难逢对手。内功深厚,武功高强,虽然在国内市场逐渐缩小,但是龙头老大的地位仍是无法撼动。
排名第二的东方不败(MySQL),功力进步神速,本月武力值高达 1214.68 分,只比任我行(Oracle)低 42 分,也是武力值相差最近的一次,日出东方唯我不败。MYSQL 数据库是最为流行的开源数据库,全球前 20 大互联网网站有 90%使用是使用 MYSQL 使用数据库,另外 80%大数据平台都是与 MYSQL 数据库相结合。
华山派令狐冲(TiDB),在海外封神榜(DB-Engines)排名 94。
门派宝典:
还记得刚入数据库行业时,掌握一门 Oracle 技术,就可孤身闯荡江湖,之后又接触到了 MySQL、DB2、SQLServer 等关系型数据库,后来又在工作中接触到了 Redis、MongoDB 等 NOSQL 数据库,本来觉得今后学习了这些数据库技术,就会在这个行业有一定竞争力,然而随着国产数据库的飞速发展,目前已有 195 种国产数据库,如何学习国产数据库,成为当今 DBA 经常思考的问题。
平时在学习国产数据库时,第一个想到的就是官方技术文档,然而国产数据库厂商众多,各厂商技术能力参差不齐,发布的技术文档也是千差万别,甚至有些国产数据库官网上没有任何技术文档,只能通过百度、墨天轮社区等渠道接触到这些国产数据库曾经写的售前 PPT 等资料,对想学习的 DBA 来说非常不友好,不知是因为闭源原因,还是销售方式的不同,导致没有技术文档或不公开技术文档。
下面是热度排名前五数据库厂商的技术文档,各家技术文档完整性、技术细节、技术深度等各不相同,孰强孰弱高下立判。
TiDB 门派秘籍(技术文档)
https://docs.pingcap.com/zh/tidb/stable
openGauss 门派秘籍(技术文档)
https://opengauss.org/zh/docs/2.1.0/docs/Quickstart/Quickstart.html
OceanBase 门派秘籍(技术文档)
https://www.oceanbase.com/docs/oceanbase-database/oceanbase-database/V3.2.2/what-is-oceanbase
达梦门派秘籍(技术文档)
https://eco.dameng.com/docs/zh-cn/start/index.html
GaussDB 门派秘籍(技术文档)
https://support.huawei.com/enterprise/zh/cloud-computing/gaussdb-a-pid-250949677
技术文档无法在线查看,只支持下载
普通用户没有下载权限
需要成为客户或伙伴才能下载权限
IT 民工的建议
以下仅代表个人想法。
目前对数据库排名的方式有很多种,比如按热度排名、按销售额排名等,建议后续考虑引入国产数据库厂商技术文档完整度、技术深度等排名,提高技术推广效率。
有时在对比国产数据库某项功能时,往往需要查阅大量资料,甚至需要手动搭建环境进行测试,建议后续考虑针对国产数据库某些重要功能进行排名,比如国产分布式数据库数据分布技术排名、国产数据库锁机制排名、国产数据压缩技术排名、国产数据库水平扩缩容技术排名、国产数据库容灾技术排名、国产数据库维护难度排名等。
希望可以通过数据库更多维度的对比更加深入客观了解国产数据库,而不是对一些”世界第一”、”业界第一”等宣传关键字,或恶意贬低友商等行为所误导。
备注:文中引入了各种比喻,门派、武侠人物等请勿对号入座。
原文链接:https://www.modb.pro/db/331031
声明:本文为墨天轮作者 陈举超 原创内容,代表作者观点。如您对上述内容有意见和建议,请在下方评论区指点和交流,或点击作者墨天轮主页留言。*
相关阅读
墨天轮,围绕数据人的学习成长提供一站式的全面服务,打造集新闻资讯、在线问答、活动直播、在线课程、文档阅览、资源下载、知识分享及在线运维为一体的统一平台,持续促进数据领域的知识传播和技术创新。
关注官方公众号:墨天轮、 墨天轮平台、墨天轮成长营、数据库国产化 、数据库资讯
版权声明: 本文为 InfoQ 作者【墨天轮】的原创文章。
原文链接:【http://xie.infoq.cn/article/14883a372acbf392e7a0199c5】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论