Dgraph 25.5.0 介绍与选型指南
介绍 Dgraph 25.5.0:分布式图数据库的 Zero/Alpha 架构、DQL 与 GraphQL 双查询接口、分片复制与高可用、官方快速上手示例,量化对比 Neo4j、JanusGraph、Cayley 并给出选型建议。
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.0 | Neo4j 5.26.32 | JanusGraph 1.1.0 | Cayley 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.5 | LTS 线高频补丁,大版本按年演进 | 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 已停更,不建议新项目采用。
八、参考链接
- 官网:https://dgraph.io/
- 官方文档(v25.4 latest):https://docs.dgraph.io/
- 官方概览:https://docs.dgraph.io/dgraph-overview
- 官方架构文档:https://docs.dgraph.io/installation/dgraph-architecture
- 官方安装文档:https://docs.dgraph.io/installation/download
- 官方快速开始:https://docs.dgraph.io/quick-start
- 官方代码仓库与发行记录:https://github.com/dgraph-io/dgraph
- LICENSE(Apache-2.0):https://github.com/dgraph-io/dgraph/blob/main/LICENSE.txt
- Neo4j 官方仓库:https://github.com/neo4j/neo4j
- JanusGraph 官方仓库:https://github.com/janusgraph/janusgraph
- Cayley 官方仓库:https://github.com/google/cayley