前所未有的能力
如果你还怀疑关系型数据库的局限性,那么请想象一下,使用关系型数据库管理系统,是否能够解决以下问题:
- 如何找到一个人朋友的朋友的朋友……?
- 如何(实时)找到一个账户与多个黑名单账户之间的关联路径?
- 如何判断某个时间段内两个账户之间的交易(或交易记录)是否正常?
- 在一个供应链网络中,如果一个北美的制造厂/工厂停工,将会给韩国的百货商场旗舰店带来什么样的影响?
- 在货运、电力传输、通信网络中,如果一个网络节点或服务停运(下线),受到波及和影响的范围有多大?
- 在大健康领域,如果一个用户提交他的电子病历和健康档案,是否可以提供实时个性化的重大疾病保险推荐服务?
- 在反洗钱的场景中,如何知晓一个账户持有者把他的资金通过多层中间人的账户转账后,最终再重新汇入他自己(或其他关系人)的账户中?
- 现有的搜索引擎只可以进行一维的、基于关键字的搜索,例如输入“牛顿与成吉思汗”,如何返回任何有实质意义的、关联发散的结果?
- 在一张知识图谱中,如何找到多个知识实体间所形成的两两关联的网络?类似地,在一个由通话记录构成的大网中,如何找到1000个犯罪嫌疑人所构成的两两之间的6度以内的关联网络?
以上9个问题仅列举了传统数据管理系统(当然也包含其他的NoSQL或大数据框架)或搜索引擎无法以高效、低代价的方式完成的众多挑战中的一小部分。图1展示了使用图进行网络分析,与其他类型的数据源不同,其可敏捷应对变化、未知的数据关系与类型以及能高效处理海量数据。
在实时图数据库和图计算引擎的帮助下,我们可以实时地在不同数据间找到深度关联关系。举例来说,基于百科全书的知识体系而构建的知识图谱数据集中(一张大图,图中的顶点是一个个的知识点,而边则是知识点之间的关联关系),通过图引擎可以实时计算出如图1、图2所示路径。
▲图1 实时搜索最短路径:从牛顿到成吉思汗(表单模式)
▲图2 实时搜索最短路径:从牛顿到成吉思汗(图形模式)
与传统的搜索引擎不同,当搜索时,你期待的返回结果不再是单一的网页、链接排序,而是更为复杂、多边甚至全面的关联关系,搜索引擎不会返回为空、答非所问或无实际意义的答案,在实时图计算引擎的支撑下,它可以返回最优的、人脑都无法企及的智能路径。如果仔细观察图2中的路径,你会发现这些实体与关联关系所形成的每一条路径存在着强因果关系。通过这种“高维”搜索引擎返回的有强因果关系的路径,一环扣一环,其中蕴含的知识体量与密度(熵值)远高于传统的基于倒排索引和PageRank算法的互联网搜索引擎。并且,以上所有过程在图数据库支撑下都是实时完成,返回最优(不一定是最短)路径。如果用户对展望未来更感兴趣,可以改变筛选过滤和调整条件,例如设置相关顶点(或节点)与边的参数(或属性),并按照一定的模板逻辑来实现搜索等,如图3所示。
▲图3 实时动态图过滤与剪枝(通过图搜索过滤)
很显然,随着过滤条件变得更苛刻,搜索返回结果的路径变得更长了(从5层增加为7层),但是搜索时间并没有指数级增长。这是实时图计算引擎的一个很重要的能力—对子图的动态剪枝能力,一边搜索,一边过滤(剪枝)。缺乏这种能力的图数据库绝无可能成为有商业应用前景的实时图数据库。
图4展示了由以上路径动态生成的子图的2D空间可视化效果。
▲图4 通过图过滤后形成的多层关联
另一个实例是通过对转账、汇款、取现等交易的数据流进行追踪来实现实时反洗钱监测。图5中左边最大的点是资金流出方,经过10层中间账号不断转账转发,最终汇聚在右边的小点(账户)位置。除非经过10层以上的深层挖掘,否则你很难发现数据(资金)的真正流向,以及它们背后的真正意图。对于各国的金融监管机构而言,实时图数据库与图计算的意义不言而喻—当犯罪分子在以图的方式规避监管的时候,他们会通过构造深层的图模型来逃避反洗钱追踪,而监管机构只有使用具备深度穿透分析能力的图数据库才能让犯罪分子无处遁形。
▲图5 资金流向图
绝大多数人都知道“蝴蝶效应”,就是在数据和信息的海洋中捕捉从一个(或多个)实体到遥远的另外一个(或多个)实体间微妙的关联关系。从数据处理框架的角度来看,如果没有图计算的帮助,蝴蝶效应是极难被发现的。有人会说随着算力的指数级增强,未来总有一天我们会实现,笔者以为,这一天已经到来!实时图数据库就是进行蝴蝶效应计算、查询的最佳工具。
在2017年,知名数据分析公司Gartner提出了一个5层的数据分析模型,如图6所示。
▲图6 Gartner 5层数据分析模型
在图6中,数据分析的未来在于“网络分析”,或称为实体链接分析,建立这个系统只能依赖图数据库。图计算系统把数据以网络拓扑结构的方式构建,并搜寻网络内的关联关系,它的效率远超关系型数据库管理系统。关系型数据库通过表连接来进行计算,它可能永远无法完成类似的任务。
数据分析(技术)的发展是商业发展的必然结果,它提高了数据处理的科技水平。在图6中,从第1层到第2层可以视为数据分析领域内从单机应用到互联应用的提升;第3层是渠道中心化数据分析,它经常发生在一个公司的渠道或部门的内部;第4层的特点是跨渠道,它要求大型公司内的不同渠道进行数据分享,从而最大程度挖掘数据的价值,你必须合并各个渠道搜集到的不同类数据,并把它们视为一个整体,由此来进行网络化分析(例如社交网络分析)。这种通用的、跨部门、跨数据集的多维数据间关联分析需求的挑战,只有图数据库才能完美实现。
图计算与图数据库的差异
图计算(graph computing)与图数据库(graph database)之间的差异是很多刚接触图的人不容易厘清的。尽管在很多情况下,图计算可以和图数据库混用、通用。但是,它们之间存在很多不同,笔者认为有必要单独做个介绍。
图计算可以简单地等同于图处理框架(graph processing frameworks)、图计算引擎(graph computing engines),它的主要工作是对已有的数据进行计算和分析。图计算框架多数都出自学术界,这个和图论自20世纪60年代与计算机学科发生学科交叉并一直不断演化有关。
图计算框架在过去20年中的主要发展是在OLAP(Online Analytical Processing,联机分析处理)场景中进行数据批处理。
图数据库的出现要晚得多,最早可以称之为图数据库的也要到20世纪90年代,而真正的属性图或原生图技术在2011年后才出现。
图数据库的框架主要功能可以分为三大部分:存储、计算与面向应用的服务(例如数据分析、决策方案提供、预测等)。其中计算部分,包含图计算,但是图数据库通常可以处理AP与TP类操作,也就是说可以兼顾OLAP与OLTP(Online Transactional Processing,在线事务处理),两者的结合也衍生出了新的HTAP类型的图数据库,第3章会详细介绍它的原理。简言之,从功能角度上看,图数据库是图计算的超集。
但是,图计算与图数据库有个重要的差异点:图计算通常只关注和处理静态的数据,而图数据库则能处理动态的数据。换言之,图数据库在数据动态变化的同时能保证数据的一致性,并能完成业务需求。这两者的区别基本上也是AP和TP类操作的区别之所在。
多数图计算框架都源自学术界,其关注的要点和场景与工业界的图数据库有很大的不同。前者在创建之初大都面向静态的磁盘文件,通过预处理、加载入磁盘或内存后进行处理;而后者,特别是在金融、通信、物联网等场景中,其数据是不断流动、频繁更新的。静态的计算框架不可能满足各类业务场景的需求,这也催化了图数据库的不断迭代,从以OLAP为主的场景开始,直至发展到可以实现OLTP类型的实时、动态数据处理。
另一方面,由于历史原因,图计算框架所面对的数据集通常都是一些路网数据、社交网络数据。在社交网络中的关系类型非常简单(例如:关注),任何两个用户间只存在一条边,这种图也称为单边图(simple graph),而在金融交易网络中,两个账户之间的转账关系可以形成非常多的边(每一条边代表一笔交易),这种图称为多边图(multi-graph)。显然,用单边图来表达多边图会造成信息缺失,或者通过增加大量点、边来实现从而达到同样的效果(得不偿失,且会造成图上处理效率低下)。
再者,图计算框架一般只关注图本身的拓扑结构,并不需要理会图上的点和边的复杂属性问题,而这对于图数据库而言则是必须关注的。
图计算与图数据库的另外两个差异点如下:
1)图计算框架中能提供的算法一般都比较简单,换言之,在图中的处理深度都比较浅,例如PageRank、LPA标签传播、联通分量、三角形计数等算法,图计算框架可能会面向海量的数据,并且在高度分布式的集群框架上运行,但是每个算法的复杂度并不高。图数据库所面对的查询复杂度、算法丰富度远超图计算框架,例如5层以上的深度路径查询、K邻查询、复杂的随机游走算法、大图上的鲁汶社区识别算法、图嵌入算法、复杂业务逻辑的实现与支持等。
2)图计算框架的运行接口通常是API调用,而图数据库则需要提供更丰富的编程接口,例如API、各种语言的SDK,可视化的图数据库管理及操作界面,以及最重要的图查询语言。熟悉关系型数据库的读者一定不会对SQL陌生,而图数据库对应的查询语言是GQL,通过GQL可以实现复杂的查询、计算、算法调用和业务逻辑。
图计算与图数据库的差异梳理见表1。
表1 图计算与图数据库的差异
通过本文的背景介绍,希望读者能够做好准备,更好地进入图数据库的世界。
本文摘编于《图数据库原理、架构与应用》,经出版方授权发布。(书号:9787111708100)转载请保留文章来源。