编者按:
本期论文导读为大家介绍近年来关系数据库和图数据库关键技术的融合趋势及代表性工作。相关内容来自DASFAA 2023 Tutorial “Fusion of Relational and Graph Database Techniques: An Emerging Trend”,由北京交通大学刘钰博士、中北大学郭青松博士和赫尔辛基大学陆嘉恒教授共同完成。
本期内容主要介绍:
-
关系数据模型(Relational Data Model)和图数据模型(Graph Data Model);
-
关系数据库的连接(Join)操作与图数据库的子图匹配(Subgraph Matching)操作;
-
关系和图数据库查询处理技术的融合趋势,具体包括:(1)可用于改进图查询的关系数据库技术;(2)可用于改进关系查询的图处理技术;
-
关系和图数据库融合的未来发展趋势和挑战。
1. 关系数据模型和图数据模型
关系数据模型是建模结构化数据的经典方式。其中,关系(Relation)需具备严格的模式(Schema),如图1所示。
图1 关系数据模型及相关基本术语
近年来,随着各类实际应用场景的需求,关系数据模型得到扩展,支持嵌套关系模型(Nested Relational Model,即舍弃了关系模型第一范式的要求)、对象-关系模型(Object-Relational Model)、JSON等半结构化数据等。根据DB-Engines网站对DBMS的排名,位列前10名的数据库有8个声称自己是多模数据库(图2),即支持多种数据模型,包括Oracle、MySQL、Microsoft SQL Server、PostgreSQL、MongoDB、Redis、IBM Db2、Elasticsearch等。与此同时,也出现了多种多模查询语言(Multi-Model Query Language);除上述主流数据库管理系统外,代表性的包括ArangoDB Query Language(AQL)、OrientDB的OrientQL等。
图2 主流DBMS对多种数据模型的支持情况
另一方面,图数据结构同样可支持存储结构化数据。图3从多个维度给出了关系型数据库(RDBMS)与图数据库(GDBMS)的对比(注:当前较为流行的图数据模型包括属性图模型和RDF模型等)。目前,ArangoDB、OrientDB等原生多模数据库和Oracle、IBM Db2等主流数据库系统都在一定程度上支持图遍历、查询和多种图算法。
图3 RDBMS与GDBMS对比
2. 连接(Join)和子图匹配(Subgraph Matching)
关系数据库最为重要的操作是连接(Join)。由于涉及多个关系表,它也是执行代价最大的操作。在关系数据库的发展过程中,多种连接算法和代价估计方法被提出,用于连接操作的加速。其中,较早提出的并被当前主流RDBMS实现的连接算法为Binary Join方法。如图4所示,为了实现多表连接,需多次进行两表连接,并选取代价较小的连接顺序。然而,在面向复杂查询,如多表属性上的循环连接、或连接属性为多对多类型时,Binary Join易产生过大的中间结果。为此,Worst-Case Optimal(WCO)Join方法被提出,其采用对待处理的属性进行排序,每次处理一个属性(及包含该属性的所有关系表)而非对关系表进行排序并连接的方式,可证明在最坏情况下,其计算代价与问题输入输出规模是一致的。
图4 Binary Join
近年来,不少工作都发现连接可看成一种特殊的图算法。以两表连接R(A,B) ⋈ S(B,C)为例(图5),将每个属性(即a、b、c)对应到一类节点集,并为其每个取值建立一个对应节点。对每个关系中的一个元组,其对应于相应属性取值的节点间的一条边。那么,每条从a类节点经过b类节点到达c类节点的路径都对应一个连接结果元组。换句话说,连接操作等价于在图上进行某种图结构的查找。
图5 连接可看成一种特殊的图算法
实际上,该类图结构查找可抽象为一类子图匹配(Subgraph Matching)问题,即子图同构(Subgraph Isomorphism)问题(如图6)。直观来说,给定查询图Q(对应连接查询),子图同构查询返回数据图G(对应多个待查询的关系表)中所有与之在图结构和标签上都能一一对应的子图。例如,图6中有两个与Q同构的子图(节点1,2,3构成的子图,和节点2,3,4构成的子图)。注意此处我们允许G(和子图)包含多于Q的边。
图6 子图匹配问题
子图匹配问题有很多算法研究工作,包括较早的Ullman算法、VF2算法,到较新的利用WCO Join思想进行多路连接(Multi-Way Join)的方法(图7)。值得注意的是,近年来不少工作讨论了连接操作和子图匹配的等价性(图8),其中不乏Neo4j、TigerGraph等知名图数据库厂商。
图7 当前代表性的子图匹配算法
图8 连接操作和子图匹配的等价性讨论
3. 关系和图数据库查询处理技术的融合趋势
3.1可用于改进图查询的关系数据库技术
RDBMS支持图查询处理的动机主要包括:
-
图查询处理的应用越来越广泛,包括社交网络、交通网络、广告、Web搜索等;
-
对很多实际应用,数据仍存储在关系数据库中,将数据重新导入图查询处理引擎需要额外代价(也包括后续处理代价等);
-
相对于RDBMS,图数据库系统在事务处理、持久性和完整性限制等方面还不完善;
-
关系数据模型和图数据模型的边界较为模糊,多数结构化数据既可建模为关系表,也可建模为图数据;
-
关系数据库的发展,如列存数据库,为高效图分析提供了技术保证。
总体来说,可用于改进图查询的关系数据库技术主要包括:
-
允许以点中心(Vertex-Centric)计算等方式对关系数据库进行操作;
-
通过扩展关系代数和SQL语法支持图查询分析处理;
-
通过更高效的连接操作(如WCO Join)提升图查询(如子图匹配)的效率。本文主要介绍(1)和(2);(3)的代表性工作可参考Mhedhbi, Amine, and Semih Salihoğlu. "Modern techniques for querying graph-structured relations: foundations, system implementations, and open challenges." Proceedings of the VLDB Endowment 15.12 (2022): 3762-3765.等相关综述工作。
3.1.1 以点中心(Vertex-Centric)计算等方式支持图查询处理
经典的点中心计算可以基于同步或异步模型,如图9所示。较早的在RDBMS上支持图查询计算的研究一般采用该方式,代表性工作包括Grail[CIDR 2015]、Vertica[VLDB 2014]等。
图9 Vertex-Centric图计算模型
以Grail执行单源最短路径算法(Single-Source Shortest Path,SSSP)为例,从算法设计角度,可利用点中心的BSP模型(图10)。从算法实现角度,可构建点表vertex(id, data, val)和边表edge(src, dst, data, val),将图存储为关系数据(图11)。为了支持计算,还需若干临时表(next、cur和message)。如此一来,通过关系操作即可实现图10中的算法。
图10 利用Vertex-Centric BSP模型计算单元最短路径
图11 Grail实现图查询计算的数据结构
在系统实现中,Grail支持点中心的API接口,并将查询语句转换为SQL语句,提交给RDBMS执行。由于理论上点中心的算子都可由关系代数进行表示,该方式可有效支持图查询计算。
3.1.2通过扩展关系代数和SQL语法支持图查询分析处理
该类研究的代表性工作为Jeffrey Xu Yu教授于SIGMOD 2017发表的"All-in-one: graph processing in RDBMSs revisited."论文。通过对多种常见图算法进行抽象(图12),提出了4种新的关系代数操作,即矩阵乘(MM-join)、矩阵向量乘(MV-join)、Anti-join(Semi-join取反)和矩阵向量更新操作(Union-by-update),再通过扩展递归SQL的语法对其进行支持。
图12 扩展关系代数和SQL语法支持多种图算法
该方法将图简单的存储为一个点表V(ID, vw)和一个边表E(F, T, ew)。利用新的关系代数操作,可实现对多种图算法(单步操作)的表达(图13):
图13 用扩展的关系代数操作表达图算法(的单步操作)
类似的,IBM Db2 Graph在IBM Db2数据库上建立了一个图查询处理层,支持将Gremlin语法嵌入SQL,实现关系数据库对图查询的支持(图14)。
图14 IBM Db2 Graph查询引擎及查询处理流程
3.2可用于改进关系查询的图处理技术
图处理技术和图数据库系统同样可用于加速关系查询。人民大学卢卫、杜小勇老师团队首次融合RDBMS(TPC-H)和GDBMS(LDBC)的benchmark进行测试,结果表明即使对关系基本操作如投影(Projection)、连接(Join)、聚集(Aggregation)和排序(Order By),GDBMS在投影和连接操作上较RDBMS有一定优势(图15)。
图15 RDBMS和GDBMS在基本关系操作上的效率对比
我们主要介绍两个代表性工作,分别利用随机游走的思想加速在线聚集(Online Aggregation)查询,和利用图建模的思想加速关系型OLAP查询。
3.2.1 利用随机游走加速在线聚集查询
SIGMOD 2016的最佳论文Wander Join将关系表连接隐式的看成图,利用随机游走(Random Walk)加速在线聚集查询(图16)。其中,表间的随机游走通过索引进行实现。由于该方法可保证采样结果一定属于连接结果,故采样数远远少于已有的Ripple Join等方法。
图16 Wander Join基本思想
3.2.2 利用图建模和并行图计算加速OLAP查询
UCSD某团队与TigerGraph合作,在SIGMOD 2021发表了Vertex-centric Parallel Computation of SQL Queries论文,通过将多个关系表存储为类似RDF的图结构,并采用多线程实现点中心图计算来加速TPC-H查询。具体的,该方法首先使用Tuple-Attribute Graph (TAG)存储关系型数据(图17):
图17 TAG数据结构
该存储方式的优势在于,如果两个元组(如NATION表的(1,USA)和CUSTOMER表的(10,1,Bob))可连接出结果,那么在TAG图中对应节点(NATION_1和CUSTOMER_10)必然通过连接属性(值为1的节点)相连。其次,该论文设计了点中心的多线程连接算法,实现两表单属性连接、两表多属性连接、多表无环连接和有环连接(Cyclic Join)。其中,最简单的两表单属性连接思路如下图所示。
图18 两表连接的实现算法
通过在TPC-H和TPC-DS上进行测试,该实现方法总体好于代表性的商用RDBMS,表明利用图建模和图算法技术优化OLAP类查询还有很大改进空间,为关系数据库优化提供了新的思路。
图19 TAG-Join与代表性RDBMS的效率对比
4. 关系和图数据库融合的未来发展趋势和挑战
我们认为关系和图数据库融合的开放性问题与挑战主要包括:
在支持多模(multi-model)数据的查询语言方面,需要提出对应的代数抽象,能像关系代数指导关系查询语言那样提供理论指导。同时需要研究跨模型查询优化的通用技术。
面向各种图查询和分析,当前部分关系数据库的前沿技术(如WCO Join)已用于子图匹配等图查询的加速,我们期待这些技术能与众多图算法研究中的优化技巧相结合。此外,如何实现多种图分析算法的效率与通用性间的平衡也是有趣的研究问题。
对于如何利用图处理技术实现关系查询加速,需要从图视角进一步开展结构化(关系)数据和关键操作的建模,并利用图算法领域的方法技术实现优化。同时,我们也注意到图数据库需要进一步提升其对事务、恢复、容错和完整性检查等数据库基本功能的支持和稳定性保证。
注:本工作得到CCF-腾讯犀牛鸟科研基金资助。