1、1图 数 据 库 白 皮 书图 数 据 库 白 皮 书中国信息通信研究院云计算与大数据研究所中国信息通信研究院云计算与大数据研究所CCSA TC601大数据技术标准推进委员会大数据技术标准推进委员会2019年年12月月3前言前言当今时代,数据的关联可以产生重要的商业价值。无论我们是想了解在线社交网络中用户之间的关系,或者电子商务中用户和商品之间的关系,还是金融网络中信贷关系,理解和分析大量高度关联数据的能力将成为企业的核心竞争力。图处理技术在这其中扮演着重要的角色。大型互联网公司最早就意识到了这一点,并开始创建自己的专有图处理技术,这些技术被用于社交关系挖掘、网页检索与排序、推荐系统等,并获得
2、了巨大的商业成功。图处理技术解决了当今宏观业务的一个大趋势:利用高度连接的数据中复杂、动态的关系来产生洞察力和竞争优势。相比关系数据库,图数据库是表示和查询连接数据的最佳方式。随着近几年的快速发展,通用的图数据库已经逐步成熟,基于图数据库的应用如知识图谱、风险防控、智能物联网在金融、电信、公共安全、医疗等行业快速落地,并形成了较好的应用效果。然而相比其他的数据库技术,图数据库还处于起步阶段,相关概念介绍、应用场景描述和选型实施的资料较少。本白皮书从概述、发展历程、应用场景、技术架构、选型要素和实施建议等多个维度介绍图数据库,力图为用户了解和选择图数据库提供一个全局视图。由于编写的水平和时间有限
3、,难免有所纰漏,欢迎大家批评指正。4目录一、图数据库概述.6(一)图数据库的概念.7(二)图数据库发展情况.10(三)图数据库的技术优势.12二、图数据库应用场景.15(一)知识图谱.15(二)行业应用.16三、图数据库技术详解.19(一)技术架构.19(二)主流的图查询语言.20(三)图数据的计算.21(四)图处理引擎.23四、图数据库选型要素.25(一)基本能力.25(二)分布式能力.25(三)兼容能力.26(四)管理能力.26(五)安全能力.27(六)高可用能力.27(七)性能.27五、图数据库实施建议.295(一)业务理解.29(二)图 Schema 设计.30(三)业务数据加工.31
4、(四)验证和测试.32(五)监控运维.32(六)从关系型数据库迁移到图数据库.33六、总结和展望.356一、图数据库概述图是基于事物关联关系的模型表达,通过将实体与关系点边化的方式将知识结构化地保存,因此具有天然的可解释性,从而备受学术界和工业界的推崇。图数据是指采用图结构存储的数据。当前,通信、互联网、电子商务、社交网络和物联网等领域中积累了大量的图数据,其规模巨大并且不断增长:Facebook 的社交网络在 2011 年已超过 8亿顶点;而腾讯 QQ 社交网络目前在 10 亿个顶点的规模;在电信行业中,广州市仅一个月内由电话呼叫方和被呼叫方组成的图就超过4.5 千万个顶点、1.5 亿条边;
5、而 ClueWeb1数据包含海量的网页,2012年公布的数据集已经达到 10 亿个顶点、425 亿条边,仅是存储边的列表文件就超过 400GB。图 1 社交网络传统的关系型数据库在处理这些关联数据时,大量的连接操作造1ClueWeb12 数据集,http:/lemurproject.org/clueweb12/specs.php7成性能成指数级下降;而 NoSQL 数据库(图数据库以外)采用的数据结构和分布式架构,更适合离散、关联关系弱的数据存储管理。图数据库中丰富的关系表示,完整的事务支持,提供了高效的关联查询和完备的实体信息。因此,有人认为图数据库是一项具有变革意义的技术,不仅仅是因为它提
6、供了功能强大且新颖的数据技术,更是因为它带来了直接的商业利益,让人们有着充分的动机去替换已有的数据平台。2019 年初 Gartner2数据与分析峰会上将图列为 2019 年十大数据和分析趋势之一,并认为到 2022 年,全球图处理及图数据库的应用都将以每年 100%的速度迅猛增长。接下来本章将从图数据库的概念、价值、发展情况以及与其它数据库的对比三个方面介绍图数据库的基本情况。(一)图数据库的概念(一)图数据库的概念图数据库以图论为理论基础,使用图模型,将关联数据的实体作为顶点(vertex)存储,关系作为边(edge)存储,解决了数据复杂关联带来的严重随机访问问题。在分类上,图数据库可归类
7、为 NoSQL数据库。1.图模型1.图模型图是一组对象的集合,由顶点和边构成,顶点表示实体或实例,如人、账号、组织、业务等。它们可以类比于关系型数据库里的记录2Gartner2019 年十大数据和分析技术趋势,https:/ database)里的文档(document)。边是将连接顶点的线,表示顶点之间的关联关系。边是图数据库中的关键概念,在关系型数据库或文档存储数据库中,没有对边的抽象概念进行直接实现。图模型主要包含属性图、RDF 图两种。属性图模型属性图模型属性图模型由顶点、边及其属性构成。图数据库通常是指基于属性图模型的图数据库。模型由以下 4 个部分组成:1)顶点。顶点是事物(Obj
8、ect)的抽象,可以是“人”、“书”等实体,也可以是“端口”、“IP”等抽象;2)顶点的属性。顶点的属性是对事物的具体描述,根据顶点代表的类型不同,每个顶点可以有不同的属性,比如以“人”作为顶点,属性可以是“姓名”“身高”、“生肖”等;3)边。边是两个顶点间的关联关系,有向或无向。比如两个顶点是“人”和“职务”,那关系“任职”是连接它们的边;4)边的属性。和顶点的属性类似,每条边上也有属性。比如连接顶点“人”和“职务”的“当选”边,属性就是具体的当选时间。图 2 属性图模型实例 RDF 模型模型9RDF(resource description framework)模型原本是描述 Web 资源
9、的标记语言,由 W3C 提出。RDF 主要针对文本语义的场景,用三元组(subject-predicate-object)来表达。因此基于 RDF 图模型的图数据库又称三元组数据库。通常意义的 RDF 模型在顶点和边上没有属性,只有一个唯一的资源描述符,这是与属性图模型最根本的区别。顶点属性可以通过顶点与属性值(literal)之间的边来表示,边的属性则比较复杂,需要将每条边表示为顶点,然后再将属性与之相连。图 3 RDF 图模型实例属性图和 RDF 图的主要区别有:1)RDF 图可以更好地支持多值属性;2)RDF 图不支持两顶点间多个相同类型的边;3)RDF 图不支持边属性。2.图数据库2.
10、图数据库图数据库基于图模型,对图数据进行存储、操作和访问,与关系型数据库中的联机事务处理(Online Transactional Processing,OLTP)数据库是类似的,支持事务、可持久化等特性。图数据库根据底层存储实现的不同,可分为原生(Native)和非原10生(Non-native)两种。原生图数据库:使用图模型进行数据存储,可以针对图数据做优化,从而带来更好的性能,例如 Neo4j。非原生图数据库:底层存储使用非图模型进行存储,在存储之上封装图的语义,其优点是易于开发,适合产品众多的大型公司,形成相互配合的产品栈,例如 Titan、JanusGraph 底层采用 KV 存储非
11、图模型。(二)图数据库发展情况(二)图数据库发展情况自 2007 年第一款商用图数据库 Neo4j 诞生以来,图数据库的发展虽然不过十余年,却已经历了底层存储、架构等技术方面的重大变革,由最初的单机图数据库向分布式大规模图数据库发展。Graph 1.0:小规模原生图存储:小规模原生图存储Graph 1.0 时代(2007 年-2010 年),以 Neo4j 为代表,采用原生图的方式实现了图存储,获得了比关系型数据库快得多的复杂关联数据查询性能。如下图所示,OREILLY 出版的图数据库一书中在5000 万点和边的数据规模下,对比了 Neo4j 与关系型数据库在关联查询的时间对比,随着关联关系深
12、度的增加,关系型数据库性能呈指数倍增长甚至无法执行,图数据库的优势不言而喻。然而,当时在软件架构设计上只支持单机部署,图数据库产品性能和业务扩展能力有限。表 1Neo4j 与某关系型数据库在关联查询的性能对比11深度关系型数据库的执行时间(深度关系型数据库的执行时间(s)Neo4j 的执行时间(的执行时间(s)返回的记录条数)返回的记录条数20.0160.01 2 500330.2670.168 110 00041543.5051.359 600 0005未完成2.132 800 000Graph 2.0:分布式大规模图存储:分布式大规模图存储Graph2.0 时代(2010 年-至今),随着
13、大数据和物联网的蓬勃发展,数据本身的丰富程度增加,数据之间的关联性增多,扩展性成为数据库行业共同的痛点,分布式架构的兴起催生了很多的分布式图数据库项目。在这一发展阶段,支持分布式大规模图存储是关注的重点,图存储是否以原生的方式实现,不再是那么重要的问题,例如 OrientDB选择了支持原生图存储,自研了分布式图数据存储模块,而JanusGraph 则是在其他数据库(Cassandra、HBase 等)之上封装实现图的语义。通过支持在通用硬件上进行水平扩展(Scale Out),分布式图数据库具备了在海量关联关系数据的存储与实时深度查询上绝佳的性能,但是在全图分析等需要迭代计算的场景下仍需要结合
14、图处理引擎(如 GraphX,参见第三章)进行离线计算与分析。我国的图数据库产业发展也随着时代的更替而蓬勃发展,产品形态丰富,经详细调研及初步估计,当前国内的图数据库已有 20 余款产品,主要有四类研发主体发起,其特点如下:(1)各大高校实验室、研究所在图数据库发展初期研究开发的数据库产品,主要聚焦于支持 RDF 图模型的图数据库;12(2)大型互联网企业由于自身积累的海量数据以及业务需求,催生相关的数据库产品。这些产品考虑到企业原有数据系统的情况,结合原有数据系统而开发的非原生图数据库不在少数,但绝大多数使用分布式架构以供企业内部使用,产品迭代较快,当前也有部分产品商业化;(3)新兴创业公司
15、,他们的产品的最大特点是完全自主研发的图数据库,强调高性能与数据库的事务性,但是产品版本更新迭代相对较少,目前也在往分布式架构发展;(4)传统 IT 服务商在图数据库的发展浪潮下,也加快图数据库产品的研发步伐,并且通常与企业已有的其它产品(例如知识图谱工具)一同对外输出。总体来看,国内数据库产品以属性图为主,并且有向分布式发展的需求与趋势,强调对实时复杂图查询的性能,多使用自研的查询语言,部分产品支持 Cypher 或 Gremlin 等查询语言。(三)图数据库的技术优势(三)图数据库的技术优势大数据时代带来了新的业务场景和技术挑战,关系型数据库无法解决所有问题,因此留给了包括图数据库在内的
16、NoSQL 数据库广大的生存和发展空间。关系型数据库的优点在于实现了快速的逐行访问和保持数据一致性(ACID 事务),为此,关系型数据库对数据模式和数据规范化有着严格的要求,这种要求对数据关系的查询产生了束缚。当数据规模变大,且数据间关系随之变得复杂时,使用关系模型检索时需要多13个表的属性执行连接操作,数据写入时也需考虑外键约束,从而导致较大的额外开销,产生严重的性能问题,因此传统关系型数据库更适合实体联系为一对一或一对多的应用场景。而图数据库则在处理复杂关系上有着天然优势,在海量数据的多对多的复杂实体联系场景中有着异常突出的性能表现。表 2 图数据库与关系型数据库对比分类分类图数据库图数据
17、库关系型数据库关系型数据库数据模型图表存储对象半结构化数据结构化数据2-3 度关联查询高效低效6-10 度关联查询高效低效/不支持事务性支持支持在处理关联数据时,图数据库有三个非常突出的技术优势:高性能、灵活、敏捷高性能、灵活、敏捷。1.高性能高性能图数据库相较于关系型数据库和其它非关系型数据库,在处理深度关联数据时,具有绝对的性能提升绝对的性能提升。2.灵活灵活图数据库提供了极其灵活的数据模型,可以根据业务变化实时对数据模型进行修改实时对数据模型进行修改,数据库的设计者无需计划数据库未来用例的详细信息。3.敏捷图数据库的数据建模非常直观敏捷图数据库的数据建模非常直观,而且支持测试驱动开发模式
18、,每14次构建时可进行功能测试和性能测试,符合当今最流行的敏捷开发需求,极大地提高了生产和交付效率。15二、图数据库应用场景图数据库在如今的大数据时代因其在海量数据挖掘、复杂关联分析、实时查询等方面具有较大的优势而得到快速发展,为大数据领域创新提供了新的思路。图数据库的应用场景多样并不断丰富。如果说知识图谱是图数据库最为基础的底层应用场景,充分利用了其图模型在存储和查询的优势为多行业提供知识服务,那么金融风控、社交应用等则是更具有行业特点的高阶应用场景。接下来本章将介绍图数据库在知识图谱、金融风控、智能物联网的三个具体落地情况。图 4 图数据库、知识图谱与行业应用(一)知识图谱(一)知识图谱知
19、识图谱本质上是一种基于图的数据结构语义网络知识图谱将实体表示为顶点的集合,将实体之间的关系表示为边的集合,通过结16构化的形式对知识进行建模和描述,利用可视化的图谱对知识进行展示。知识图谱使用三元组形式组织数据,关系复杂且更新、查询频繁,传统数据库无法适应存储此类模型的需求,图数据库也就因此而产生并发展。对于行业来说,知识图谱是面向多行业的新一代知识库技术;对于图数据库而言,知识图谱是图数据库关联最为紧密、应用范围最广的应用场景。知识图谱对海量信息进行智能化处理,形成大规模的知识库并进而支撑业务应用。知识图谱中图数据库具有存储和查询两方面的技术优势:从存储来看,从存储来看,图数据提供了灵活的设
20、计模式。知识图谱中存储了多样、海量的数据。在关系型数据库中所有的数据库模式都需要提前定义,后续改动代价高昂。而图模型中,只需要重新增加模式定义,再局部调整图数据,便可完成在原有的数据源上增加标签或添加属性。从查询来看从查询来看,图数据库提供了高效的关联查询。在用图数据库存储的知识图谱中,可以通过查询实体的边和其边上的标签(即联系)来快速地获取与其相联系的另一实体,而不用再进行各种表的关联操作,关系查询的效率显著提高。作为图数据库的底层应用,知识图谱可为多种行业提供服务,具体应用场景例如电商、金融、法律、医疗、智能家居等多个领域的决策系统、推荐系统、智能问答等。(二)行业应用(二)行业应用过去几
21、年,机器学习获得了空前的关注,使用通用模型从海量数17据中获得结论,降低了专业知识的需求。但机器学习的模型是黑盒模型,结果不具有可解释性。图是基于事物关联关系的模型表达,具有天然解释性,因此图数据库与图处理引擎集成的图系统带来的强大的图存储和分析能力,推动了图数据库在金融风控等典型应用场景的落地,也带来了物联网等新的行业应用发展方向。1.金融风控金融风控互联网金融的兴起下,金融业务拓宽服务能力显著提升,但与此同时产生了大量的非结构化数据,数据量的剧增和关系的复杂多变性给金融风控带来了新的挑战。传统关系型数据库在海量非结构化数据存储和复杂关系挖掘方面具有天然的缺陷。相比之下,图数据库能够融合来自
22、金融机构销售、审批、风控、电销、交易、催收等系统的多源数据以及第三方数据,打破数据孤岛,构建全方位用户关联网络。图数据库通过利用多维交叉关联信息深度刻画申请和交易行为,可以有效识别多种复杂的、规模化、隐蔽性的欺诈网络和洗钱网络;结合机器学习、聚类分析、连通图挖掘、风险传播等相关算法,可以实时计算用户的风险评分,在风险行为发生前预先识别,有效帮助金融机构提升效率、节省人工时间、控制成本、降低风险。应用图数据库的金融风控应用场景例如个人信贷业务,失联客户管理,金融反欺诈,洗钱路径追踪,企业图谱,个人/企业征信等。2.智能物联网智能物联网物联网(Internet of Things,IoT)近年来发
23、展迅猛,“万物互联”18已是大势所趋。然而,物联网要实现智能化,仍面临许多挑战:网络中传感器产生的数据量大、数据变化迅速,而且数据之间往往相互关联、查询频繁。物联网领域中,图数据库在结合图处理引擎后还可以提供其所需的关联数据的高效复杂查询与计算能力。例如传统电力管理系统,使用关系型数据库储存传感器数据,电力供需错配、电流检查和全网状态评估等作业,涉及复杂、庞大、耗时的矩阵运算,很难在一个监视控制与数据采集周期内完成。基于图数据库的智能电力管理系统中,电力供需错配和电网状态检测作业所需的核心计算全部在图上完成,解出的值作为点和边的属性来存储,替代了开销巨大的矩阵运算,提高电网效率,同时能够检测并
24、发现电网网络瓶颈,及时发出告警,减少电网网络故障和中断。应用图数据库的智能物联网场景例如智能交通、车联网、智能家居、网络流量控制、智慧农业、电网智能电力管理等。除了金融风控和智能物联网以外,图数据库还可以为公安、社交、地理等多个行业提供服务。19三、图数据库技术详解本章将从技术架构、图查询语言、图数据的计算、图处理引擎四个方面介绍图数据库相关技术栈。(一)技术架构(一)技术架构图数据库的技术架构如下图所示,整体上采用分层架构的模式,从上往下依次是:接口层、计算层、存储层。图 5 图数据库系统架构(1)接口层)接口层:接口层对外提供服务,有如下几种方式:查询语言接口:提供除该图数据库原有查询语言
25、之外例如Cypher、Gremlin 等主流图查询语言接口。API:提供 ODBC、JDBC、RPC、RESTful 等接口与应用端交互。20 SDK:在 Python、Java、C+等编程语言中通过库函数的方式调用图数据库的接口。可视化组件:通过图形化界面的形式展示和实现用户的交互。(2)计算层:)计算层:提供对操作的处理和计算,包括语法解析、查询引擎、优化器、事务管理、任务调度和图算法实现等。其中,图算法可能是由图数据库本身提供,也可能是提供接口与图处理引擎对接。(3)存储层:)存储层:图数据库有原生和非原生存储两种存储方式,图存储引擎提供了图数据结构、索引逻辑上的管理。(二)主流的图查询
26、语言(二)主流的图查询语言数据库查询语言可以分为命令式(imperative)和声明式(declarative)。命令式查询语言是一种描述计算机所需作出的行为的编程范型,系统需要顺序依次执行用户的指令,要求用户具备一定的编程能力,但执行效率高。声明式查询语言允许用户表达要检索哪些数据,仅需在逻辑上表述清楚查询结果需要满足的条件,剩下的由数据库优化执行,对用户负担较小。例如 SQL 是典型的声明式语言,C+和 Java 是命令式语言。与关系型数据库不同,图数据库领域目前没有统一的查询语言标准,大多数查询语言与产品紧密关联。声明式查询语言通常作为常规查询语言,提高图数据的易用性;而命令式查询语言用
27、在对图数据性能有较高要求的场景,同时复杂图分析场景也多使用命令式语言。据了解目前国内一些图数据库产品使用的是自研的声明式查询语言。而常见的声明式图数据库查询语言包括 Cypher,Gremlin 和 SPARQL。21表 3 图数据库查询语言查询语言查询语言提出者提出者介绍介绍CypherNeo4J 提出采 用 类 SQL 语 法,其 开 源 版 本 为OpenCypherGremlinApache TinkerPop开源项目的一部分采用类 Scala 语法SPARQLW3C 标准SPARQL 是一种用于资源描述框架(RDF)的查询语言除了上述查询语言外,目前业界相当一部分产品使用自己开发定义
28、的查询语言。在图数据库查询语言不一的情况下,2019 年 6 月隶属 ISO/IEC 的 Joint Technical Committee 1(JTC1,联合技术委员会 1)通过 Graph Query Language(GQL,图查询语言)的标准提案,将在未来进行为期 48 个月的制定工作。(三)图数据的计算(三)图数据的计算图数据库的使用场景主要是实时查询,用户通过图查询语言在图上做遍历、过滤和统计等操作,一般为局部查询,以满足实时的需求。图数据库为实时查询提供了两类常用的图算法:1)图遍历(图遍历(Graph Traversal):也被称为图搜索(Graph Search),是指访问图
29、中每个顶点的过程。对图的访问和更新都以图遍历为基础。图遍历常见算法包括:广度优先搜索(Breadth First Search,BFS)和深度优先搜索(Depth First Search,DFS)。2)路径发路径发现(现(Path Finding):用以识别最符合大型网络中两点之间某些条件下的最短路径。路径发现常见算法包括:最短路径22(Shortest Path)、最小权重生成树(Minimum Weight Spanning Tree,MST)和两两最短路径(All Pairs Shortest Path,APSP)。此外,用户常常会提出比实时查询更为复杂的分析需求以挖掘图数据中的潜在价
30、值。在图算法的实现上,最理想化的选择是在图数据库上直接实现图算法,但由于图数据库更侧重于高并发和海量存储,全图算法更侧重于迭代计算,因此目前更为常见的选择是提供另外图处理引擎与图数据库集成:从图数据库对接或导入数据到图处理引擎中进行离线分析,结合其更为强大的计算能力对全图进行迭代计算,寻找某种特定模式(社区发现或欺诈模式)或者路径,满足数据挖掘的应用需求。图 6 图数据库实时查询与离线分析离线分析需要较长的时间来完成,分析的算法也相对复杂,可根据解决问题的目的不同分为以下几类:1)中心性(中心性(Centrality):是社交网络分析(Social network analysis,SNA)中
31、常用的一个概念,用以表达社交网络中一个点或者一个人在整个网络中所在中心的程度。通过知道一个顶点的中心性,可以用来23了解和判断该顶点在网络中所占据的重要性。中心性常见算法包括:佩奇排名(PageRank)、中介中心性(Betweenness Centrality)、紧密度中心性(Closeness Centrality)和调和中心性(Harmonic Centrality)。2)社群发现(社群发现(Community detection):用以划分复杂网络的社群结构。在复杂网络的研究中,如果网络的顶点可以容易地分组成顶点集,使得每组顶点在内部密集连接,则称网络具有社群结构。这意味着社群内的点的
32、连接更为紧密,社群间的连接较为稀疏。社群发现常见算法包括:Louvain 算法和标签传播算法(Label Propagation)。3)图挖掘(图挖掘(Graph Mining):是基于图的数据挖掘,用来发现数据的模式。通过分析图数据,发现有趣、意外、有用的模式是非常必要的,可以用来帮助理解数据或做出决策。在社交网络、医药化学、交通运输网络等诸多领域中有着重要意义。常用的图挖掘算法包括频繁子图(Frequent Subgraph)和数三角形(Triangle Counting)。随着人工智能技术的发展,机器学习、深度学习、神经网络等算法也可通过图处理引擎分析图数据库中的数据价值。(四)图处理引
33、擎(四)图处理引擎图处理引擎又称图计算框架,主要用来做复杂图分析,是一种能够针对大型数据集运行图计算算法的技术。由于强调全局查询,图处理引擎通常针对批量扫描和处理大量信息进行了优化,在这方面,它们类似于其它批处理分析技术,如数据挖掘和联机分析处理(On-LineAnalytical Processing,OLAP)。虽然一些图处理引擎包括了图的存储层,但绝大多数的图分析引擎严格地24关注从外部数据源馈入的数据,进行处理,然后将结果返回到其它地方存储。图 7 图处理引擎处理过程如前所述,图处理引擎可以独立于图数据库,可以使用任何系统作为数据来源。但是若已经在业务中使用了图数据库,往往也希望对图数
34、据进行一些深层的处理和挖掘。因此,一些图数据库产品同时也会提供图处理引擎的集成(如 JanusGraph 可集成 Spark 和 Hadoop)。当前主流的图处理引擎有以下几款:表 4 三类图处理引擎产品名产品名提出者提出者介绍介绍GraphXDatabrick 公司,属于Spark 计算引擎之上的图计算框架GraphX 有丰富的图操作的接口,可以根据需求灵活开发图算法。同时,GraphX 内置了部分常见的图算法库。GraphLabCMU Select 实验室GraphLab 是基于图像处理模型的开源图计算框架,可以高效地运行机器学习相关的数据依赖性强,迭代型算法。Giraph由雅虎开发,捐赠
35、给Apache 基金会基于 Hadoop 生态,目的是为了解决大规模图的分布式计算问题25四、图数据库选型要素当前国内外市场上图数据库产品种类繁多,产品能力参差不齐,用户在选型时缺乏量化的选型标准,无法准确评估产品的能力水平。中国通信标准化协会 TC601 从 2019 年 6 月开始,组织国内一线图数据库产品提供商,编写了大数据 图数据库 技术要求与测试方法规范。本章基于上述规范,梳理了图数据库选型的核心要素。(一)基本能力(一)基本能力图数据库的主要功能是基于图模型的数据管理,提供对点和边的数据操作能力,如果是属性图还需提供点和边的属性的数据操作能力。为了方便用户的使用,图数据库还应当提供
36、事务、索引、查询语言、应用开发接口、存储过程、访问接口等多个方面的功能,具体指标包括几类:1)常用数据类型,字符集,数据模型,数据库基本操作,算术能力,查询语言等的支持能力;2)索引,单机事务,可视化,服务端编程等的支持能力;3)数据批量导入导出,数据批量更新的支持能力;4)图遍历,基础图算法(图遍历、路径发现算法),图分析接口的支持能力。(二)分布式能力(二)分布式能力随着需要管理的数据规模越来越大,分布式图数据库的需求也在不断增长。分布式图数据库需要提供相应的分布式系统的处理能力,26为性能扩展和分布式架构运维提供良好的支撑。具体指标有:1)分布式计算与存储能力,提供容量和性能的扩展以满足
37、更大的图数据规模和更高的复杂操作的处理效率需求;2)图分区能力,应对大规模图数据在分布式系统的切分问题;3)分布式事务能力,保证系统支持一定隔离级别下的 ACID 特性;4)在线扩容能力,能够尽量在不影响已有任务正常运行的前提下进行扩展;5)负载均衡能力,通过将数据进行恰当的划分/重分布来尽可能地避免由于负载不均衡导致的资源瓶颈。(三)兼容能力(三)兼容能力很多情况下图数据库需要与其它数据库或系统一同使用,因此需要一定的兼容能力,具体指标包括:1)面向主流硬件的支持能力;2)面向新型硬件的支持能力;3)访问接口的支持能力。(四)管理能力(四)管理能力完备且友好的管理能力可以为用户更好地进行数据
38、库运维工作提供有力支撑,具体指标有:1)安装部署、配置管理、在线升级等支持能力;272)实时监控能力;3)作业管理能力;4)数据全量、增量备份、恢复能力。(五)安全能力(五)安全能力图数据库需要支持完善的安全机制防止数据泄露、误操作等状况:1)支持面向数据的权限管理,例如:从多个级别例如图/标签/对象(分别对应关系型数据库中的库/表/行)等管理用户的访问权限;2)支持面向访问方式(用户名/IP/端口等)的权限管理,提供黑名单/白名单等功能;3)提供日志的管理和分析,辅助管理员定位问题;4)支持数据的加密,尽可能减少数据泄露带来的风险。(六)高可用能力(六)高可用能力由于硬件环境不总是可靠的,会
39、以一定概率发生故障,图数据应能适应这种情况,提供高可用的服务:1)多机热备,即主服务器故障时,可以秒级从其它服务器提供服务,包括日常的增删查改操作;2)故障恢复,即服务从故障状态回复时,处在一致的状态;3)存储多备,即一个存储故障时,主服务能够获取其它存储上的备份数据。(七)性能(七)性能28图数据库十分重视实时查询的性能表现,但由于数据的规模、图的疏密程度会对其性能产生非常大的差异,因此用户需要根据自身实际业务需求来完成图数据库性能测试。在具体的性能测试报告中,需要披露以下信息:1)测试的硬件环境,包括服务器节点规模、网络链路、内存总量、CPU 总量、磁盘总量等;2)测试的数据情况,包括图的
40、数据规模(通常以点和边的数量为单位)、图的疏密程度;3)数据导入耗时;4)测试的性能数据,包括可支持的关联查询深度、对应延迟与吞吐。29五、图数据库实施建议图数据库的实施流程如下图所示,一般包括“业务理解”、“图Schema 设计”、“业务数据加工”、“业务验证”和“监控运维”5 个步骤。图 8 图数据库实施流程(一)业务理解(一)业务理解图数据库实施的第一步是进行业务理解,将业务上的具体需求描述出来,结合图数据库的特性将业务需求转换为图模型和图处理任务,这一个过程通常需要业务人员和图数据库实施工程师合作来完成。业务人员的职责:描述清楚业务场景,诸如需要解决的问题(特别是从传统关系型数据库迁移
41、过来时,原系统不能满足要求的地方),业务数据的格式、接入方式以及数据量大小和未来增长情况(包含顶点和边的记录数、文件大小等),常用的查询方式(查询顶点、边、路径还是子图),更新方式(一次性更新、增量更新、批量更新、实时更新等),吞吐量,时效性要求,可靠性要求等。图数据实施工程师的职责:理解业务问题和业务数据,将业务问30题映射成图问题,并与业务人员进行确认。确认数据的来源、存储介质、更新的方式、容灾方案、与其他系统对接方式等。最后根据业务数据规模评估所需的软硬件资源。(二)图(二)图 Schema 设计设计图的 Schema 设计是整个数据库实施中最重要的一环,是把业务模型转换为数学模型的关键
42、,因此 Schema 设计的好坏,直接决定了对业务所能产生的效果。图 Schema 设计务必需要图数据库实施工程师和业务人员共同参与,共同协商讨论。图数据库实施工程负责 Schema 设计,设计结果与业务人员确认,由于 Schema 设计是业务数据和图数据库之间重要的桥梁,此步骤与“业务理解”之间可能存在多轮迭代,直到图数据库实施工程师和业务人员都确认为止。具体设计内容包括:1)应该建立哪些类型的顶点,各种顶点的带有哪些属性。一般需要用来进行检索和可视化展示的,都需要作为属性。有些作为查询条件的属性设置成点(比如“人”这个点所拥有的“公司”属性等),可能会更高效。不过要注意的是,这些点容易形成
43、超级节点,在查询时要避免从这个点出发进行查询,否则会极大影响查询性能。2)哪些类型的顶点之间需要建立何种类型的边,边上带有哪些属性。有些关系可以是自相关的。3)同一种业务场景,可以有多种不同的 schema 设计,有些关系既可以设计成顶点、也可以设计成边,根据业务需求以及所31选择的图数据库的查询语言设计,进行判断哪种设计更高效。4)根据业务常用的查询路径和时效性要求,设计合理的索引,以提高查询效率。(三)业务数据加工(三)业务数据加工业务数据加工可以由业务方 ETL 人员或者图数据库实施工程师负责,业务方需要提供基础的 ETL 数据处理工具或者环境。业务数据往往不是以图数据库要求的顶点和边的
44、形式存在的。业务数据加工的主要目的是将业务数据经过 ETL,处理成图数据库所需要的顶点和边的形式,根据不同业务的时效性要求,业务数据加工过程又分成:1)实时处理:在接收到业务数据的同时将其处理成相应图模型的顶点和边,并调用图数据库提供的 API,进行数据的增删改查。2)离线处理:业务数据离线保存成文件,如宽表形式,通过离线ETL处理,将业务数据处理成顶点和边的形式的数据文件,一般图数据库会提供批量加载数据的工具,如加载 csv 格式或者是 native 格式(图数据库特有数据文件格式)的数据。首次初始化时,可以采用该批量加载数据的工具,以获得较高的入库效率。对于已经初始化完成,日常运行中的图数
45、据库,可以用增量更新的方式,或者将离线文件解析成顶点和和边的形式,调用图数据库提供的 API 进行入库。32(四)验证和测试(四)验证和测试完成业务数据的转换和入库后,还需要进行数据校验和测试,以保证数据的可用性,验证测试环节主要包括以下流程:1)数据准确性校验:预期的顶点和边是否存在,数量是否正确,属性值是否正常,边的方向是否正确,预期的路径是否存在等。2)业务场景的验证:将业务常用的查询表达成图数据库的查询语言,执行查询,检查返回的结果的正确性,同时确保时效性满足业务需求。3)系统测试:主要包括安全性测试和性能压测。(五)监控运维(五)监控运维监控运维是保证生产系统持续稳定健康运行的基础,
46、数据库管理人员的主要工作包括:1)存储容量监控:对图数据库所有存储节点的容量进行监控,保证能及时发现存储容量不足的节点,并进行扩容。2)扩容:在数据量和计算能力不足时,对图数据库进行扩容,保证数据有序扩容,实现在线扩容或者对业务的影响降到最低。3)数据平衡:对于分布式图数据库,在数据分布不均时,对数据在图数据库节点之间进行数据平衡,将部分数据从负载重的节点迁移到负载轻的节点,并保证数据有序迁移,实现在33迁移或者在迁移的过程中对业务的影响降到最低。4)去除毛刺:由于图数据的特殊性,每次查询请求的性能取决这次查询遍历的总的点边数。5)存储备份和恢复:如果图数据库存储是重要的业务数据,或者数据的生
47、产成本较高,或者是业务允许的故障恢复时间要求较高,则需要周期性地对图数据库数据进行备份,并保证备份数据的可恢复性。6)灾备方案:根据不同业务对数据安全的重要性、数据更新的实时性要求等,可以考虑设置不同的灾备策略。一般建议至少做两副本,保证数据安全可靠。主备方案由于涉及到主备切换,需要考虑切换的时间,即 RTO 和 RPO;多活方案需要保证数据的实时更新的同步,确保数据一致(允许强一致性或者最终一致性,结合业务具体需要确定)。采用主备方案会造成一定资源的闲置。多活方案可以提升一定的并发能力,但查询路由需要就近选择,以免选到远端的副本,导致时延增长。(六)从关系型数据库迁移到图数据库(六)从关系型
48、数据库迁移到图数据库如果需要把现有关系型数据库中的数据迁移到图数据库中,那么可以尝试考虑以下几个方面来设计图模型。1)图数据库中的一类顶点相当于关系型数据库的一张表,边相当于关系型数据库中连接两张表的中间表,或者一张表通过外键关联另一张表,那么这两张表对应到图上的两个顶点和34一条连接它们的边。2)顶点和边上的属性可以参考关系型数据库中对应表的字段名称。3)关系型数据库中表的某字段在该表中可以保证唯一性,那么该字段满足被设置成主键的条件。该这个字段可以做为图数据库的顶点的 ID 字段,做为查询点的关键字。4)通过对业务分析,在创建图模型时可以根据需求对顶点和边进行调整。必要时彻底抛弃现有的表结
49、构,根据业务现状重新设计图模型。35六、总结和展望大数据时代业务的增长带来了数据量的剧增和数据关联的复杂化,与此同时用户对数据价值的期望也越来越高,这些都带来了数据库系统的不断创新变革。图数据库提供了对关联数据最直接的表达,图模型对异构数据天然的包容力带来了在深度关联查询上比其它数据库更为卓越的性能表现。本白皮书前三章从图数据库的概述、应用场景、技术三个方面大致介绍了图数据库的相关情况,在第四、五两章从用户的角度出发,在图数据库的应用阶段的选型要素、实施步骤方面提出了参考建议。目前,图数据库领域正处于飞速发展的状态,随着概念的普及、需求的变化,图数据库正在向如下方向发展:1.查询语言统一需求正
50、在增长查询语言统一需求正在增长。目前图数据库市场查询语言不一,有使用 Gremlin、Cypher、SPARQL 的,也有使用自己开发定义的查询语言。这对用户学习成本高,这对图数据库产品的推广带来一定的阻碍。同时,国际上 ISO/IEC 的 GQL 制定耗时 4 年,与当前图数据库市场的发展速度严重不匹配。如何解决这一问题已是厂商与用户共同关注的问题。2.图数据库与图处理引擎深度融合图数据库与图处理引擎深度融合。目前图数据库只能提供较简单的图算法进行实时查询,不能独立完成复杂的全图迭代计算,需要与图处理引擎结合,增加额外的处理过程,加重系统负担。当前分布式图数据库支持了更大规模的数据,同时通过