Dgraph 术语表

先理解这些概念

Dgraph 术语表

Alpha
Dgraph 集群由 Zero 节点和 Alpha 节点组成。Alpha 节点负责存储关系(也称为谓词)和索引。通过添加更多的 Alpha 节点,Dgraph 可以水平扩展。

Badger
Badger 是一个快速的开源键值数据库,使用纯 Go 编写,提供 Dgraph 的存储层。更多信息请参见 Badger 文档。

DQL
Dgraph 查询语言(DQL)是 Dgraph 的专有语言,用于插入、更新、删除和查询数据。它基于 GraphQL,但更具表达力。(另见:GraphQL)

Edge(边)
在图的概念中,节点通过边连接;节点是信息的实体,边是节点之间的关系。在 Dgraph 中,边代表关系,即描述两个节点之间关系的信息。

Facet(特性)
特性表示关系的属性。

Graph(图)
图是一种简单的结构,用于映射对象之间的关系。在 Dgraph 中,对象是节点,连接它们的关系是边。

GraphQL
GraphQL 是一种用于查询数据的声明性语言,应用程序开发者通过 GraphQL API 获取所需数据。GraphQL 是一个开放标准,拥有强大的生态系统。Dgraph 支持 GraphQL 数据模型的部署(GraphQL 模式),并自动暴露一个接受 GraphQL 查询的 API 端点。

gRPC
gRPC 是一个高性能的远程过程调用(RPC)框架,Dgraph 使用它与客户端进行交互。Dgraph 提供了 Go、C#、Java、JavaScript 和 Python 的官方 gRPC 客户端。使用这些语言编写的应用程序可以在事务中执行变更和查询。

Lambda
Lambda 解析器(简称 Lambda)是 Dgraph 中支持的 GraphQL 解析器。Lambda 是用户定义的 JavaScript 函数,用于对 GraphQL 类型、接口、查询和变更执行自定义操作。Dgraph 的 Lambda 与 AWS Lambda 无关。

Mutation(变更)
变更是对数据库的修改请求。变更包括插入、更新或删除操作。变更可以与查询结合形成 Upsert 操作。

Node(节点)
从概念上讲,节点是“一个事物”或业务领域中的对象。对于每个节点,Dgraph 存储并维护一个通用标识符 UID、一系列属性,以及该节点与其他节点的关系。

“节点”一词也用于软件架构中,指在集群中运行 Dgraph 模块的物理计算机或虚拟机。参考 Alpha 节点和 Zero 节点。

Predicate(谓词)
在 RDF 术语中,谓词是关于对象的最小信息单元。谓词可以持有字面值或描述与另一个实体的关系:

  • 当我们存储一个实体的名称为“Alice”时,谓词是 name,谓词值是字符串“Alice”。
  • 当我们存储 Alice 认识 Bob 时,可以使用谓词 knows,其值为表示 Bob 的节点的 UID。在这种情况下,knows 是一种关系。

RATEL
Ratel 是一个开源 GUI 工具,用于数据可视化和集群管理,旨在与 Dgraph 和 DQL 配合使用。另见:Ratel 概述。

RDF
RDF 1.1 是一种用于数据交换的语义网标准。它允许我们对资源进行声明。这些声明的格式简单,采用 <subject> <predicate> <object> 的形式。Dgraph 支持 RDF 格式来创建、导入和导出数据。值得注意的是,Dgraph 也支持 JSON 格式。

Relationship(关系)
关系是将一个节点与另一个节点关联的命名、有向链接。在 Dgraph 中,关系类似于边和谓词。关系本身也可以具有表示关于该关系的信息的属性,如权重、成本、时间框架或类型。在 Dgraph 中,关系的属性称为特性(facets)。

Sharding(分片)
分片是一种数据库架构模式,通过在多个服务器之间分配数据来实现水平扩展。Dgraph 按关系对数据进行分片,因此所有属于一个关系的数据形成一个单一的分片,并存储在一个(组)服务器上,这种方法称为“基于谓词的分片”。

Triple(三元组)
由于 RDF 语句由三个元素组成,因此称为三元组。三元组表示关于节点的单个原子声明。RDF 三元组中的对象可以是字面值,也可以指向另一个节点。有关更多详细信息,请参见 DQL RDF 语法。

  • 当我们存储一个节点的名称为“Alice”时,谓词是 name,谓词值是字符串“Alice”。
  • 当我们存储 Alice 认识 Bob 时,可以使用谓词 knows,其值为表示 Bob 的节点的 UID。在这种情况下,knows 是一种关系。

UID
UID 是节点的通用标识符。uid 是一个保留属性,存储每个节点的 UID 值。UID 可以在创建节点时由 Dgraph 自动生成,也可以显式设置。

Upsert
Upsert 操作将查询与变更结合在一起。通常,首先搜索一个节点,然后根据是否找到该节点,创建一个新节点并关联谓词,或者更新现有节点的关系。Upsert 操作对于实现谓词的唯一性非常重要。

Zero
Dgraph 由 Zero 节点和 Alpha 节点组成。Zero 节点控制 Dgraph 数据库集群,负责将 Alpha 节点分配到组中,重新平衡组之间的数据,处理事务时间戳和 UID 分配。

浙 ICP 备 20008785 号

© 三时七渡. 保留所有权利.