本教程介绍了如何创建和部署将更改的数据从 Microsoft SQL Server 数据库持续复制到 BigQuery 表的流水线。
目标
在本教程中,您将执行以下操作:
- 设置 Microsoft SQL Server 数据库以启用复制功能。
- 创建并运行 Cloud Data Fusion 复制作业。
- 在 BigQuery 中查看结果。
费用
本教程使用 Google Cloud 的以下收费组件:
您可使用价格计算器根据您的预计使用情况来估算费用。
复制功能运行时,您需要为 Dataproc 集群付费,并且会对 BigQuery 产生处理费用。为了优化这些费用,我们强烈建议您使用 BigQuery 统一费率价格。
准备工作
- 登录您的 Google Cloud 帐号。如果您是 Google Cloud 新手,请创建一个帐号来评估我们的产品在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。
-
在 Google Cloud Console 中的项目选择器页面上,选择或创建一个 Google Cloud 项目。
-
确保您的 Cloud 项目已启用结算功能。了解如何检查项目是否已启用结算功能。
-
启用 Cloud Data Fusion, BigQuery, and Cloud Storage API。
-
在 Google Cloud Console 中的项目选择器页面上,选择或创建一个 Google Cloud 项目。
-
确保您的 Cloud 项目已启用结算功能。了解如何检查项目是否已启用结算功能。
-
启用 Cloud Data Fusion, BigQuery, and Cloud Storage API。
- 创建一个 SQL Server 实例。
- 下载 AdventureWorks2017 数据库并加载数据到 SQL Server 实例中。
- 在版本 6.3.0 或更高版本中,创建私有 Cloud Data Fusion 实例。设置该实例时:
- 启用 Virtual Private Cloud 对等互连。
- 通过点击添加加速器,然后选择复制启用复制功能。
- 如果您的 SQL Server 处于始终开启状态,请参阅问题排查,了解其他步骤。
如果您使用现有实例,或者如果您未在 Cloud Data Fusion 菜单 menu 中看到复制功能,请参阅升级以启用复制功能。
在 SQL Server 数据库中启用复制功能
在 SQL Server 实例中启用变更数据捕获 (CDC)。
创建并运行 Cloud Data Fusion 复制作业
上传 JDBC 驱动程序
下载 SQL Server JDBC 驱动程序到本地机器。
在 Cloud Data Fusion 界面中,上传 JDBC 驱动程序。使用以下值配置 JDBC 驱动程序:
- 在名称字段中,输入
sqlserver
。 - 在版本字段中,保留默认值。
- 在类名称字段中,输入
com.microsoft.sqlserver.jdbc.SQLServerDriver
。
- 在名称字段中,输入
创建流水线
在 Cloud Data Fusion 界面中,点击菜单 menu,然后导航到复制页面。
在创建新的复制作业 (Create new replication job) 页面上,指定复制作业的名称。
点击下一步。
配置来源:
- 选择 Microsoft SQL Server 作为来源。
- 对于主机,输入要从中读取的 SQL Server 的主机名。
- 对于端口,输入要用于连接到 SQL Server 的端口:
1433
。 - 对于 JDBC 插件名称 (JDBC Plugin Name),选择
sqlserver
(或您在配置 JDBC 驱动程序时指定的名称)。 - 对于数据库名称,输入
AdventureWorks2017
。 - 在凭据部分中,输入您的用户名和密码以访问 SQL Server。
点击下一步。
如果连接成功,系统将显示 AdventureWorks2017 表的列表。在本教程中,选择要复制的所有表和事件(包括插入、更新和删除事件)。
点击下一步。
配置目标:
- 选择 BigQuery 目标。
- 系统会自动检测项目 ID 和服务帐号密钥。请保留默认值。
- (可选)在高级部分中,您可以配置暂存存储分区的名称和位置、加载间隔、暂存表前缀以及删除表或数据库时的行为。
点击下一步。
(可选)配置高级属性。在本教程中,您可以接受默认设置。
点击下一步。
在审核评估 (Review assessment) 页面上,点击任一表的查看映射 (View mappings),以获取复制期间可能发生的架构问题、缺少功能或连接问题的评估。如果出现任何问题,必须先解决问题,然后才能继续操作。在本教程中,如果任何表出现问题,请返回到选择表的步骤,然后改为选择一个没有问题的表或事件(插入、更新或删除)。
点击 Back(返回)。
点击下一步。
查看摘要复制作业详情,然后点击部署复制作业 (Deploy Replication job)。
启动流水线
在复制作业详情 (Replication job details) 页面中,执行以下操作:
点击开始。
复制作业从正在预配依次转换为正在启动、正在运行状态。在正在运行状态下,复制作业会将您选择的表数据的初始快照(例如,人员表)加载到 BigQuery 中。在此状态下,人员表的状态显示为正在截取快照 (Snapshotting)。在初始快照加载到 BigQuery 后,对人员表所做的任何更改都会复制到 BigQuery,并且该表的状态会显示为正在复制。
监控流水线
您可以启动和停止复制作业、查看复制作业的配置和日志以及监控复制作业。
您可以通过复制作业详情 (Replication job details) 页面监控复制作业活动。
在复制页面中,点击所需的复制作业的名称。
点击 Monitoring。
在 BigQuery 中查看结果
复制作业会在 BigQuery 中使用继承自相应 SQL Server 数据库的名称和表名称创建复制数据集和表。
在 Cloud Console 中打开 BigQuery。
在左侧面板中,点击您的项目名称以展开数据集列表。
选择
adventureworks2017
数据集,然后选择要查看的表。
如需了解详情,请参阅 BigQuery 文档。
清理
为避免因本教程中使用的资源导致您的 Google Cloud 帐号产生费用,请删除包含这些资源的项目,或者保留项目但删除各个资源。
学完本教程后,请清理在 Google Cloud 上创建的资源,以避免这些资源占用配额,日后产生费用。以下部分介绍如何删除或关闭这些资源。
删除虚拟机实例
- 在 Cloud Console 中,转到虚拟机实例页面。
- 选中要删除的实例。
- 如需删除实例,请点击 更多操作,点击删除,然后按照说明操作。
删除 Cloud Data Fusion 实例
删除项目
若要避免产生费用,最简单的方法是删除您为本教程创建的项目。
如需删除项目,请执行以下操作:
- 在 Cloud Console 中,转到管理资源页面。
- 在项目列表中,选择要删除的项目,然后点击删除。
- 在对话框中输入项目 ID,然后点击关闭以删除项目。
后续步骤
- 详细了解 Cloud Data Fusion 中的复制功能。
- 参阅 Replication API 参考文档。
- 浏览有关将数据从 MySQL 复制到 BigQuery 的教程。
- 浏览将数据从 Oracle 复制到 BigQuery教程。