本教程介绍了如何创建和部署将更改的数据从 MySQL 数据库复制到 BigQuery 表的作业。
目标
在本教程中,您将执行以下操作:
- 在 Compute Engine 上部署 MySQL 数据库。
- 设置 MySQL 数据库以启用复制功能。
- 创建并运行 Cloud Data Fusion 复制作业。
- 在 BigQuery 中查看结果。
费用
在本文档中,您将使用 Google Cloud 的以下收费组件:
您可使用价格计算器根据您的预计使用情况来估算费用。
当复制运行时,您需要为 Dataproc 集群付费,并且会产生 BigQuery 的处理费用。为了优化这些费用,我们强烈建议您使用 BigQuery 统一费率价格。
准备工作
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Data Fusion, BigQuery, and Cloud Storage APIs.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Data Fusion, BigQuery, and Cloud Storage APIs.
- 在 6.3.0 或更高版本中创建公共 Cloud Data Fusion 实例。如果您要创建专用实例,请设置 VPC 网络对等互连。
- 创建实例时,请点击添加加速器并选中复制复选框来启用复制。
- 如需在现有实例中启用复制功能,请参阅启用复制。
所需的角色
如需获取本教程所需的权限,请参阅使用 IAM 进行访问权限控制和授予服务帐号用户权限。
在 Compute Engine 中安装 MySQL
下载 MySQL Server Docker 映像。
将您的 Docker 映像上传到 Artifact Registry。
在新的虚拟机实例上部署 Docker 映像。
在 Compute Engine 磁盘页面上,将磁盘大小更改为
500 GB
并重启虚拟机。为虚拟机实例创建防火墙。
安装 Sakila 示例数据库。
在 MySQL 数据库中启用复制功能
如需启用复制功能,请在 MySQL 中设置变更数据捕获 (CDC)。
创建并运行 Cloud Data Fusion 复制作业
上传 JDBC 驱动程序
在 Cloud Data Fusion 网页界面中,上传 JDBC 驱动程序。
使用以下值配置 JDBC 驱动程序:
- 在名称字段中,输入
mysql
。 - 在版本字段中,保留默认值。
- 在类名称字段中,输入
com.mysql.jdbc.Driver
。
- 在名称字段中,输入
创建作业
在 Cloud Data Fusion 网页界面中,点击复制。
点击
创建复制作业。在创建新的复制作业页面上,指定复制作业的名称,然后点击下一步。
配置来源:
- 选择 MySQL 作为来源。
- 对于主机,输入要从中读取的 MySQL 服务器的主机名。
- 对于端口,输入要用于连接到 MySQL 服务器的端口:
3306
。 - 在 JDBC Plugin Name 部分,选择
mysql
或您在配置 JDBC 驱动程序时指定的名称。 - 对于数据库名称,输入
sakila
。 - 在“凭据”部分中,输入您的用户名和密码以访问 MySQL 服务器。
点击下一步。
配置目标:
- 选择 BigQuery 目标。
- 系统会自动检测项目 ID 和服务账号密钥。请保留默认值。
- 可选:在高级部分中,配置暂存存储桶的名称、位置、加载间隔、暂存表前缀以及删除表或数据库时的行为。
点击下一步。
如果连接成功,系统将显示 Sakila 示例数据库表的列表。在本教程中,请选择一些要复制的表和事件,例如“插入”“更新”和“删除”事件。
可选:配置高级属性。在本教程中,您可以使用默认设置。
点击下一步。
在检查评估页面上,点击任意表格旁边的查看映射,以评估复制期间可能发生的架构问题、缺失功能或连接问题。出现问题后,您必须先解决这些问题,然后才能继续。在本教程中,如果任何表存在问题,请返回到您选择表的步骤,然后选择没有问题的表或事件(插入、更新或删除)。
如需详细了解从源数据库到 BigQuery 目标位置的数据类型转换,请参阅复制数据类型。
点击下一步。
查看摘要复制作业详情,然后点击部署复制作业。
启动作业
- 在复制作业详情页面上,点击开始。
复制作业从正在预配转换为正在启动,再转换为正在运行状态。在运行状态下,复制作业会将您选择的表数据的初始快照加载到 BigQuery 中。在此状态下,表状态显示为正在截取快照 (Snapshotting)。在初始快照加载到 BigQuery 后,对表所做的任何更改都会复制到 BigQuery,并且表状态会显示为正在复制。
监控作业
您可以启动和停止复制作业,查看其配置和日志,以及监控复制作业。
您可以通过复制作业详情页面监控复制作业的活动。
在复制页面中,点击复制作业的名称。
点击监控。
在 BigQuery 中查看结果
复制作业会在 BigQuery 中创建复制的数据集和表,其名称继承自相应的 MySQL 数据库和表名称。
在 Google Cloud 控制台中,转到 BigQuery 页面。
在左侧面板中,选择项目名称以展开数据集列表。
如需查看结果,请选择
sakila
数据集,然后选择一个表。
如需了解详情,请参阅 BigQuery 文档。
清理
为避免因本教程中使用的资源导致您的 Google Cloud 账号产生费用,请删除包含这些资源的项目,或者保留项目但删除各个资源。
学完本教程后,请清理在 Google Cloud 上创建的资源,以避免这些资源占用配额,日后产生费用。以下部分介绍如何删除或关闭这些资源。
删除 Cloud Data Fusion 实例
删除项目
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
后续步骤
- 详细了解 Cloud Data Fusion 中的复制功能。
- 参阅 Replication API 参考文档。
- 浏览有关将数据从 SQL Server 复制到 BigQuery 的教程。
- 浏览将数据从 Oracle 复制到 BigQuery教程。