大数据时代的业务增长带来了两个明显的变化:数据量的剧增和数据关联的复杂化。与此同时,用户对于数据价值的期望越来越高,这些变化催生了数据库的变革和创新。图数据库由于提供了对关联数据最直接的表达,以及图模型对异构数据天然的包容力,使得图数据库迎来飞速发展的状态。
2019 年年初,Gartner 数据与分析峰会上将图列为 2019 年十大数据和分析趋势之一,并预计到 2022 年,全球图处理及图数据的应用将以每年 100% 的速度迅猛增长,2020 年保守估计将达到 80 亿美元。市场尚处于蓝海,竞争却遍布全球。
图片来源:Gartner 2019 年十大数据和分析技术趋势
在美国,图数据库是近年来所有数据库里发展速度最快的,其中一家典型的公司就是 TigerGraph。TigerGraph 成立于 2012 年,总部位于硅谷。2017 年 11 月 8 日,TigerGraph 发布新一代企业级实时图数据库平台,在市场上引起轩然大波。为什么从创立到发布第一款产品间隔了 5 年?TigerGraph 中国区总经理乌明捷解释,“基于 C++ 从底层核心做起,利用分布式技术,支持万亿级别节点,具备高性能和高可扩展性,并且操作界面十分简单。我们用 5 年的蛰伏换来了产品的好口碑。原生、并行是我们的差异化优势。”
而在国内,越来越多的公司也开始进入图数据库领域,针对内部的产品开发相应的图数据库系统,但这种图数据库的应用针对性较强,所以并不适用于市场上其他客户。
纵观数据库的发展,对于任何达到一定规模或价值的数据,图数据库都是呈现和查询这些关系数据的最好方式。而理解和分析这些图的能力将成为企业未来最核心的竞争力。正如 TigerGraph 公司的创始人许昱博士所言:“在大数据时代,数据是新的石油,而基于图的数据分析就是新的炼油厂。”
图计算重点包括两点:图数据库和图分析引擎,前者重点关注 OLTP ,后者重点关注离线图计算,当然这二者的界限有时候不那么清晰,比如有些图数据库内置了图分析算法的实现,有些图分析引擎也实现了事务和持久化。
图计算在近几年受到广泛的关注,主要有以下几个方面的因素:
适合以图表达的数据积累到一定程度了,对隐藏在图数据中的知识挖掘的需求也随之越来越强烈。
图神经网络是深度学习的一个重大创新。深度学习发展遇到了瓶颈,不可解释性是其固有的顽疾。而与深度学习相结合的图计算将端到端学习与归纳推理相结合,有望解决深度学习无法处理的关系推理、可解释性等固有问题。
知识图谱受到越来越多的重视,其中确定性的知识会以实际顶点和边的形式存储在图数据库中,概率性知识一般需要依赖于图分析引擎,进行知识推理。图神经网络和知识图谱将是未来引爆图计算的机会。
但是,图要实现大规模应用,必须先攻破的技术难点之一就是如何提升图分析能力。原生的图数据存储可以跨越数据孤岛,进行有效的建模,探索和查询具有复杂关系的数据,进而解决 SQL 在查询复杂数据问题并不总是有效的问题。但问题是,图数据的存储和分析对数据规整性要求高,一旦数据规整性差,就会影响计算,且分析难度会随着分析维度的增加而增加。
2019 年年初,谷歌前员工,同时是图数据库服务企业 Dgraph 创始人 Manish Rai Jain 站了出来,在文章《10 年了,为何谷歌还是搞不定知识图谱》中回顾了 Dgraph 这个数据库产品的前世今生,也顺道爆料了一些谷歌这么多年没能搞定知识图谱的内幕,包括公司内部斗争、项目发展方向多次被误导等。他尤其指出了大多数工程师存在的思维误区:认为图实际上是一个很简单的问题,可以通过在另一个系统之上构建一个层来解决。
实际上,图计算引擎是图技术发展的关键。
从图技术本身来看,整个图计算领域可进一步细分为查询分析、计算引擎、存储管理、可视化等子方向。目前并没有一种涵盖所有子方向的图引擎。例如图数据库 Neo4j、Titan 等擅长于图数据的事务性查询,但并不能高效地进行离线分析;分析引擎 Turi、GraphX 侧重图数据的离线分析和挖掘,却不能对属性图进行管理,且不支持实时查询。图计算引擎多种多样。最出名的是有内存的、单机的图计算引擎 Cassovary 和分布式的图计算引擎 Pegasus 和 Giraph 。
图从应用层面来看,存在以下几个问题:
1、在金融反欺诈、社交、营销、物流和 IoT 领域应用广泛,但是很少有端到端的解决方案,用户使用门槛较高。另外,新技术的实操积累尚不成熟。以知识图谱为例,前几年大家讨论的是应用实现,所以知识图谱火了。但是,当项目要落地时碰到了很多技术上的障碍,比如在性能上,数据加载就是一个瓶颈,这导致知识谱图不能实时及时更新,使很多项目上不了线。目前,超级顶点问题、OLTP 与 OLAP 融合问题、图划分、流式图数据处理,仍然是学术界和工业界研究的重点。
2、从企业用户的角度,数据质量、应用方法不成熟,用户没有明确自己要什么,导致图技术落地困难重重。图数据库的实施流程一般包括:业务理解、图 Schema 设计、业务数据加工、业务验证和监控运维 5 个步骤。其中第一步就是业务理解,这一步需要用户明确自己要什么,理解业务数据和业务问题,将业务问题映射成图问题,并确认数据来源、存储介质、更新方式、容灾方案等,并匹配相应的软硬件资源。很多企业用户还没有清楚地理解业务就开始设计,导致后面惨淡收场。所以,当前应用图数据库的主要还是 BATJ、今日头条、华为等一线企业,以及大中型金融机构、政府等。
3、从市场竞争角度,现在有很多不同类型的图数据库产品,每种产品的优势不同,随着图数据库在各个垂直行业的企业和用例中不断得到应用,了解其中的差异非常重要。图数据库现状对比如下图所示。
选一个图数据库,主要从性能、查询能力、计算能力等各方面去考虑。
在性能层面:要求图查询及图分析算法的执行快,就要涉及到底层存储结构。原生图存储因为是基于点和边,在计算过程中不需要过多的逻辑和物理层转换,存储和计算是并行的,因而速度最快,典型的代表就是 TigerGraph。
在查询能力上,通常普通图数据库查询 3 度及以上性能就很低了,而实际经常需要查询 6 度的关系。测试报告显示:只有 TigerGraph 完成了 6 度关系查询。另外,为了处理大型且不断增长的数据集, TigerGraph 设计为可横向扩展和纵向扩展。无论在图中遍历的步数有多少,实时大图均可以实现超过千万级点边遍历 / 秒 / 服务器,近万次更新 / 秒 / 服务器的实时大图分析。同时, TigerGraph 还提供实时深度关联分析,可实现 10 步以上的大图遍历,以及快速的图遍历与数据更新。
图分析计算能力:图数据库如果仅具备存储及查询能力,则还需要依赖外部的 GraphX 等计算引擎才能完成一些图算法分析,这样在数据传输和图表达上存在转换浪费的问题。TigerGraph 可以通过 GSQL 实现类存储过程式的算法封装,加快数据加载和算法执行速度。
除了技术上的差异外,在商业理念上,不同图数据厂商的考量也不同,以 Neo4j 和 TigerGraph 为例。
Neo4j 诞生于 2007 年,最开始是一个开源项目。Neo4j 能发展到现在有其先天的优势,那就是赶上了开源软件的黄金期,整个生态和 Neo4j 用户贡献的 idea 非常多。可视化、管理界面、语言设计良好是 Neo4j 先发的优势,并且早期因为是开源的,大家都在用 Cypher ,因此使用基础比较好。
2018 年 11 月 15 日,Neo4j 产品副总裁 Philip Rathle 宣布,从 Neo4j 3.5 版本开始,企业版将仅在商业许可下提供,不再在 GitHub 上提供源代码。在一定程度上也是受到了后来者 TigerGraph 业务快速增长的压力。
戏剧性的是,在 Neo4j 宣布停止开源后不久,全球速度最快的企业级图分析平台 TigerGraph 宣布,正式开源 TigerGraph GSQL 图数据库算法库,发布三大类十大核心算法,让用户可以直接拿来使用,同时还会陆续推出一些可视化工具,降低图数据库应用门槛。
从商业模式角度,一开始 TigerGraph 没有选择开源,主要是从企业用户角度去考虑,比如金融企业真正要上一个生产系统,为安全起见,他们一定会选择付费而不是开源的模式。TigerGraph 之所以后来开源了图数据算法库,也是基于业界对于图数据库有了更强烈的需求,希望推动图数据库应用的落地。
如果将图计算的发展划分为萌芽期、发展期、成熟期、泡沫期几个阶段的话,当下图计算还处在发展期。在图数据库领域,远没有达到目前传统 RDBMS 的成熟程度,具体表现在:
图数据库产品极大丰富,出现几家具有垄断性地位的玩家,性能和功能全面碾压其他产品。
图数据查询语言完成 ISO 标准化(目前 OpenCypher 和 GSQL 处于“绝对赢家”地位),并且大部分产品都遵循这个标准,并出现数据交换标准。
用户受到普遍教育,能像使用 RDBMS 一样很自然地接受图数据库应用,出现大量第三方图应用程序开发商和集成商。
相较之下,图分析引擎的成熟度弱于图数据库,目前偏学术性研究的有不少,但是工业级的产品非常少,并且缺乏专门为图分析设计的框架和产品,目前很多一线公司都还是使用 Spark、Flink、MapReduce 等通用计算框架来做图计算,性能肯定不如专门为图分析设计和优化的系统。学术系统往往关注一个细小的改进点,限制在特定场景下应用。另外一个最大的问题是产品化普遍偏弱,易用性和容错性不好,一般运行在抽象图上,用户需要利用其它工具进行预处理。
Twitter、Facebook 和 Google 等公司很早就采用了图数据库,此后这一技术不断升温。云服务提供商巨头 Amazon、IBM、Microsoft 在过去两年都增加了图数据库,但当数据量变得非常巨大,或问题需要深度关联分析,又必须实时提供答案时,大多数图数据库都会在性能和分析能力上碰壁。
这是因为前几代图数据库的架构无法满足当今数据的规模和查询速度需求。第一代设计(例如 Neo4j)不是以并行性或分布式数据库概念为核心构建的。第二代的特点是在 NoSQL 存储之上构建图视图。这些产品可以扩展到巨大的规模,但这一附加层使之丧失了巨大的潜在性能。如果没有原生图设计,执行多步查询的代价会很高,因此许多 NoSQL 平台只能提供很高的读取性能,而不支持实时更新。
而这些,恰恰是 TigerGraph 的优势所在。
TigerGraph 通过原生并行图打破了前几代的局限性,实现深度关联分析。我们知道,原生图数据库直接以图模型格式(点和边)存储数据,提供内置索引,可以加快数据加载速度以快速构建图。相较之下,非原生图虽然能轻松支持多模态数据库,但牺牲了图性能,如果数据集很大,非原生图通常难以处理 3 步以上的查询。
可扩展性是大数据时代的一个重要特征。企业需要将他们的数据库解决方案横向扩展到多台计算机,因为他们的数据可能增长得过大,无法经济地存储在单个服务器上,TigerGraph 支持纵向扩展和横向扩展,能够将图数据自动划分到一个服务器集群中,在保持实时速度的同时,提高加载和查询吞吐量。TigerGraph 在执行每项任务的同时,擅长并行处理,采用 MPP 设计架构,每个点和关联都可以关联一个计算函数,并且每个点或关联可同时作为并行的存储单元,存储紧凑,访问快速。TigerGraph 采用一种分布式计算模式,让所有服务器都参与查询,例如,当遍历路径从服务器 A 跨入服务器 B 时,将向服务器 B 传递它需要知道的最少量的信息,在服务器 B 已经得知整个查询请求后,便可以轻松参与分工,这样就显著地提升遍历大部分图的分析查询性能。
TigerGraph 可以将实时分析与大规模离线处理统一起来。实时更新意味着数据库更新可以与数据库上的其他查询同时进行,并能快速完成,大多数非原生图平台不支持实时更新,因为其数据存储系统不可变。TigerGraph 支持 Web-Scale 的实时分析,每秒更新数千个点和边,每天更新数亿个。以金融领域为例,TigerGraph 实时图数据库支持把不同来源的数据存在图数据库,进行集中处理,从而实现在支付处理前识别欺诈。其次,TigerGraph 图数据库通过对用户的关系特征进行建模,实现基于图数据库的毫秒级实时甄别。最重要的是,可以为企业关注的“可解释的 AI ”提供解决方案。
在产品层面,TigerGraph 做了战略调整,不再疯狂的追求极限速度,而是更关注系统的安全性和健壮性,因此 TigerGraph 开发了备份高可用的组件;另外,TigerGraph 花了很多时间去完善管理员体系(管理员的界面),目前其管理员界面是可视化的,可以看见机器占用资源的情况、详尽的日志,如果系统宕机, TigerGraph 能非常清楚地收集信息,而不需要客户再重新收集。
图数据库与云计算结合是必然趋势。TigerGraph 是第一个做图数据库提供云服务的厂商,在 2018 年年底推出的 TigerGraph Cloud,可以在云中运行可扩展、更简单、更强大的图分析,用户可以利用 TigerGraph 的可自定义图算法库为人工智能和机器学习提供强劲动力。
TigerGraph 在图的可视化工具方面也在不断创新。目前 TigerGraph 内部已经有了一个可视即可得的版本,只要通过拖拽的方式,系统就可实时反馈结果。
去年 9 月,针对 GQL (图形查询语言)标准的项目提案已通过,并计划在今年下半年推出 GQL 的图查询语言标准。之所以提出 GQL,是因为原来的 SQL/PGQ 仅限于只读查询,它无法投射新图形,它只能访问基于生成 SQL 表的图形化视图的图形,这限制了图数据库市场的发展。目前市场上懂图查询语言的开发者比较有限,且没有统一的语言标准,GQL 将是图数据库领域的一座里程碑,标志着图数据库市场的进一步成熟,降低人员的学习成本,并推动市场出现更多的复合型人才。目前 TigerGraph 正在积极推动 GQL 的制定,原生并行图与查询语言具有天然的融合性,可以帮助现有的 GSQL 使用者快速适应 GQL,这也是 TigerGraph 参与 GQL 标准制定的初衷之一。
图计算方兴未艾,在喧闹背后,我们应该冷静地看到它尚未攻破的难点,比如前面提到的超级顶点问题、OLTP 和 OLAP 融合问题、图划分、流式图数据处理等。而当下正处在风口浪尖上的知识图谱和图神经网络,其背后值得思考的东西也很多。
比如,图谱成为热点背后,我们更应该关注图谱的应用阶段,有些阶段离不开人的参与,有些阶段应尽可能减少人的介入,二者之间达成某种平衡。现在我们都在谈 5G ,那么 5G 跟图谱之间是否也有关联?5G 催生了 AI 的新应用,未来,图谱从单模态发展为多模态的想象空间还是非常大的。
另外,图神经网络将成为未来几年的重点方向。图神经网络虽然在工业界并没有成为现象级的技术,但在大公司已有尝试。阿里巴巴在 2020 年开年《达摩院 2020 十大科技趋势》中提到的第一点就是人工智能从感知智能向认知智能演进,大规模图神经网络被认为是推动认知智能强有力的推理方法。但是,我们必须看到,图神经网络的落地应用尚处于早期,虽然前一波深度学习浪潮积累下来的软硬件设施为图神经网络的落地打下了基础,但与理想之间仍有差距。
2019 年硬科技遭遇种种现实壁垒,虽有局限和无奈,但是依然阻挡不住更大的科技力量的发展。正如《奇点临近》中提出的一个观点:“我们的未来不是再经历进化,而是要经历爆炸。”
2020 年,也必将是宏“图”大展的一年。
点个在看少个 bug👇