更改 SQL Server 复制作业中的架构

本页介绍了在将数据从 Microsoft SQL Server 数据库复制到 BigQuery 表时,如何在 Cloud Data Fusion 中更改架构。如需确保复制作业在架构更改后继续从 SQL Server 源复制数据,请执行以下步骤。

更改架构

  1. 前往您的实例:

    1. 在 Google Cloud 控制台中,前往 Cloud Data Fusion 页面。

    2. 如需在 Cloud Data Fusion Studio 中打开实例,请点击实例,然后点击查看实例

      转到实例

  2. 在 Cloud Data Fusion 网页界面中,点击复制

  3. 停止复制作业。

  4. 对源表应用受支持的架构更改,例如添加可为 null 的列

  5. 使用 sys.sp_cdc_enable_table 过程创建一个新的捕获表,并为参数 @capture_instance 指定一个唯一值。

  6. 在 BigQuery 中对目标表应用相同的架构更改。

  7. 重启复制作业。

  8. 可选:当作业开始流式传输您停止作业后发生的新更改时,您可以使用 sys.sp_cdc_disable_table 存储过程删除旧的捕获表。将参数 @capture_instance 设置为旧的捕获实例名称。

对源表应用架构更改后,在您创建新的捕获表(如前面的步骤所示)之前,所有更改都将由使用旧架构的旧捕获捕获。如果您添加了列,则在此期间发生的任何更改事件都不会包含新列的数据。如果您的应用无法处理此类转换,请按以下步骤操作:

  1. 暂停生成数据库记录的所有应用。

  2. 确保复制作业已处理所有现有事件。

  3. 停止复制作业。

  4. 将架构更改应用于源表,例如添加可为 null 的列

  5. 使用 sys.sp_cdc_enable_table 过程创建一个新的捕获表,并为参数 @capture_instance 指定一个唯一值。

  6. 恢复您在上一步中暂停的应用。

  7. 在 BigQuery 中对目标表应用相同的架构更改。

  8. 重启复制作业。

  9. 可选:当作业开始流式传输您在上一步中创建的新捕获表之后发生的新更改时,您可以使用 sys.sp_cdc_disable_table 存储过程删除旧捕获表。将参数 @capture_instance 设置为旧的捕获实例名称。

后续步骤