将数据迁移到 Spanner 图

本文档介绍了将数据和应用迁移到 Spanner 图。我们将介绍迁移阶段和推荐的工具 具体取决于源数据库和其他因素。

将图迁移到 Spanner Graph 涉及以下核心阶段:

  1. 收集您的应用要求。
  2. 设计 Spanner 图架构。
  3. 将您的应用迁移到 Spanner 图。
  4. 测试和调整 Spanner Graph。
  5. 将数据迁移到 Spanner 图。
  6. 验证数据迁移。
  7. 配置切换和故障切换机制。

为了优化架构和应用以提升性能,您可能需要迭代设计架构、构建应用,以及测试和调整 Spanner Graph。

收集应用要求

若要设计符合应用需求的架构,请收集以下要求:

  • 数据建模
  • 常见查询句式
  • 延迟时间和吞吐量要求

设计 Spanner 图架构

如需了解如何设计 Spanner 图架构,请参阅 Spanner 图架构概览了解基本概念,并参阅创建、更新或删除 Spanner 图架构了解更多示例。如需针对常见查询模式优化架构,请参阅设计 Spanner 图架构的最佳实践

将应用迁移到 Spanner 图

首先请阅读有关将 应用 然后阅读本部分中的指南,了解 Spanner 图 应用迁移指南。

连接到 Spanner 图

如需了解如何以编程方式连接到 Spanner Graph,请参阅创建、更新或删除 Spanner Graph 架构以及 Spanner Graph 查询概览

迁移查询

Spanner Graph 查询接口与 ISO GQL 兼容,并且包含额外的 openCypher 语法支持。如需了解详情,请参阅面向 openCypher 用户的 Spanner 图表参考文档

迁移变更

如需迁移应用的变更逻辑,您可以使用 Spanner 表 变异机制。如需了解详情,请参阅插入、更新或删除 Spanner 图 数据

测试和调整 Spanner 图

有关如何测试和优化架构和应用性能的 Spanner 指南适用于 Spanner Graph。学习内容 Spanner 图性能优化最佳实践,请参阅 设计 Spanner 图架构的最佳实践调整 Spanner 图查询的最佳实践

将数据迁移到 Spanner Graph

要迁移关系型数据库中的数据,请参阅迁移您的 数据

如需移动图表数据库或非关系型数据库中的数据,您可以使用 将数据从源数据库转换为文件,将文件上传到 Cloud Storage, 然后使用 Dataflow 导入文件。建议的文件格式包括 AVRO 和 CSV。如需了解详情,请参阅批量迁移的推荐格式

处理约束条件

如果您的架构对输入表定义了约束条件,请确保在数据导入期间不会违反这些约束条件。限制条件包括:

  • 外键:可以为边对节点的引用定义外键约束条件。
  • 交错:边缘输入表可能会交错在节点输入表中。这种交错定义了父子关系,其中隐含的约束条件是,父项必须先存在,然后才能创建子项。

必须先加载交错组织中的父级,以及外键约束条件中被引用的实体。这意味着,您必须先加载图中的节点,然后再加载边。如果您先加载边,然后再加载边连接到的节点,则可能会在加载过程中遇到错误,指明某些键不存在。

为了实现正确的导入顺序,请使用 Google 提供的模板来定义 为每个阶段单独运行 Dataflow 作业,然后在 序列。例如,您可以运行一个 Dataflow 作业来导入 运行另一个 Dataflow 作业以导入边缘。 或者,您也可以编写一个用于管理导入顺序的自定义 Dataflow 作业

如需详细了解 Google 提供的模板,请参阅以下内容:

如果导入顺序错误,作业可能会失败,或者只有部分数据 可能被迁移如果仅迁移了部分数据,请执行迁移 。

提高数据加载效率

如需提高数据加载效率,请创建二级索引并定义外部索引 将数据导入 Spanner。此方法仅适用于初始批量加载或在有停机时间的迁移期间。

验证数据迁移

迁移数据后,请执行基本查询以验证数据是否正确。对源数据库和目标数据库运行以下查询 以验证结果是否匹配:

  • 统计节点和边的数量。
  • 计算每个标签的节点数和边数。
  • 计算每个节点和边缘属性的统计信息(计数、总和、平均值、最小值、最大值)。

配置割接和故障割接机制

配置切换和故障切换机制

后续步骤