将数据从 MySQL 复制到 BigQuery

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

在 Compute Engine 中安装 MySQL

  1. 下载 MySQL Server Docker 映像。

  2. 将 Docker 映像上传到 Artifact Registry。

  3. 在新的虚拟机实例上部署 Docker 映像。

  4. 在 Compute Engine 磁盘页面上,将磁盘大小更改为 500 GB,然后重启虚拟机。

    转到“磁盘”

  5. 为虚拟机实例创建防火墙

  6. 安装 Sakila 示例数据库

在 MySQL 数据库中启用复制功能

如需启用复制功能,请在 MySQL 中设置变更数据捕获 (CDC)

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

上传 JDBC 驱动程序

  1. 将 MySQL JDBC 驱动程序(版本 8 或更高版本)下载到本地机器

  2. 在 Cloud Data Fusion 网页界面中,上传 JDBC 驱动程序

    使用以下值配置 JDBC 驱动程序:

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

创建作业

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

  2. 点击 创建复制作业

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

  4. 配置来源:

    1. 选择 MySQL 作为来源。
    2. 对于主机,输入要从中读取的 MySQL 服务器的主机名。
    3. 对于端口,输入要用于连接到 MySQL 服务器的端口:3306
    4. 对于 JDBC 插件名称 (JDBC Plugin Name),选择 mysql 或您在配置 JDBC 驱动程序时指定的名称。
    5. 对于数据库名称,输入 sakila
    6. “凭据”部分中,输入您的用户名和密码以访问 MySQL 服务器。
  5. 点击下一步

  6. 配置目标:

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

  8. 如果连接成功,系统将显示 Sakila 示例数据库表的列表。在本教程中,选择一些要复制的表和事件,例如插入、更新和删除事件。

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

  10. 点击下一步

  11. 审核评估 (Review assessment) 页面上,点击任一表的查看映射 (View mappings),以获取复制期间可能发生的架构问题、缺少功能或连接问题的评估。如果出现任何问题,必须先解决问题,然后才能继续操作。在本教程中,如果任何表出现问题,请返回到选择表的步骤,然后选择没有问题的表或事件(插入、更新或删除)。

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

  12. 点击下一步

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

启动作业

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

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

监控作业

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

您可以通过复制作业详情 (Replication job details) 页面监控复制作业活动。

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

  2. 点击监控

在 BigQuery 中查看结果

复制作业会在 BigQuery 中使用继承自相应 MySQL 数据库的名称和表名称创建复制数据集和表。

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

    转到 BigQuery

  2. 在左侧面板中,选择您的项目名称以展开数据集列表。

  3. 如需查看结果,请选择 sakila 数据集,然后选择一个表。

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