将数据从 Oracle 数据库复制到 BigQuery


本教程介绍如何使用 Cloud Data Fusion 复制功能部署一个 作业,以将发生更改的数据从 Oracle 数据库持续复制到 BigQuery 数据集。此功能由 Datastream 提供支持。

目标

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

  1. 配置 Oracle 数据库以启用补充日志记录功能。
  2. 创建并运行 Cloud Data Fusion 复制作业。
  3. 在 BigQuery 中查看结果。

费用

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

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

复制运行时,您需要支付 Dataproc 集群和 Cloud Storage 的费用,同时会产生 Datastream 和 BigQuery 的处理费用。为了优化这些费用,我们强烈建议采用 BigQuery 统一费率价格

准备工作

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

    转到“项目选择器”

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

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

    启用 API

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

    转到“项目选择器”

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

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

    启用 API

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

所需的角色

如需获取连接到 Oracle 数据库所需的权限,请让管理员向您授予以下 IAM 角色:

如需详细了解如何授予角色,请参阅管理访问权限

您还可以通过自定义角色或其他预定义角色获取所需的权限。

可选:在 Compute Engine 中安装 Oracle

本部分介绍如何设置示例数据库。如果您已安装 Oracle 数据库,则可以跳过此部分。

  1. 下载 Oracle Server Docker 映像。

    如需了解此 Oracle Express 11g 映像的限制,请参阅 Oracle 数据库版本

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

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

    转到“磁盘”

  4. 安装 HR 示例架构

为 Oracle 服务器创建 VPC 网络对等互连或防火墙规则

如果您的 Oracle 数据库不允许来自公共 IP 地址的入站流量,请在 Datastream VPC 和可以访问您的 Oracle 数据库的 VPC 之间设置 VPC 网络对等互连。如需了解详情,请参阅创建专用连接配置

如果您的 Oracle 数据库允许来自公共 IP 地址的入站流量,请为虚拟机实例创建防火墙规则,以允许来自 Datastream 公共 IP 的入站流量。

配置 Oracle 服务器以启用补充日志记录功能

按照配置源 Oracle 数据库的步骤执行操作。

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

创建作业

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

  2. 点击 创建复制作业

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

  4. 配置来源:

    1. 选择 Oracle(由 Datastream 提供) (Oracle (by Datastream)) 作为来源。

    2. 对于连接方法,如果您的 Oracle 服务器允许来自 Datastream 公共 IP 地址的入站流量,请选择 IP 许可名单 (IP allowlisting)。否则,对于专用连接名称,请选择专用连接(VPC 对等互连),然后输入您在为 Oracle Server 创建 VPC 网络对等互连或防火墙规则部分中创建的 VPC 对等互连名称。

    3. 对于主机,输入要读取的 Oracle Server 的主机名。

    4. 对于端口,输入要用于连接到 Oracle Server 的端口:1521。

    5. 对于系统标识,输入 xe(Oracle 服务器的示例数据库名称)。

    6. 在“凭据”部分中,输入用于访问 Oracle 服务器的用户名和密码。

    7. 所有其他属性均保持不变。

  5. 点击下一步

  6. 配置目标:

    1. 选择 BigQuery 目标。

    2. 系统会自动检测项目 ID服务账号密钥。保留默认值。

    3. 可选:在高级部分,您可以配置以下内容:

      • 暂存存储桶的名称和位置
      • 加载间隔
      • 暂存表前缀
      • 删除表或数据库时的行为
  7. 点击下一步

  8. 如果连接成功,系统会显示表列表。在本教程中,选择几个表。

  9. 点击下一步

  10. “查看评估”页面上,点击任意表格对应的查看映射,以评估复制期间可能发生的架构问题、缺少功能或连接问题。

    如果出现任何问题,您必须先解决这些问题,然后才能继续。 在本教程中,如果任何表存在问题,请执行以下操作:

    1. 返回到选择表的步骤。
    2. 选择没有问题的表格或事件(插入、更新或删除)。

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

  11. 点击 Back(返回)。

  12. 点击下一步

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

启动作业

  1. 在 Cloud Data Fusion 网页界面中,转到复制作业详情页面。

  2. 点击启动

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

监控作业

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

您可以在复制作业详情页面中监控复制作业活动。

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

  2. 点击监控

在 BigQuery 中查看结果

复制作业会在 BigQuery 中创建复制的数据集和表,其名称沿用自相应的 Oracle 数据库和表的名称。

  1. 在 Google Cloud 控制台中,转到 BigQuery 页面。

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

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

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

清理

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

学完本教程后,请清理在 Google Cloud 上创建的资源,以避免这些资源占用配额,日后产生费用。以下部分介绍如何删除或关闭这些资源。

删除虚拟机实例

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

    转到虚拟机实例

  2. 选中要删除的实例对应的复选框。

  3. 要删除实例,请点击删除

删除 Cloud Data Fusion 实例

按照删除 Cloud Data Fusion 实例的说明进行操作。

删除项目

若要避免产生费用,最简单的方法是删除您为本教程创建的项目。

如需删除项目,请执行以下操作:

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

    转到“管理资源”

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

后续步骤