热点|创邻图查询范式引爆LDBC TUC2024

news2024/9/20 20:04:33

2024年8月30日至31日,创邻科技Galaxybase团队联合蚂蚁集团TuGraph团队、阿里巴巴GraphScope团队共同主办第18届LDBC TUC会议。在本次会议中,来自全球图数据库领域的学者和技术专家做了很多精彩的分享,共同探讨图技术的最新进展。创邻科技Galaxybase团队也围绕图查询语言的多种模式及其未来发展方向展开分享,发表了题为《Parameterized Algorithm Routine: The Perfect Balance between Performance and Usability》的演讲,分享了Galaxybase独有的高性能图查询范式——PAR(全称Parameterized Algorithm Routine,参数化算法过程),引发了热烈讨论。(点击链接即可查看演讲PPT)

*完整会议议程可见:https://ldbcouncil.org/event/eighteenth-tuc-meeting/

01 背景

随着数据量的爆发式增长,“万物互联”已成为不可逆转的趋势。为了应对日益庞大的关联数据,我们需要借助图技术。图技术不仅能帮助我们更有效地理解和分析复杂的数据关系,还广泛应用于各种场景。例如,在社交网络中,图技术可以用来查询好友关系、识别关键影响力人物、查找共同好友,进行社群发现;在金融领域,图技术可以用于交易路径追踪、异常交易检测、欺诈团伙分析以及交易模式识别;在制造行业,图技术可以用于供应链上下游的监控与追溯;在能源行业,图技术可以用于智能调度与设备检修管理。
「那么,图数据库是如何应对这些复杂多样的分析场景的呢?」——「关键在于图查询。」

通过图查询,我们能够快速、高效地从复杂的数据关系中提取有价值的信息,以理解和应对不同的业务需求。

图查询根据其执行过程的控制方不同,分为声明式查询和命令式查询,具体对比如下:

声明式查询命令式查询
定义以结果为导向,用户仅需描述需要获取的数据,由机器决定数据获取的过程。以过程为导向,用户需描述执行步骤,向机器指定如何获取数据。
特点特点简洁、更接近自然语言,由数据库系统自动优化。复杂、提供细粒度查询控制,由用户根据业务逻辑优化、性能高。
优化通用性优化、实时优化定制性优化、执行前优化。
示例Cypher, GQLProcedure, Function

声明式查询
在这里插入图片描述

命令式查询
在这里插入图片描述

在这里插入图片描述

在上面的例子中,我们看到声明式的Cypher查询看起来比命令式的存储过程更加简单、明了。

那么,为什么还需要命令式查询呢?

Galaxybase服务过的多行业跨场景客户的实际数据显示,约70%的客户在OLAP和OLTP的混合场景中使用图数据库,10%的客户将图数据库应用于纯OLAP场景,仅有20%的用户将图数据库仅用于OLTP的场景。这些数据充分体现了不同于关系型数据库更常应用于OLTP场景,图数据库更多应用于处理复杂分析任务的OLAP及AP、TP的混合场景,因此,OLTP类多跳查询之外的,处理复杂图结构特征、多维度数据关联模式的HTAP查询和分析任务的执行效率,将更大程度决定一款图数据库在实际应用中的性能。
在这里插入图片描述

但是由于图数据的不平衡性特性(超级节点现象)、查询数据在机器节点分布的不可预测性、分布式存储中点边不在同一台机器上,以及查询路径的多样性等因素,声明式查询语言很难以通用的优化方式实现在不同数据特征、不同图结构特征、不同查询模式下的最优化。不优的查询不仅仅是查询响应慢,还容易因为查询返回的非必要中间节点信息过多、占用过大内存资源而造成系统稳定性问题。因此,在那些对性能和稳定性要求特别高的生产环境中,命令式查询反而更为合适。它允许我们在执行之前,针对特定场景进行优化,确保系统的稳定、高效运行。
在这里插入图片描述
▲ 图结构的数据不均衡性示例

此外,声明式查询语言虽然上手门槛较低,但在复杂业务场景下,其语法表达能力的限制会导致要使用多层分支嵌套的查询才能完整实现业务需求。这是由于声明式查询语言要以文本行来表达,只能描述直接路径扩展,无法对图上的复杂网络关系提供简单直观的表达方式。比如多跳扩展中的边条件如果有前后依赖关系,或者子网筛选有复杂的剪枝条件等,这些业务逻辑用声明式查询语言写会非常繁琐,反而降低了易用性。相同情况下,使用命令式查询,可以直接按照业务逻辑来写各种规则和条件,更加清晰明了、易于维护。

总结来说,声明式查询适合处理简单或者数据量小的图查询场景,而在更为复杂的图特征及模式查询场景中,尤其是在大数据分布式场景中,命令式查询能够根据业务逻辑及数据分布特性进行优化,是更佳的选择。尤其在生产环境中,如果业务对分布式大数据的查询实效性要求高,命令式查询更是必不可少的选择。

当然目前在图数据库领域中,命令式查询还存在许多挑战:

  • 命令式查询的实现难度比较大。开发这些查询的过程比写Cypher/GQL查询对使用者的编程能力要求更高,而目前针对命令式查询的用户友好的工具还不多;
  • 在处理大数据集的生产环境时,通常需要用到分布式图数据库。但是,目前市面上的图数据库很少能有效支持命令式查询的分布式并发操作;
  • 由于命令式查询的可操控性强,不法分子可以通过命令式查询进行破坏数据库的操作,这就对系统的安全性提出了更高的要求,需要设计者在提供命令式查询接口时同时做好足够的安全防护。

02 Galaxybase的解决方案——PAR

创邻科技在开发声明式查询的同时,同样重视命令式查询的研发,我们的命令式查询方案PAR在命令式查询领域取得了重大进展,为各行业多场景的应用提供了强大的支持,在实际应用中取得了出色的效果。PAR,全称为“Parameterized Algorithm Routine”(参数化算法过程),它是创邻科技专为应对大数据场景下复杂图数据库查询的挑战而设计的参数化的自定义算法程序。它充分利用了Galaxybase底层分布式计算框架的能力,为用户提供了一种通过PAR API进行服务端编程的方式。Galaxybase提供了非常丰富的API,赋能用户执行包括定制化图算法、分布式并行带条件的图数据遍历、图计算任务的分布式调度在内的复杂查询和计算操作,并针对不同场景做了分布式并行优化,在为客户提供更优秀的查询、计算性能的同时,也提升了图数据库在生产环境中的稳定性和可靠性。

提升查询计算性能

  • 分布式查询性能优化:随着数据的不断增长,用户往往需要在生产环境中使用分布式图数据库。Galaxybase的PAR在设计时就考虑了底层数据存储的分布式存储架构,会根据数据的实际分布情况进行优化,高效的处理分布式查询。
  • 并行操作性能优化:PAR提供了一系列并行操作的优化,通过底层的并行迭代接口,针对数据的分区并行特性提升了读写操作的性能。例如,在遍历磁盘上的数据时,PAR优先将同一分区的数据放在一个线程内读取,同时将不同分区的数据放在不同线程中并行读取,从而在确保磁盘的高效顺序读取的同时提升了系统的整体处理效率。

提升可用性

  • 简便的注册功能:命令式查询的开发通常比写GQL查询要复杂得多,但PAR提供了简便的注册功能。所有的命令式查询操作都可以通过可视化的用户交互界面轻松完成,包括上传、注册和修改存储过程,这让整个开发过程变得更加直观和简单。
  • 功能封装与开发便利性:Galaxybase提供了一个PAR Kit工具包,封装了各种分布式、多线程、图遍历接口,使得开发过程更加便捷和高效。即使用户不了解分布式和并行处理的细节,也可以轻松编写出支持分布式和并行处理的代码,降低学习成本、提升开发效率。

优化资源使用,提升系统稳定性

  • 资源统一管理:在生产环境中,复杂的查询在实现和使用过程中可能会占用大量资源。Galaxybase通过统一的线程池管理、文件操作和内存追踪功能,确保系统资源被合理利用,从而增强系统的稳定性。
  • 自定义停止功能:PAR支持自定义停止功能,用户可以随时停止正在执行的存储过程,防止不合理的程序消耗过多资源,进而保障系统的稳定性。

应用广泛

  1. 高校图数据库课程: 在浙江大学开设的图数据库课程中,Galaxybase的PAR已成为课程中的重要部分,帮助学生更好地理解和掌握图数据库的应用。
    在这里插入图片描述

  2. 图数据库书籍:创邻科技出版的《图数据库:理论与实践》一书中,专门讲解了图数据库服务端编程的内容,旨在帮助更多的开发者和技术人员掌握并利用好PAR支撑复杂的业务分析需求。
    在这里插入图片描述

  3. 商业项目中的验证:Galaxybase的PAR已在金融、能源、互联网、教育等多个行业的客户项目中被客户广泛应用,证明了其在实际商业环境中的可行性和有效性。
    在这里插入图片描述

客户评价

  • 交通银行: “PAR的便利性和效率非常好。目前我们生产上3个PAR包,基于几十亿的图项目并行运行效率依然高效稳定,尤其是代码在线编辑功能,为PAR开发人员和运维人员问题排查起到作用。”
  • 杭州银行:“在需求明确的情况下,(比Cypher查询)性能提升明显。数据有业务逻辑,比如筛选和排序之类,PAR用在实时查询上,更加灵活,应用调用方便。”

03 Galaxybase PAR引全球专家热议

创邻对声明式语言的深入探讨,在LDBC TUC会议上引发了热烈的探讨,我们的提议也得到了LDBC多位专家的高度评价。
在这里插入图片描述
▲LDBC副主席Alastair Green对PAR的实现进行提问

在这里插入图片描述

▲创邻科技CTO周研博士现场答与会者提问

04 展望和总结

在未来,创邻科技希望通过推广命令式查询的研发与应用,持续推动图数据库行业的健壮发展。

  • 支持声明式与命令式模式的混合使用:我们将在同一平台上支持声明式和命令式查询的混合使用,使用户可以根据不同场景灵活选择最合适的查询方式。通过无缝切换这两种模式,用户可以充分利用它们各自的优势,更好地应对复杂的业务需求。

  • 实现查询模式的自动转换:我们计划通过引入AI技术,实现声明式和命令式查询之间的自动转换。这不仅能够大幅降低开发命令式查询的成本,还能让更多用户轻松上手,从而提高开发效率。

  • 加强培训与教育:我们将加强对声明式和命令式图数据库查询的培训和教育。通过提供更多资源、在线课程和实操案例,帮助开发者更深入地理解并掌握这两种查询方式,进而选择适合自己场景的最佳模式。

  • 推动PAR的跨平台兼容性:我们将致力于提升PAR的跨平台兼容性,使其能够在更多数据库平台上顺利运行。通过一套命令式查询在不同平台上的执行,PAR的应用范围将进一步扩展,让更多企业和开发者受益。

  • 促进声明式与命令式查询的协同发展:我们希望通过持续的创新和探索,推动声明式和命令式查询的协同发展,在性能和功能上不断突破,为更多用户和企业创造真正的价值。

如果您也想了解更多PAR相关的内容,欢迎登录创邻科技官网添加创邻科技小助手

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2149930.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

EC Shop安装指南 [ Apache PHP Mysql ]

这个是软件测试课上老师布置的一个作业,期间老师也出现了不少错误,所以还是有必要记录一下吧,凑一篇文章 主要是老师的文档以及自己的一些尝试记录,试错记录,解决方案等 主要介绍了Apache的安装,MySQL的安…

weblogic CVE-2020-14882 靶场攻略

漏洞描述 32 CVE-2020-14882 允许远程⽤户绕过管理员控制台组件中的身份验证。 CVE-2020-14883 允许经过身份验证的⽤户在管理员控制台组件上执⾏任何命令。 使⽤这两个漏洞链,未经身份验证的远程攻击者可以通过 HTTP 在 Oracle WebLogic 服务器上执⾏任意命令并…

基于协同过滤算法+PHP的新闻推荐系统

作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、SSM项目源码 系统展示 【2025最新】基于协同过滤算法PHPMySQL的新…

基于Java的房地产在线营销管理系统研究与实现

目录 前言 功能设计 系统实现 获取源码 博主主页:百成Java 往期系列:Spring Boot、SSM、JavaWeb、python、小程序 前言 随着信息技术的迅猛发展,互联网已经渗透到我们生活的方方面面,为各行各业带来了前所未有的变革。房地产…

条件编译代码记录

#include <iostream>// 基类模板 template<typename T> class Base { public:void func() {std::cout << "Base function" << std::endl;} };// 特化的子类 template<typename T> class Derived : public Base<T> { public:void…

8585 栈的应用——进制转换

### 思路 1. **初始化栈**&#xff1a;创建一个空栈用于存储转换后的八进制数的每一位。 2. **十进制转八进制**&#xff1a;将十进制数不断除以8&#xff0c;并将余数依次入栈&#xff0c;直到商为0。 3. **输出八进制数**&#xff1a;将栈中的元素依次出栈并打印&#xff0c;…

navicate连接oracle数据库probable oracle net admin error

没用过oracle数据库 1、数据库版本19c&#xff1b; 使用dbeaver连接是没有问题的 使用navicate一直报错 解决方案&#xff1a; oracle官网下载win64的OCI环境 https://www.oracle.com/database/technologies/instant-client/winx64-64-downloads.html 下载好的压缩包直接解…

Git入门学习(1)

Git 00.准备工作-gitee注册 今天Git的设置中需要用到gitee的注册信息&#xff0c;先自行完成注册工作&#xff0c;可以 参考笔记 或第二天视频&#xff08;10.Git远程仓库-概念和gitee使用准备&#xff09; 传送门: gitee&#xff08;码云&#xff09;:https://gitee.com/ 注…

Hutool树结构工具-TreeUtil构建树形结构

1 pom.xml <dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.8.26</version> </dependency> 2 核心代码 import cn.beijing.satoken.domain.ZhiweiCityArea; import cn.beijing.sa…

Superset二次开发之优化Mixed Chart 混合图(柱状图+折线)

背景 基于Mixed Chart(柱状图+折线)作图,显示 某维度A Top10 + 其他 数据,接口返回了值为 undefined 的某维度A 数据,前端渲染成 某维度A 值为 0 此图表存在的问题: 图表控件编辑页面,即便数据集正常查询出 Top10 + ‘其他’ 数据,但是堆积图表渲染时,返回了 值为 0…

HarmonyOS ArkTS 用户首选项的开发及测试

本节以一个“账本”为例&#xff0c;使用首选项的相关接口实现了对账单的增、删、改、查操作&#xff0c;并使用自动化测试框架arkxtest来对应用进行自动化测试。 为了演示该功能&#xff0c;创建一个名为“ArkTSPreferences”的应用。应用源码可以在文末《跟老卫学HarmonyOS开…

恢复已删除文件的可行方法,如何恢复已删除的文件

在清理 PC 或优化存储设备时无意中删除重要文件是一种常见的人为错误。不可否认&#xff0c;在批量删除文件时&#xff0c;您通常会一起删除垃圾文件和重要文件。您后来意识到一堆文件或文件中缺少一个重要的文档或文件。在这种情况下&#xff0c;您唯一的选择是寻找恢复已删除…

优思学院|如何通过六西格玛方法优化流程,减少90%的浪费?

随着竞争压力的增加和对更快结果的需求&#xff0c;越来越多的企业开始依赖精益六西格玛来优化流程&#xff0c;减少浪费。精益六西格玛不仅改变了制造业&#xff0c;也影响了几乎所有行业的业务运营&#xff0c;提升了效率&#xff0c;消除了低效环节。这里优思学院和大家探讨…

sheng的学习笔记-AI-强化学习(Reinforcement Learning, RL)

AI目录&#xff1a;sheng的学习笔记-AI目录-CSDN博客 基础知识 什么是强化学习 强化学习&#xff08;Reinforcement Learning, RL&#xff09;&#xff0c;又称再励学习、评价学习或增强学习&#xff0c;是机器学习的范式和方法论之一&#xff0c;用于描述和解决智能体&#…

电机设计及电机仿真APP系列之—高速永磁同步电机仿真APP

电机的各种工作状态和参数变化。用户可通过调整仿真参数&#xff0c;快速得到电机的响应和性能参数&#xff0c;从而进行针对性的优化和改进。借助仿真APP&#xff0c;可大大减少电机设计迭代次数和成本&#xff0c;提高测试效率和准确性。 小编整理了10款不同类型的电机仿真A…

掌握顶会流量密码!“Mamba+CNN”双热点组合!轻松找到创新点!

传统视觉模型在处理大规模或高分辨率图像时存在一定限制。然而Mamba与CNN相结合&#xff0c;在处理序列数据和图像数据时有着显著的优势&#xff0c;并且能够有效提升模型计算效率和准确率。 这种结合可以让Mamba在处理长序列数据时既能够捕捉到序列中的时间依赖关系&#xff…

springboot整合springbatch和xxljob实现定时数据同步(完整代码)

springboot整合springbatch和xxljob实现定时数据同步&#xff08;完整代码&#xff09; 前言&#xff1a;公司一些老项目的定时任务使用spring自带的调度器来完成数据同步的&#xff0c;久而久之带来很多的不方便。首先没办法快速定位监控定时任务的执行情况&#xff0c;其次就…

c++11右值引用和移动语义

一.左值引用和右值引用 什么是左值引用&#xff0c;什么是右值引用 左值是一个表示数据的表达式&#xff08;变量名解引用的指针&#xff09;&#xff0c;我们可以获取到它的地址&#xff0c;可以对它赋值&#xff0c;左值可以出现在符号的左边。使用const修饰后&#xff0c;…

python检测keycloak证书连接报错问题

最近一直被keycloak的证书问题困扰了很久&#xff0c;老是提示ssl安全连接&#xff0c;由于不会java,只好硬着头皮用python测试。 我这里的证书是自己签注的证书&#xff0c;导入系统的是CA根证书。 from keycloak import KeycloakOpenID# 1. 配置 Keycloak 客户端 keycloak_o…

电子画册3D翻页电子版是如何制作

​随着科技的发展&#xff0c;传统的纸质画册逐渐被电子画册所取代。电子画册3D翻页电子版以其独特的交互方式和丰富的视觉体验&#xff0c;受到了越来越多人的喜爱。让我来教你怎么制作吧。 1.要制作电子杂志,首先需要选择一款适合自己的软件。比如FLBOOK在线制作电子杂志平台…