Dgraph 25.5.0 介绍与选型指南

介绍 Dgraph 25.5.0:分布式图数据库的 Zero/Alpha 架构、DQL 与 GraphQL 双查询接口、分片复制与高可用、官方快速上手示例,量化对比 Neo4j、JanusGraph、Cayley 并给出选型建议。

DgraphDgraph图数据库NoSQL知识图谱2026/10/18

Dgraph 25.5.0 介绍与选型指南

本文为 A1 认知篇(软件介绍与选型指南),全部信息来自官方公开资料溯源(官网、官方文档、官方代码仓库发行记录),不含本地安装与实测数据。文末附官方来源清单。

一、信息基准

1.1 查询基准

  • 查询日期:2026-10-18。
  • 版本依据:Dgraph 25.5.0(官方代码仓库 releases 记录时间 2026-10-13),为查询时点官方最新稳定版;官方文档站当前标注的文档基准为 v25.4(latest),仓库主线已发布 25.5.0。25.4/25.3/25.2/25.1 与 24.1 为官方文档保留的版本线。
  • 许可:Apache License 2.0(官方仓库 LICENSE 文件实查)。
  • 开发语言:Go;内置键值存储为同团队开发的 Badger(25.5.0 发行记录中含 Badger v4.9.6 升级条目)。

1.2 官方来源清单

来源说明链接
官网产品主页https://dgraph.io/
官方文档(v25.4 latest)架构、快速开始、DQL、管理等权威文档https://docs.dgraph.io/
官方概览文档图模型、数据格式、分布式架构、企业能力描述https://docs.dgraph.io/dgraph-overview
官方架构文档Zero/Alpha 角色与端口、集群拓扑https://docs.dgraph.io/installation/dgraph-architecture
官方安装文档脚本安装、二进制下载、构建https://docs.dgraph.io/installation/download
官方代码仓库版本发行记录(25.5.0 等)https://github.com/dgraph-io/dgraph
仓库 LICENSE 文件Apache-2.0 原文https://github.com/dgraph-io/dgraph/blob/main/LICENSE.txt

二、软件概述

Dgraph 25.5.0(查询时点 2026-10-18 的官方仓库最新稳定版)是一款为高度关联数据设计的分布式图数据库,官方概览将其定位为「为需要处理高度连接数据的应用提供可扩展的存储与查询基础」。数据以图组织:节点(node)代表实体并以唯一 UID 标识,关系(relationship)连接节点,节点可携带字符串、整数、浮点、日期、地理坐标等类型属性;数据写入支持 RDF 三元组与 JSON 两种格式,内部统一存储为图结构。Dgraph 原生提供两套查询接口:类 GraphQL 扩展而来的图查询语言 DQL,以及直接面向客户端的 GraphQL API;另配官方图形界面 Ratel。

系统设计上,Dgraph 自诞生即为分布式:数据按谓词自动分片到多个服务组,查询自动分发至相关分片并聚合结果,官方表述可支撑数十亿节点与三元组规模的低延迟查询,并提供高可用副本、备份恢复、监控集成、谓词级访问控制与静态/传输加密等生产特性。

三、核心架构

3.1 Zero 与 Alpha 双角色

官方架构文档载明集群由两类节点组成:

  • Dgraph Zero(控制面):负责集群协调与元数据——集群成员管理、谓词到 Alpha 组的分配(负载均衡)、事务时间戳与 UID 分配、集群扩缩时的数据再均衡、schema 变更协调。每集群至少一个 Zero,内部 gRPC 端口 5080,HTTP 管理端口 6080。
  • Dgraph Alpha(数据面):负责图数据存储(节点、边、谓词)、索引维护、DQL 与 GraphQL 查询执行、带 ACID 保证的变更处理;每个 Alpha 组(group)拥有特定谓词的所有权。至少一个 Alpha,端口 7080(内部 gRPC)、8080(外部 HTTP)、9080(外部 gRPC)。

3.2 分片、复制与高可用

  • 数据按谓词分组分片(sharding),查询透明分发聚合;
  • 每个服务组内可配置多副本实现高可用,自动故障转移无需人工干预;
  • 官方拓扑示例:最小集群 1 Zero + 1 Alpha(开发/测试);高可用集群 3 Zero + 3 Alpha(副本数 3,容忍每组 1 节点故障,谓词三副本);更大规模采用分片 + 高可用的多组拓扑。

3.3 数据模型与索引

  • 谓词(predicate)是数据组织的基本单元,节点属性与边都以谓词承载;
  • 可无 schema 运行(任意谓词随时添加),也可显式定义 schema 声明谓词类型与索引;部分查询函数依赖对应索引;
  • 存储层内嵌 Badger 键值引擎,发布记录中随主线持续升级。

3.4 查询接口

  • DQL:受 GraphQL 启发并扩展图查询能力的声明式查询语言;
  • GraphQL API:由 schema 直接生成(官方文档单列 GraphQL 章节);
  • Ratel:官方查询与调试 UI。

四、功能特性

4.1 原生分布式与水平扩展

从底层按分布式系统设计:谓词级自动分片、再均衡(25.5.0 支持 --rebalance_interval=0 关闭自动再均衡等管理项)、跨分片查询自动聚合。

4.2 高可用与运维能力

多副本高可用与自动故障转移;全量与增量备份(本地或云存储)、时间点恢复;内置指标并支持 Prometheus/Grafana 集成观测集群健康与查询性能;官方提供生产检查清单。

4.3 安全能力

  • 静态与传输加密;
  • 谓词级访问控制列表(ACL),适配多租户;
  • 25.5.0 引入 --security "anonymous=..." 安全姿态配置项,并将身份与租户(tenancy)语义分离(AccessController),多租户能力持续演进。

4.4 数据载入与迁移

官方提供 live loader 与 bulk loader(25.5.0 含 bulk 载入的确定性初始 tablet 放置能力 --tablet_placement);支持 RDF 与 JSON 数据格式,官方文档另有数据迁移章节。

4.5 生态与客户端

官方维护多语言客户端(文档 Clients 章节)与 Ratel UI;独立组件 dgraph-graphql、Ratel UI 与数据库本体同仓库或同组织发布。

五、快速上手

以下引自官方文档(未做本地实测)。Linux 下可用官方自动安装脚本或手动解包二进制:

curl https://get.dgraph.io -sSf | bash
dgraph version

手动方式(官方文档):从 GitHub Releases 下载对应平台 tar 包后解压到系统可执行目录:

sudo tar -C /usr/local/bin -xzf dgraph-linux-amd64-VERSION.tar.gz

单机最小拓扑按官方架构文档依次启动 Zero 与 Alpha(端口见 3.1):

dgraph zero
dgraph alpha --zero localhost:5080

数据载入用官方 live loader(示例命令与样例数据集见官方 Quick Start 与数据迁移文档):

dgraph live -f <data.rdf.gz> -s <schema>

启动后通过 8080 端口的 HTTP 接口执行 DQL/GraphQL 查询,或使用官方 Ratel UI;健康检查接口为 http://localhost:8080/health。官方快速开始:https://docs.dgraph.io/quick-start 。

六、适用场景与限制

6.1 适用场景

  • 高度连接数据的关系查询与遍历:社交网络、知识图谱、风控关系网络、推荐与影响分析。
  • 需要水平扩展的图负载:数据量与查询量增长时按组扩容、自动分片再均衡。
  • 希望一套服务同时提供 GraphQL API 与图查询语言 DQL 的 API 后端。
  • 多租户 SaaS 的图数据层:谓词级 ACL 配合租户隔离。

6.2 限制与注意事项

  • 图算法生态弱于老牌图数据库:以在线查询/遍历见长,复杂离线图计算通常需外接计算框架。
  • 运维面为双角色分布式系统:Zero 与 Alpha 的组数、副本数、分片与再均衡策略需要规划,小团队需评估复杂度。
  • 高级企业能力与社区能力边界需按官方文档与许可核实(如 ACL、加密等在官方文档中列为企业级特性描述,具体可用性以所用版本为准)。
  • 2023-2024 年项目控制权与许可曾发生变更(商业公司收购、社区许可风波后回归 Apache-2.0),升级前建议核对当前许可与版本支持策略。

七、同类选型对比

7.1 对比对象与版本基准

同为「图数据库」定位的三个对比对象:Neo4j(原生图数据库事实标准)、JanusGraph(分布式图计算栈)、Cayley(轻量图数据库,已长期停更)。版本基准(2026-10-18 查询):Dgraph 25.5.0(2026-10-13);Neo4j 5.26.32(官方仓库 releases feed 最新,5.26 LTS 维护线,2026-10-08);JanusGraph 1.1.0(2024-11-15);Cayley 最后发行版 v0.7.7(2019-10-15,此后官方未再发版)。

7.2 量化对比

维度Dgraph 25.5.0Neo4j 5.26.32JanusGraph 1.1.0Cayley v0.7.7
开源许可Apache-2.0(官方 LICENSE.txt 实查)社区版 GPLv3;企业版商业许可Apache-2.0 + CC-BY-4.0(官方 LICENSE.txt 实查)Apache-2.0(官方 LICENSE 实查)
最近发版 / stars(2026-10-18)2026-10-13;21,812(dgraph-io/dgraph)2026-10-08;17,336(neo4j/neo4j)2024-11-15;5,858(janusgraph/janusgraph)2019-10-15;15,065(google/cayley)
版本节奏主线 25.x 快速迭代,2026 年内 25.1→25.5LTS 线高频补丁,大版本按年演进1.x 低频大版本已停更(2019 年后无发行版)
兼容矩阵Go 实现,Linux/macOS/Windows 二进制;官方多语言客户端基于 JVM,跨平台;驱动生态最全基于 JVM(依赖 HBase/ScyllaDB 等后端 + Elasticsearch 索引)Go 实现,多后端 KV 适配
架构能力原生分布式,谓词级分片 + 组内副本,DQL+GraphQL 双接口单机为主、因果集群高可用;Cypher/GQL 生态成熟存储与计算解耦的外置后端架构,强扩展弱开箱单机轻量,非分布式定位

(数据来源:各项目官方仓库 LICENSE 与 releases feed、官方文档,均为 2026-10-18 查询。)

7.3 选型建议

一句话建议:需要开箱即用的分布式图数据库与 GraphQL 接口选 Dgraph;图算法、工具链与社区生态优先且可接受 GPLv3 社区版选 Neo4j;已有大数据底座(HBase 等)且需超大规模图存储选 JanusGraph;Cayley 已停更,不建议新项目采用。

八、参考链接

  1. 官网:https://dgraph.io/
  2. 官方文档(v25.4 latest):https://docs.dgraph.io/
  3. 官方概览:https://docs.dgraph.io/dgraph-overview
  4. 官方架构文档:https://docs.dgraph.io/installation/dgraph-architecture
  5. 官方安装文档:https://docs.dgraph.io/installation/download
  6. 官方快速开始:https://docs.dgraph.io/quick-start
  7. 官方代码仓库与发行记录:https://github.com/dgraph-io/dgraph
  8. LICENSE(Apache-2.0):https://github.com/dgraph-io/dgraph/blob/main/LICENSE.txt
  9. Neo4j 官方仓库:https://github.com/neo4j/neo4j
  10. JanusGraph 官方仓库:https://github.com/janusgraph/janusgraph
  11. Cayley 官方仓库:https://github.com/google/cayley