将架构从源数据库迁移到 Spanner 的过程涉及多个步骤,该过程会将自动化工具与人工分析和优化相结合。以下步骤概述了推荐的方法:
架构提取:从源数据库中提取架构定义 (DDL)。
初始转换:您可以考虑使用自动化架构转换工具,例如 Spanner 迁移工具 (SMT),该工具可以处理许多基本的数据类型映射和结构转换。
详细的架构审核和优化:考虑以经过深思熟虑的较小更改来转换与 Spanner 更兼容的源数据库架构,这些更改可以单独进行测试和优化,以降低一次性更改所有内容的风险。
- 数据类型映射:审核并优化 SMT 生成的数据类型映射。确保 Spanner 数据类型能够准确表示对应源数据库类型的范围、精度和语义。
- 主键和交织:确定是否有机会使用 Spanner 的交织表来对源数据库架构中存在的父子关系进行建模。为 Spanner 选择合适的主键策略,例如使用 UUID。SMT 可以帮助您选择合适的主键策略。考虑对数据存储区域和避免热点的影响。评估源数据库中外键限制条件的使用情况,并确定如何在 Spanner 中处理这些限制条件。如需了解详情,请参阅父子表关系。
- 索引优化:分析源数据库中的现有索引,并设计 Spanner 索引以优化查询性能。请考虑删除不常用的索引。
- 消除不兼容性:移除或重写 Spanner 不支持的任何特定于源数据库的功能。例如,Spanner 不支持存储过程或触发器。这可能需要您重构应用代码。
架构部署:将 Spanner 架构部署到开发或预演环境。
迭代测试和优化:加载示例数据,并使用具有代表性的应用交互来测试架构。监控性能并找出有待改进的方面。根据测试结果优化架构。重复此过程,直到架构满足应用的性能和功能要求。
架构验证:开发脚本或过程来比较源数据库和 Spanner 架构的结构,以确保转换正确执行。
最终架构部署:将经过验证和优化的架构部署到 Spanner 生产实例。
特定于来源的指南
- MySQL:迁移 MySQL 架构。