将数据从 SQL Server 复制到 BigQuery


本教程介绍了如何创建和部署将更改的数据从 Microsoft SQL Server 数据库持续复制到 BigQuery 表的作业。

目标

在本教程中,您将执行以下操作:

  1. 在 SQL Server 数据库中启用变更数据捕获 (CDC)。
  2. 创建并运行 Cloud Data Fusion 复制作业。
  3. 在 BigQuery 中查看结果。

费用

在本文档中,您将使用 Google Cloud 的以下收费组件:

您可使用价格计算器根据您的预计使用情况来估算费用。 Google Cloud 新用户可能有资格申请免费试用

当复制运行时,您需要为 Dataproc 集群付费,并且会产生 BigQuery 的处理费用。为了优化这些费用,我们强烈建议您使用 BigQuery 固定费率价格

准备工作

  1. 登录您的 Google Cloud 账号。如果您是 Google Cloud 新手,请创建一个账号来评估我们的产品在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。
  2. 在 Google Cloud Console 中的项目选择器页面上,选择或创建一个 Google Cloud 项目

    转到“项目选择器”

  3. 确保您的 Google Cloud 项目已启用结算功能

  4. 启用 Cloud Data Fusion, BigQuery, and Cloud Storage API。

    启用 API

  5. 在 Google Cloud Console 中的项目选择器页面上,选择或创建一个 Google Cloud 项目

    转到“项目选择器”

  6. 确保您的 Google Cloud 项目已启用结算功能

  7. 启用 Cloud Data Fusion, BigQuery, and Cloud Storage API。

    启用 API

  8. 在 6.3.0 或更高版本中创建公共 Cloud Data Fusion 实例。如果您要创建专用实例,请设置 VPC 网络对等互连。
    • 创建实例时,请点击添加加速器并选中复制复选框来启用复制。
    • 如需在现有实例中启用复制功能,请参阅启用复制

如需详细了解网络,请参阅将 HAProxy 与 Cloud Data Fusion 搭配使用以导航复杂的网络拓扑

所需的角色

如需获取本教程所需的权限,请参阅使用 IAM 进行访问权限控制授予服务帐号用户权限

可选:设置 SQL Server 虚拟机实例

  1. 创建 SQL Server 实例

  2. 下载 AdventureWorks2017 (OLTP) 数据库将数据加载到您的 SQL Server 实例中。

在 SQL Server 数据库中启用 CDC

对于复制,请对要复制的数据库启用变更数据捕获 (CDC)。

创建并运行 Cloud Data Fusion 复制作业

上传 JDBC 驱动程序

  1. 下载 SQL Server JDBC 驱动程序到本地机器。

  2. 在 Cloud Data Fusion 网页界面中,上传 JDBC 驱动程序。使用以下值配置 JDBC 驱动程序:

    • 名称字段中,输入 sqlserver
    • 类名称字段中,输入 com.microsoft.sqlserver.jdbc.SQLServerDriver
    • 版本字段中,保留默认值。

创建作业

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

  2. 点击 创建复制作业

  3. 创建新的复制作业页面上,指定复制作业的名称,然后点击下一步

  4. 配置来源:

    1. 选择 Microsoft SQL Server 作为来源。
    2. 对于主机,输入要从中读取的 SQL Server 的主机名。
    3. 对于端口,输入要用于连接到 SQL Server 的端口:1433
    4. JDBC Plugin Name 部分,选择 sqlserver 或您在配置 JDBC 驱动程序时指定的名称。
    5. 对于数据库名称,输入 AdventureWorks2017
    6. 凭据部分中,输入您的用户名和密码以访问 SQL Server。
  5. 点击下一步

  6. 配置目标:

    1. 选择 BigQuery 目标。
    2. 系统会自动检测项目 ID服务账号密钥。请保留默认值。
    3. 可选:在高级部分中,您可以配置 Cloud Storage 存储桶的名称和位置、加载间隔、暂存表前缀以及删除表或数据库时的行为。
  7. 点击下一步

  8. 如果连接成功,系统会显示 AdventureWorks2017 表的列表。在本教程中,选择一些表和事件,例如 InsertUpdateDelete 事件。

  9. 可选:配置高级属性。在本教程中,您可以接受默认设置。

  10. 点击下一步

  11. 审核评估页面上,点击任意表格对应的查看映射,以评估复制期间可能发生的架构问题、缺失功能或连接问题。您必须先解决问题,然后才能继续。在本教程中,如果任何表存在问题,请返回到您选择表的步骤,然后选择没有问题的表或事件。

    如需详细了解从源数据库到 BigQuery 目标位置的数据类型转换,请参阅复制数据类型

  12. 点击 Back(返回)。

  13. 点击下一步

  14. 查看摘要复制作业详情,然后点击部署复制作业

启动作业

  • 复制作业详情页面中,点击开始

复制作业从正在预配转换为正在启动,再转换为正在运行状态。在运行状态下,复制作业会将您选择的表数据(例如“People”表)的初始快照加载到 BigQuery 中。在此状态下,人员表的状态显示为正在截取快照 (Snapshotting)。将初始快照加载到 BigQuery 中后,对“人员”表所做的任何更改都会复制到 BigQuery 中。该表的状态列为正在复制

监控作业

您可以启动和停止复制作业,查看其配置和日志,以及监控复制作业。

您可以通过复制作业详情页面监控复制作业的活动。

  1. 复制页面中,点击复制作业的名称

  2. 点击监控

在 BigQuery 中查看结果

复制作业会在 BigQuery 中创建复制的数据集和表,其名称继承自相应的 SQL Server 数据库和表名称。

  1. 在 Google Cloud 控制台中打开 BigQuery

  2. 在左侧面板中,点击项目名称以展开数据集列表。

  3. 选择 adventureworks2017 数据集,然后选择要查看的表。

如需了解详情,请参阅 BigQuery 文档

清理

为避免因本教程中使用的资源导致您的 Google Cloud 账号产生费用,请删除包含这些资源的项目,或者保留项目但删除各个资源。

完成本教程后,删除您在 Google Cloud 上创建的资源。

删除虚拟机实例

  1. 在 Google Cloud 控制台中,转到虚拟机实例页面。

    转到“虚拟机实例”

  2. 选中要删除的实例。
  3. 如需删除实例,请点击更多操作,点击删除,然后按照说明操作。

删除 Cloud Data Fusion 实例

按照说明删除 Cloud Data Fusion 实例

删除项目

  1. 在 Google Cloud 控制台中,进入管理资源页面。

    转到“管理资源”

  2. 在项目列表中,选择要删除的项目,然后点击删除
  3. 在对话框中输入项目 ID,然后点击关闭以删除项目。

后续步骤