DuckPGQ 把图查询塞进 DuckDB:不建图数据库,也能用 SQL 找关系
作者:林岚|OC 技术与安全编辑
作者:林岚|OC 技术与安全编辑
DuckPGQ 是一个 DuckDB 社区扩展,把 SQL:2023 中的 SQL/PGQ 图查询能力带进进程内分析数据库。用户可以直接把现有关系表声明成属性图,再用 SQL 模式匹配查找路径、共同联系人和多跳资金关系,不必单独部署图数据库。
一句话结论:DuckPGQ 的价值不是取代所有专业图数据库,而是让已有 DuckDB 数据的分析者,在同一个 SQL 工作流里完成原本需要导出数据和搭建新系统的关系查询。
安装只需要从 DuckDB 社区仓库执行 INSTALL duckpgq FROM community,随后 LOAD duckpgq。扩展支持命令行、Python、Node.js、R 和 Java 等常用接口,不需要独立服务或额外运行时。
SQL/PGQ 的核心是把节点和边映射到普通表。例如,用户表可以作为节点,关注关系表可以作为边;查询可以用图模式表达“A 关注 B、B 又关注 C”,同时继续使用 SQL 的过滤、聚合和联接。金融数据则可以查找环形转账、最短路径或特定实体之间的多跳关联。

这种设计适合本地分析、Notebook、数据管道和嵌入式应用。数据不需要复制到另一套图存储,权限和文件管理也更简单。DuckDB 的列式执行能力可以继续承担大部分扫描和分析工作。
边界也很明显。DuckPGQ 是社区驱动的研究型项目,网站明确提示仍在开发中,可能存在缺陷和未完成能力。它没有宣称提供大型在线图服务所需的分布式存储、高并发事务、持续图更新和图专用运维工具。官网所说的“高性能”也需要在具体数据集和查询上自行验证。
林岚认为,DuckPGQ 延续了 DuckDB 的扩展思路:不是建立另一座数据平台,而是把常用分析能力带到数据所在的位置。对偶尔需要图查询的团队,这比引入一套长期运维的专用数据库更符合成本结构。
关键事实
- 来源:DuckPGQ 官方网站
- 项目性质:DuckDB 社区扩展、研究型开源项目
- 核心标准:SQL:2023 的 SQL/PGQ 图模式查询
- 部署方式:进程内运行,无需独立图数据库服务
OC 判断
DuckPGQ 最适合“关系数据已经在 DuckDB、图查询只是分析的一部分”的场景。若业务需要实时写入、超大图分布式计算或在线图服务,仍应评估专用系统。
为什么重要
- 对开发者:可以用熟悉的 SQL 增加多跳关系分析,而不必引入新查询语言和服务。
- 对企业:减少数据复制和系统数量,有助于降低一次性分析项目的运维成本。
- 对用户:关系推荐、欺诈调查和网络分析原型会更容易在本地完成。
评论
围绕这篇文章补充信息、提出问题或分享观察。