迁移到与 MongoDB 兼容的 Firestore
本指南将引导您逐步完成将与 MongoDB 兼容的来源数据库迁移到与 MongoDB 兼容的 Firestore 数据库的过程,且停机时间极短。
迁移过程简介
迁移过程包含以下阶段:
准备工作:创建迁移所需的资源,并设置将在迁移过程的后续阶段用于运行命令的环境变量。
从与 MongoDB 兼容的来源数据库导入:您可以使用 Datastream 服务捕获与 MongoDB 兼容的来源数据库的内容,并将其转移到 Cloud Storage 存储桶中。
将数据写入与 MongoDB 兼容的 Firestore 数据库:您可以使用 Dataflow 服务将数据从 Cloud Storage 存储桶转移到与 MongoDB 兼容的 Firestore 数据库中。
此 Dataflow 流水线将与从与 MongoDB 兼容的源数据库拉取数据的 Datastream 流同时运行。
将流量迁移到 Firestore:在流程中的适当时间点,将应用读取和写入流量迁移到与 MongoDB 兼容的 Firestore 数据库,并停止迁移流水线。
下图总结了迁移过程:
在数据传输期间,与 MongoDB 兼容的来源数据库会保持服务状态:
- Datastream 进程会捕获静态数据和更改事件。
当您必须关闭对源数据库的写入流量时,会出现短暂的部分不可用状态。在此期间,剩余的更改事件会复制到 Firestore。
复制完成后,与 MongoDB 兼容的 Firestore 数据库可以成为应用工作负载的新事实来源。所有读写流量都可以定向到新数据库。
详细的迁移步骤
本部分更详细地介绍了迁移。
Datastream 服务会在源和目标之间创建数据流。在这种情况下,来源是当前与 MongoDB 兼容的部署,而目标位置是 Cloud Storage。此流程包含以下步骤:
为 MongoDB 来源创建来源 Datastream 连接配置文件。具体说明取决于与 MongoDB 兼容的来源的类型和部署方式。
创建一个 Cloud Storage 存储桶,用于接收来自与 MongoDB 兼容的来源数据库的数据和变更事件。
创建并启动 Datastream 数据流,以将来源连接配置文件连接到目标连接配置文件。
启动 Dataflow 流水线,开始将捕获的数据注入到与 MongoDB 兼容的 Firestore 数据库中。
监控数据流,以确定迁移过程中的重要里程碑,从而确定数据转移期间是否遇到任何错误。
在适当的时候,关闭对来源数据库的写入流量。在将所有数据(包括最近的更改)复制到与 MongoDB 兼容的 Firestore 数据库后,将读取流量重定向到新目标位置。
关于代码示例
本指南中的代码示例应按顺序执行。本指南假定您通过预先设置所有环境变量来配置环境。之后,您需要执行迁移所需的命令,这些命令会使用已配置的环境变量。我们建议使用此方法。由于许多命令使用相同的环境变量,因此您可以降低在迁移过程的不同阶段引入错误的可能性。
或者,您也可以将命令示例中的变量替换为为相应环境变量设置的相同值。
限制
在开始之前,请查看与 MongoDB 兼容的 Firestore 和 MongoDB 之间的区别。请特别注意以下几点:
如果您的任何数据不符合上述类别的限制:
建议您在开始迁移流程之前,先在数据集中解决这些情况。
如果您选择在不进行更改的情况下继续操作,那么受限制影响的文档将无法写入 Firestore,并且会被搁置。 您可以决定如何处理这些文件。如果这些文件转换为受支持的类型、值或大小,则可以重新处理。
Datastream 有以下要求:
Datastream 支持的最低 MongoDB 主要版本为 4.0。对于某些次要版本,存在支持的最低补丁版本:
- 4.0.X(适用于补丁版本 X >= 21)
- 4.2.X(适用于补丁程序版本 X >= 10)
- 4.4.X(补丁版本 X >= 2)
后续步骤
继续配置资源以进行迁移。