openGauss-graph 0.2.0 版本正式上线
[openGauss](javascript:void(0);) 2023-08-01 18:00 发表于四川
News
今日,openGauss graph 0.2.0 正式上线!
openGauss graph 0.2.0 是继 openGauss graph0.1.0 之后的第二个版本,此版本与之前的版本功能特性保持兼容,在图数据管理能力和图查询性能等方面都有了显著提升。
立即体验 openGauss-graph 0.2.0 版本:https://gitee.com/opengauss/openGauss-graph/tree/0.2.0/
01
系统架构****
在上一个版本的基础上,openGauss-graph 在图查询处理,图数据管理等方面都有了很大的提升,具体来说:
在查询处理方面实现了 Cypher 和 SPARQL 统一查询处理层,实现了分析型查询的知识图谱查询处理,拓展底层执行模块,实现了变长路径算子。
在性能优化方面,优化统一存储方案,提出了基于属性频率聚类的混合存储方案,减少约 62%存储空间,导入时间提升一个数量级。
提出了多跳邻居感知索引,将提升多跳查询效率提升一个数量级。
图 1 openGauss-graph 0.2.0 新增内容架构图
02
知识图谱数据库查询处理方法****
1. 兼容 SPARQL 和 Cypher
关系数据库的发展证实了统一数据模型和查询语言是数据管理技术发展的关键。目前,知识图谱数据库管理的问题是数据模型、存储方案和查询语言不统一。
为了解决这一问题,openGauss-graph 能够兼容 RDF 图数据模型的查询语言 SPARQL 和属性图数据模型的主流查询语言 Cypher 的查询语法,进行两种查询语言的语义对齐,实现两种查询语言的互操作,并且可使用两种语言操作同一个知识图谱。
2. 支持图分析算法
支持多个图分析算法,包括:
a)最短路径查询:包含查找单源最短路径,即在给定图中查找从单个源顶点到所有其他顶点的最短路径,和全局最短路,即查找给定图中每个顶点对之间的最短路径;
b)PageRank 算法:计算有向图中所有顶点的 PageRank 值;
c) BFS 算法:计算图中单个源顶点到所有其他顶点的最短跳数。
图 2 openGauss graph 0.2.0 版本新增功能
03
存储与查询优化****
1. 基于属性频率聚类的存储优化
openGauss-graph 基于属性频率和属性集,对数据进行聚类,并混合使用关系型和键值对来存储数据,综合利用关系型存储查询效率高以及键值对灵活的特点,以优化大规模图数据的存储管理,减少了约 62%存储空间,数据导入时间提升一个数量级。
2. 多跳查询优化
在处理多跳查询时,往往需要处理大量的中间结果,而构建索引加速查询的时空复杂度往往是指数级,无法应用于大规模图数据。为了解决这一问题,提出多跳邻居感知索引。此方法通过利用保存到布隆过滤器中的多跳邻居信息,来加速多跳邻居查询。相比于目前最先进的方法,此索引构建时间和空间占用减少一个数量级,多跳查询最多加速 30 倍。
3. 查询性能达到主流水准
针对 LUBM 14 个查询和 LDBC 7 个短查询,openGauss-graph 要普遍优于目前主流图数据存储系统。
04
快速入门
参阅快速入门,查看 openGauss-graph 目前支持的全部内容。
https://gitee.com/opengauss/openGauss-graph/blob/master/doc/quick_start.md
评论