又一国产数据库诞生!腾讯发布 TGDB,实时查询比 Neo4j 快 20-150 倍!
AI 技术生态论」 人物访谈栏目是 CSDN 发起的百万人学 AI 倡议下的重要组成部分。通过对 AI 生态顶级大咖、创业者、行业 KOL 的访谈,反映其对于行业的思考、未来趋势判断、技术实践,以及成长经历。
本文为 「AI 技术生态论」系列访谈第三十四期。
百万人学 AI 你也有份!今日起,点击阅读原文报名「2020 AI开发者万人大会」,使用优惠码“AIP211”,即可免费获得价值299元的大会在线直播门票一张。限量100张,先到先得。
近日,又一国产数据库诞生!这次是腾讯家推出的分布式图数据库产品——腾讯云数图 TGDB(Tencent Graph Database)。
据称,这款数据库能够实现万亿级关联关系数据实时查询,高效处理异构数据,支持实时图计算。从理论上说,该图数据库的集群节点规模可以达到万台以上,在不同的公开数据集下查询速度比世界市场占有率最高的 Neo4j 快 20-150 倍!
在近年,图数据库逐渐火爆起来,据 Gartner 在《十大数据分析技术趋势》预测,2012 年至 2022 年,全球图处理及图数据库的应用都将以每年 100% 的速度迅猛增长,DB Engines 近 7 年数据库流行趋势也显示,图数据库相较其他主流数据库受欢迎程度遥遥领先。
此前,业内主流图数据库产品主要为国外厂商,国内金融、电商、能源等重点行业只能依赖于国外图数据库产品。在此背景下,关于我们什么时候能拥有真正能满足国内企业需求的强大国产数据库,成为大家关心的热门话题。好在随着大数据,尤其是图数据的重要性被更多厂商意识到之后,国内大小厂也相继推出了自己的图数据库产品,试图打破国外技术厂商的垄断,包括大厂阿里云的图数据库 GDB,蚂蚁金服自主研发的分布式图数据库 GeaBase,华为的 GraphBase,小企业如杭州欧若数网科技也有自己的图数据产品 Nebula Graph,维加星信息科技的TigerGraph 等。
按照理论,从技术适配性、安全性、成本上来说,国产数据库产品应该更加符合国内企业的需求和信息化的节奏。事实上是这样吗?我们今天的关注重点,是与已经发布的图数据库产品和国外数据库产品相比,腾讯云数图新发布的这个 TGDB 有哪些特别之处?是否比它们更有优势?为此,CSDN 邀请到腾讯云图数据库产品经理邵宗文,来从研发背景到上层设计,全面评估一下这个图数据库产品是否名符其实。
TGDB 的研发背景
在 5G、物联网、人工智能等数字化技术的推动下,企业数据呈爆发式增长,数据间的关联复杂度也随之剧增。传统关系型数据库在处理复杂关联数据时运算效率较低,且难以帮助企业进一步挖掘海量关系数据背后的价值。为了更好地利用数据间的连接,企业需要一种将关系存储为实体、灵活拓展数据模型的数据库技术,腾讯看到了图数据库潜藏的机会。
在深入调研后,腾讯发现客户其实往往需要的是一辆车,除了制造图数据库发动机之外还需要一系列合作伙伴来做配套,才能满足企业的需要。目前,腾讯的图数据库生态构成主要都是行业顶尖数据库人才和及相关上下游合作伙伴,其中有海归,和 10 多年数据库领域的资深专家构成,重点研究方向包括图数据库分布式存储、高性能计算、图算法,以及生态组件如迁移工具、可视化、数据抽取、数据建模等。
图数据库技术上的突破
相比于国内外其他图数据库产品,TGDB 有一些独特的特性。总的来说,正是因为 TGDB 在技术上的一些突破带来了性能上的提升和架构上的灵活扩展,才实现了全新的特性,包括去中心化纯分布式架构、高效的原生存储、图切割和分布式算法等。
去中心化分布式系统架构
据邵宗文介绍,TGDB 采用了去中心化分布式架构,理论上支持线性扩展,从目前的部署和使用来看,TGDB 的图数据存储极限还远没有到达极限,在实验室中,团队曾在测试中测得图数据集群节点数量为 100 台,但根据理论推演,TGDB 图数据库的集群节点规模可以达到万台以上,在不同的公开数据集下查询速度比世界市场占有率最高的 Neo4j 还要快 20-150 倍。
如此大规模的存储极限和极快的查询速度,与 TGDB 的系统架构设计分不开。
TGDB 分布式图数据库从内部架构上主要分 3 层:
资源管理层:负责对底层计算与数据资源进行管理和调配,简单地说,就是负责协调把每个计算任务和对应的数据按照某种算法分发到各个分布式节点上执行、监控、容错并汇总结果;
数据抽象层:提供了属性图(Property Graph)的抽象,涉及到图的数据结构、存储方法、访问模式和消息协议;
上层算法应用层:提供了基于分布式计算引擎的算法,这些算法需要访问数据抽象层的图数据,按照每个算法不同设计,把算法的执行变为可以分布式并行处理的单元,交给资源管理层执行。
TGDB 图数据库系统在集群部署的架构是完全分布式去中心化的,各个节点都很平权,不存在单 master 的单点故障或为了防止该问题而导致的系统复杂度。
底层数据一致性基于一套稳定的消息队列和快照机制,使得任何节点和过程都可以假设一个虚拟的稳定的中间信息交互平台,并且平台保证消息的全局一致性、排序、最高一次送达等保证,同时支持多份热备,结合合理的机柜布局,可以保证高容错能力。
从技术层面上来讲,TGDB 是如何才能实现万亿级关联关系数据实时查询?对此,邵宗文做了详细的解释。
他说到,大规模的实时查询不是一个简单的查询分流或者优化就可以解决的,需要查询计划优化、高并发任务处理机制、分布式底层资源管理与系统部署架构的紧密配合才能高效实现。
具体来说,TGDB 首先把每个查询或计算请求变成一个优化的 DAG(Directed Acyclic Graph),分布式任务通过 DAG 模型保证前置依赖正确完成,每个 DAG 的顶点是一个可执行任务,边是一个逻辑先后关系或数据传输任务,各个机器节点并行调度分解任务,每个 DAG 被分解成了多个没有相互依赖的独立计算任务,这类计算任务变的非常容易被并行的分发与执行,因为任务之间没有了依赖关系以及消息发送/接受/处理等问题,大大降低了系统任务控制复杂度,实现了高并发计算工作流优化控制。
TGDB 分布式资源管理逻辑负责统一管理和调度集群的计算资源和数据存储资源,任何分布式机器节点上都可以进行任务注册和发布,支持跨多平台移植,功能上提供任务的监控、转移和恢复。分布式资源管理使用了 bag of tasks 模式,在平台内构建了资源池,使得其中的计算任务可以被各个节点智能获取执行,高效发挥去中心化自组织架构的优势,实现最优化、无瓶颈、高容错的调度分布式资源。
简单地说,基于这样的设计,高并发的实时查询可以被系统分拆成易于分布式并行执行的单元,被整个系统优化执行。
原生图存储
从存储计算方式上来说,TGDB 使用了原生图存储,不依赖于任何第三方数据存储平台,如 HBase 或 RocksDB 等,存储系统是腾讯自主研发,这一点和国外的 Neo4j 等原生图类似,而不同于开源的 JanusGraph 等产品。
相比之下,原生图在查询和运算速度上比非原生图有巨大的性能优势。为了说明这一点,邵宗文打了个比方:原生图上层和存储通讯相当于一个人自己与自己在脑中对话,非原生图上层和第三方存储通讯相当于人和人之间用语言来沟通,需要喊一声,对方听到,再回复。可以看到,非原生模式下,性能代价更高,尤其是在进行深度图查询、多轮迭代计算、图的数据量变时,劣势会更加明显。
图切割算法
传统的图算法大多是基于矩阵来进行表达和运算的,而 TGDB 的另一个技术特点是分布式,不仅是系统架构和部署上的分布式,更重要的是分布式的图分割算法和其他分布式图算法的设计和实现。是否支持图分割也是一个图数据库是否能真正支持线性扩展的关键,这一点与一些其他数据库产品有本质区别。TGDB真正实现了把一张大图分割成一片一片的小图,分散到各个分布式节点存储,而不是用 Raft 协议等搭建一个单节点,全图没有图切割、分布式节点上每一个节点都是全图的存储方式。显然,后者本质上还是要把所有数据在一台单机上存储,无法真正支持数据量的延展。TGDB 是原生的分布式图数据库,数据存储抽象就是顶点和边,不是矩阵的形式,同时进行了图分割,把一张大图分成了很多片存放在了多台服务器上。在这种新的结构下,传统的图算法需要彻底重写,变成用顶点和边的形式、充分考虑图数据分片的分布、极致优化跨服务器消息传输的方式,以实现可扩展的分布式并发执行。
其他特性
查询语言支持 Neo4j 的 Cypher 语言
在查询语言方面,TGDB 支持 Neo4j 的 Cypher 语言,可以和 Neo4j 进行简单替换,也支持易用的图形用户界面,让分析人员不用编程就可以快速进行图管理和图迭代分析。
TGDB 具有高扩展、高集成、运算快、轻部署等特点,核心功能如下表:
与 AI 前沿技术相结合
TGDB 目前支持多种算法并在不断增加,同时,它可以和腾讯的柏拉图计算引擎平台结合,输出算法能力,包括一些图神经网络的算法。另外,邵宗文提到,如前所述,传统图算法在分布式架构下需要被重构优化,TGDB 在这方面还有很多科研任务要完成,这也是学术上的一个前沿领域。
图数据库展望:首先在金融领域有爆发式增长
作为图数据库领域专家,邵宗文从技术创新和应用两方面对图数据库未来的发展趋势做了一个预测。
他预计,图数据库预计会首先在金融领域有爆发式增长,因为之前传统的关系型数据库或大数据其实受限于先天架构问题,比如传统数据库无法很好解决金融风控相关问题,以及员工和亲属、员工与客户、客户之间的关系、业务合规的关系,这些都是非常复杂的关系。
另外,随着 5G 时代的到来,人与人、人与物、物与物的联结信息会越来越多,这也为图数据库提供了很好的发展机会。
TGDB 未来规划:到传统行业大展拳脚
当前,TGDB 的应用场景包括互联网、金融风控、物联网、电力网络、电子商务、智慧交通、生物序列研究、医疗诊断决策、疾病传播分析、辅助司法决策、公共安全等。但在未来,邵宗文表示,TGDB 还将深挖传统行业,如能源、电力行业数据之间的关联。他说道,这些行业虽然已经具备了一定的数据整合能力,但数据之间关联关系的挖掘其实还比较困难,以电力知识图谱为例,支持对电网中接入的各类时序量测数据进行存储和更新,并直接对电网中电力设备的从属关系和拓扑结构进行表示,全面揭示设备状态和设备之间的关系,实现全网设备的监控与管理。不同于传统的基于向量和矩阵进行大型运算的耗时操作,由于复杂的电力网络及知识以图结构进行了表示,可以直接在图上进行查询和计算,并将计算结果直接作为图中的元素进行存储,大幅提升电网计算和分析效率,实现电网运行方式检索、设备状态推理、设备画像和家族性缺陷分析等应用。
而这些,都是 TGDB 未来可以大展拳脚的领域。
更多精彩推荐
☞刘强东卖光碟,周鸿祎“电脑算命”,马云卖鲜花,盘点 IT 大佬摆过的地摊