受管迁移是一项自动化功能,可帮助您将数据从自行管理的 Hive Metastore 迁移到 Dataproc Metastore 服务,而不会造成任何严重停机时间(也称为标志日)。
托管式迁移架构
下图展示了受管迁移的高级架构。
托管式迁移流程
如需完成受管迁移,您的服务需要经历两个迁移流程,即开始迁移和完成迁移。您可以随时通过取消迁移流程取消迁移。 您还可以运行许多操作命令,这些命令不是完成迁移所必需的。例如,列出迁移或删除迁移。
随着服务完成此流程,它也会在各种迁移状态和迁移阶段之间转换。这些状态和阶段表示在后台发生的进程。例如,MIGRATING
状态表示您的服务正在主动将数据从 Cloud SQL 数据库转移到 Dataproc Metastore。
开始迁移
Dataproc Metastore 与您的私有 IP Cloud SQL 实例建立连接。建立连接后,Dataproc Metastore 会将 Cloud SQL 实例用作其 Hive Metastore (HMS) 后端数据库。在迁移期间,它也是数据的可靠来源。迁移处于有效状态时,Cloud SQL 中仍会发生元数据读取和写入操作。
启动变更数据捕获 (CDC) 流水线。此流水线可让您项目中的 Cloud SQL 实例与 Dataproc Metastore 受管项目中的 Spanner 保持同步。这意味着,Cloud SQL 实例中 HMS 数据库的所有更改都会通过 Datastream 捕获并写入 Dataproc Metastore Spanner 数据库。
成功启动迁移流程后,您就可以开始将数据工作负载路由到 Dataproc Metastore。此时,Cloud SQL 仍然是数据的真实来源。
完成迁移
将工作负载迁移到 Dataproc Metastore 后,您可以完成迁移。当调用完整迁移流程时,会发生以下情况:
- Dataproc Metastore 会转换为只读模式,直到完整迁移流程完成。
- CDC 数据流会将所有正在传输的数据转移到 Dataproc Metastore。
- Dataproc Metastore 连接到 Spanner,并与 Cloud SQL 断开连接。Dataproc Metastore 现在充当 HMS 数据的可靠来源。
代理和流水线注意事项
代理
Dataproc Metastore 使用链接到 SOCKS5 代理的 Cloud SQL Auth 代理来连接到您的专用 IP Cloud SQL 实例。SOCKS5 代理服务器通过服务附件公开,如之前的架构图所示。
每次迁移都需要一个专用 NAT 子网。这是因为一个 NAT 子网不能有多个服务连接。
为避免跨区域延迟问题,请提供与 Cloud SQL 实例位于同一区域的子网来托管 SOCKS5 代理。例如,
proxy_subnet
和nat_subnet
。
变更数据捕获流水线
变更数据捕获流水线使用 VPC 对等互连在 Datastream 和专用 IP Cloud SQL 之间建立连接
每次迁移都会创建一个新的专用连接并建立新的对等互联连接。
托管 Cloud SQL 实例的 VPC 网络具有与有效迁移数量相同的对等互连连接。确保您的 VPC 网络有足够的容量来托管所有必要的对等互连连接。