关键词:
数据库系统
关系型数据库
数据仓库
图查询
查询翻译
摘要:
向量化查询等技术的成熟为基于数据仓库(数仓)实现图查询提供了契机,但现有系统没有考虑列式存储特点和图查询语句的特点,无法高效存储图数据及支持图查询优化。同时,由于需要保持原有图查询应用的兼容性,图查询Gremlin语言翻译生成的数仓SQL语言书写复杂且性能较差。针对上述问题,提出基于数仓的图数据库系统PandaGraph。在存储方面,PandaGraph基于关系模型高效存储图数据,结合数仓列式存储的特性进行主键和属性键设计,同时考虑到图查询和数仓查询执行特点,构建出入两张边表供图查询进行选择。在查询方面,PandaGraph结合不同Gremlin步骤的特点,构建关于遍历和存储表的查询结构,实现从Gremlin语言到SQL语言的翻译转化,使用多种优化规则对生成SQL语句进行改写,提高图查询性能。实验结果表明,PandaGraph在多场景下可正确进行翻译查询工作,并且在经典的低k跳查询场景下较现有专有图数据库系统获得5.8倍性能提升,在高k跳场景下可获得18.5倍性能提升,在基于规则的优化、基于表选择的优化和基于表结构的优化下PandaGraph可获得最少1.3、1.1和1.3倍的性能提升。