本文档提供了有关在 Spanner Studio 中直观地管理 Spanner Graph 架构的指南。借助可视化建模,您可以通过直观的界面映射节点和边,而无需创建手动 DDL 语句,从而简化图表设计。借助此功能,您可以更轻松地设计、理解和与他人协作。此外,此方法还会自动应用 Spanner Graph 架构最佳实践,确保从一开始就进行优化。
您还可以使用 DDL 创建和修改 Spanner Graph 架构。如需详细了解属性图表架构,请参阅 Spanner Graph 架构概览。如果您在创建属性图表架构时遇到错误,请参阅排查 Spanner Graph 问题。

创建图表
如需开始使用,请前往 Spanner Studio,然后点击首页上的创建图。借助图表建模工具,您可以灵活地以多种方式构建图表:
从头开始:完全通过可视化界面设计节点和边缘。Spanner 会自动生成必要的 DDL 和可优化性能的架构对象。
从现有表:将当前的关系型表直接映射到图模型中,前提是这些表彼此之间已建立连接。
混合方法:从头开始对一些元素进行建模,同时映射现有表中的其他元素。
模型节点
如需向图表中添加节点,请按以下步骤操作:
从头开始
创建新节点时,Spanner 会自动为其生成数据库表。在您定义节点的属性和键时,Spanner 会为表配置列和主键。
- 在 Spanner Studio 中打开图表建模画布。
- 向图表中添加一个节点,并选择新建作为其数据源。
- 为节点分配名称。为此节点创建的表的名称将根据此值命名。
- 为节点分配标签。默认情况下,此标签与节点的名称一致,但可以更改。
- 定义与标签相关联的属性,包括其名称和数据类型。为至少一个属性选择是元素键,以将其指定为键。选择不为 null 以禁止 null 值。
从现有表
将节点映射到现有表时,Spanner 会使用该表的架构作为基础。其标签、属性和键会自动从表中继承,但可以替换。
- 在 Spanner Studio 中打开图表建模画布。
- 向图表中添加一个节点,然后选择现有数据源作为其数据源。
- 为节点分配标签。默认情况下,此标签与节点的名称一致,但可以更改。
- 定义与标签相关联的属性。Spanner 会将表的列映射到属性,并将表的主键映射到元素键。您可以通过执行以下任一操作来自定义此设置:
- 创建新属性:添加新属性,这会导致 Spanner 自动在表中创建底层列。
- 舍弃属性:移除此节点不需要的任何已映射列。
模型边缘
如需向图表中添加边,请按以下步骤操作:
从头开始
从头开始创建新边时,系统会自动创建底层表。在您定义源节点和目标节点时,Spanner 会在后台配置必要的主键和引用列。
在 Spanner Studio 中打开图表建模画布。
向图表中添加一条边,并选择新建作为其数据源。输入边缘名称。
选择源节点和目标节点。Spanner 会生成标识源元素键和目标元素键所需的属性,并将这些属性用作边的默认元素键。
默认情况下,两个特定节点之间只能存在一条边,因为 Spanner 使用源节点和目标节点元素键来唯一标识每条边。如果您需要在同一两个节点之间添加多个边(一种常见的实际应用场景),请定义一个额外的属性并选择是元素键,以确保每个边的唯一性。
为边分配标签。默认情况下,此值与边的名称一致。
为边定义任何其他属性。
确定边后,Spanner 会自动生成优化边遍历所需的 DDL 语句。如需了解详情,请参阅查看并生成 DDL。
从现有表
将边映射到现有表时,Spanner 会使用该表的架构作为基础。其标签、属性和键会自动从表中继承,但您可以替换它们或添加新属性。
在 Spanner Studio 中打开图表建模画布。
向图添加边,并选择现有表格作为其数据源。
选择来源节点和目标节点。定义来源和目标引用列。
为边分配标签。默认情况下,此名称与边的输入表名称一致。
定义与标签相关联的属性。Spanner 会自动将表的列映射到属性,并将表的主键映射到边元素键。您可以通过以下方式修改此设置:
- 创建新属性:添加新属性,Spanner 将在您的表中创建相应的底层列。
- 舍弃属性:移除此边不需要的任何已映射列。
对于从现有表创建的边,Spanner 不会生成用于优化边遍历的 DDL 语句。请参阅架构最佳实践,以手动应用优化。
修改图表
您可以将现有属性图加载到 Spanner Studio 中,以更新其结构。
- 在对象浏览器中,找到要修改的图表,然后从 更多选项菜单中选择直观地查看/修改。
- 从头开始添加新节点或边,或者从现有表中映射新节点或边。
- 更新现有节点和边的属性。您可以使用基础表中的现有列,也可以添加新属性,系统会自动将相应的列添加到基础表中。
- 从图表定义中移除节点或边。
查看并生成 DDL
完成建模后,Spanner 会根据您的模型生成以下 DDL 语句。
CREATE OR REPLACE PROPERTY GRAPH:创建或更新图表定义。CREATE TABLE:为从头构建的任何节点或边创建底层表。ALTER TABLE ADD COLUMN:向从现有表映射的节点或边添加新的属性列。ALTER TABLE ADD CONSTRAINT:创建外键约束以优化正向边遍历。CREATE INDEX:创建反向边索引以优化反向边遍历。
按照以下步骤提交图表更改:
- 按 Generate DDL(生成 DDL)按钮以生成架构。系统会创建之前所述的必要 DDL 语句。
- 在 Spanner Studio 编辑器中查看生成的 DDL 语句。这些语句按正确的执行顺序呈现,并包含用于说明每个架构对象的注释。您可以先修改任何声明,然后再继续操作。
- 执行语句以将更改提交到数据库。
限制
- 仅限添加性更改:为确保安全,该工具不会生成
DROP TABLE或DROP COLUMN语句。移除节点、边或属性只会更新PROPERTY GRAPH定义。它不会舍弃底层表和列。 - 某些不受支持的架构对象:此工具不会自动生成所有可能的架构对象、列数据类型或其限定符。不过,您可以在提交之前,在编辑器中手动修改生成的 DDL 语句。
- 不支持保存草稿:在对图表进行建模时,如果您关闭页面,进度不会保存。
- 不支持无架构数据:此工具仅生成具有正式结构的图表。如果您的使用情形需要无架构数据,您可以使用此架构示例作为基础来创建无架构数据图。
- 不支持视图和命名架构表:将节点和边映射到现有数据源时,您无法选择数据库视图或命名架构表作为数据源。
- 没有映射的边缘限制条件或索引:该工具不会为从现有表映射的边缘生成外键限制条件或反向边缘索引。如需了解手动创建的最佳实践,请参阅最佳实践。