8月1日,openGauss graph 正式上线!
【资料图】
openGauss graph 是继 openGauss 之后的第二个版本,此版本与之前的版本功能特性保持兼容,在图数据管理能力和图查询性能等方面都有了显著提升。
立即体验openGauss-graph 版本:/opengauss/openGauss-graph/tree//
01 系统架构
在上一个版本的基础上,openGauss-graph在图查询处理,图数据管理等方面都有了很大的提升,具体来说:
在查询处理方面实现了Cypher和SPARQL统一查询处理层,实现了分析型查询的知识图谱查询处理,拓展底层执行模块,实现了变长路径算子。
在性能优化方面,优化统一存储方案,提出了基于属性频率聚类的混合存储方案,减少约62%存储空间,导入时间提升一个数量级。
提出了多跳邻居感知索引,将提升多跳查询效率提升一个数量级。
02 知识图谱数据库查询处理方法
1. 兼容SPARQL和Cypher
关系数据库的发展证实了统一数据模型和查询语言是数据管理技术发展的关键。目前,知识图谱数据库管理的问题是数据模型、存储方案和查询语言不统一。
为了解决这一问题,openGauss-graph能够兼容RDF图数据模型的查询语言SPARQL和属性图数据模型的主流查询语言Cypher的查询语法,进行两种查询语言的语义对齐,实现两种查询语言的互操作,并且可使用两种语言操作同一个知识图谱。
2. 支持图分析算法
支持多个图分析算法,包括:
a)最短路径查询:包含查找单源最短路径,即在给定图中查找从单个源顶点到所有其他顶点的最短路径,和全局最短路,即查找给定图中每个顶点对之间的最短路径;
b)PageRank算法:计算有向图中所有顶点的PageRank值;
c) BFS算法:计算图中单个源顶点到所有其他顶点的最短跳数。
图2 openGauss graph 版本新增功能
03 存储与查询优化
1. 基于属性频率聚类的存储优化
openGauss-graph基于属性频率和属性集,对数据进行聚类,并混合使用关系型和键值对来存储数据,综合利用关系型存储查询效率高以及键值对灵活的特点,以优化大规模图数据的存储管理,减少了约62%存储空间,数据导入时间提升一个数量级。
2. 多跳查询优化
在处理多跳查询时,往往需要处理大量的中间结果,而构建索引加速查询的时空复杂度往往是指数级,无法应用于大规模图数据。为了解决这一问题,提出多跳邻居感知索引。此方法通过利用保存到布隆过滤器中的多跳邻居信息,来加速多跳邻居查询。相比于目前最先进的方法,此索引构建时间和空间占用减少一个数量级,多跳查询最多加速30倍。
3. 查询性能达到主流水准
针对LUBM 14个查询和LDBC 7个短查询,openGauss-graph要普遍优于目前主流图数据存储系统。
04 快速入门
参阅快速入门,查看openGauss-graph目前支持的全部内容。
/opengauss/openGauss-graph/blob/master/doc/quick_
团队介绍
天津大学数据库实验室王鑫教授团队长期从事图数据管理与知识图谱数据相关研究,曾获得“CCF-华为数据库创新研究计划”首批资助并以第一名通过了评审,开发了统一数据模型和查询语言的知识图谱数据库。目前从事国家重点研发计划项目“分布式知识图谱数据管理关键技术与系统”,国家科技创新2030“新一代人工智能”重大项目“亿级节点时序图谱实时智能分析关键技术与系统”子课题,国家自然科学基金项目“大规模知识图谱分布式存储与查询关键技术研究”等项目的研究工作。
关键词: