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