安排 Oracle 转移作业

借助适用于 Oracle 的 BigQuery Data Transfer Service 连接器,您可以自动安排和管理从 Oracle 到 BigQuery 的周期性加载作业。

限制

Oracle 转移作业受到以下限制:

  • 与 Oracle 数据库的并发连接数是有上限的,因此单个 Oracle 数据库的并发迁移作业运行数不得超过该上限。
  • 如果公共 IP 不适用于 Oracle 数据库连接,您必须设置网络连接,但需要满足以下要求:
    • 数据源必须可从网络连接所在的子网访问。
    • 网络连接不得位于 240.0.0.0/24 范围内的子网内。
    • 如果网络连接存在活动连接,则无法删除。如需删除网络连接,请与 Cloud Customer Care 团队联系
    • 对于 us 多区域,网络连接必须位于 us-central1 区域。对于 eu 多区域,网络连接必须位于 europe-west4 区域。
  • Google Cloud 控制台仅支持使用 NORMAL Oracle 用户角色将 Oracle 连接到 BigQuery Data Transfer Service。您必须使用 BigQuery CLI 通过 SYSDBASYSOPER Oracle 用户角色进行连接。
  • 周期性 Oracle 转移作业之间的最短间隔时间为 15 分钟。周期性转移作业的默认间隔时间为 24 小时。

准备工作

以下部分介绍了在创建 Oracle 转移作业之前需要执行的步骤。

Oracle 前提条件

创建 Oracle 转移作业时,您还必须具有以下 Oracle 数据库信息。

参数名称 说明
database 数据库的名称。
host

数据库的主机名或 IP 地址。

port

数据库的端口号。

username

用于访问数据库的用户名。

password

用于访问数据库的密码。

connectionType

连接类型。可以为 SERVICESIDTNS

oracleObjects

要转移的 Oracle 对象列表。

BigQuery 前提条件

所需 BigQuery 角色

如需获得创建转移作业所需的权限,请让您的管理员为您授予 BigQuery Admin (roles/bigquery.admin) IAM 角色。如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限

此预定义角色可提供创建转移作业所需的权限。如需查看所需的确切权限,请展开所需权限部分:

所需权限

创建转移作业需要以下权限:

  • 针对用户的 bigquery.transfers.update 权限
  • 针对目标数据集的 bigquery.datasets.get 权限
  • 针对目标数据集的 bigquery.datasets.update 权限

您也可以使用自定义角色或其他预定义角色来获取这些权限。

设置 Oracle 数据转移作业

从下列选项中选择一项:

控制台

  1. 前往 Google Cloud 控制台中的“数据转移”页面。

    转到“数据传输”

  2. 点击 创建转移作业

  3. 来源类型部分的来源中,选择 Oracle

  4. 数据源详细信息部分中,执行以下操作:

    • 对于网络连接,选择现有网络连接或点击创建网络连接
    • 对于主机,输入数据库的主机名或 IP。
    • 对于端口,输入 Oracle 数据库用于传入连接的端口号,例如 1520
    • 对于数据库名称,输入 Oracle 数据库的名称。
    • 对于连接类型,输入连接网址类型(SERVICESIDTNS)。
    • 对于用户名,输入启动 Oracle 数据库连接的用户的用户名。
    • 对于密码,输入启动 Oracle 数据库连接的用户的密码。
    • 对于要转移的 Oracle 对象,点击浏览以选择要转移到 BigQuery 目标数据集的任何表。

      • 此外,您还可以在此字段中手动输入要包含在数据转移作业中的任何对象。

      配置 Oracle 转移作业配置文件

  5. 目标设置部分的数据集中,选择您创建用来存储数据的数据集。

  6. 转移配置名称部分的显示名称中,输入数据转移作业的名称。

  7. 时间表选项部分中,执行以下操作:

    • 重复频率列表中,选择一个选项来指定此数据转移作业的运行频率。如需指定自定义重复频率,请选择自定义。如果您选择按需,则当您手动触发转移作业时,此转移作业会运行。

    • 如果适用,请选择立即开始在设置的时间开始,并提供开始日期和运行时间。

  8. 服务账号菜单中,选择与您的 Google Cloud 项目关联的服务账号。所选服务账号必须具有所需的角色才能运行此数据转移作业。

    如果您使用联合身份登录,则需要有服务账号才能创建数据转移作业。如果您使用 Google 账号登录,则转移作业的服务账号是可选的。

    如需详细了解如何将服务账号用于数据转移,请参阅使用服务账号

  9. 可选:在通知选项部分中,执行以下操作:

    • 如需启用电子邮件通知,请点击电子邮件通知切换开关。启用此选项后,传输作业管理员会在传输作业运行失败时收到电子邮件通知。
    • 如需为此转移作业启用 Pub/Sub 转移作业运行通知,请点击 Pub/Sub 通知切换开关。您可以选择主题名称,也可以点击创建主题来创建某个主题。
  10. 点击保存

bq

输入 bq mk 命令并提供转移作业创建标志 --transfer_config

bq mk \
    --transfer_config \
    --project_id=PROJECT_ID \
    --data_source=DATA_SOURCE \
    --display_name=DISPLAY_NAME \
    --target_dataset=DATASET \
    --params='PARAMETERS'

其中:

  • PROJECT_ID(可选):您的 Google Cloud 项目 ID。如果未提供 --project_id 来指定具体项目,则系统会使用默认项目。
  • DATA_SOURCE:数据源,oracle
  • DISPLAY_NAME:此标志表示转移配置的显示名称。数据转移作业名称可以是任何可让您在需要修改数据转移作业时识别该数据转移作业的名称。
  • DATASET:转移作业配置的目标数据集。
  • PARAMETERS:所创建转移作业配置的参数(采用 JSON 格式)。例如 --params='{"param":"param_value"}'。以下是 Oracle 数据转移作业的参数:

    • connector.networkAttachment(可选):要连接到 Oracle 数据库的网络连接的名称。
    • connector.authentication.Username:Oracle 账号的用户名。
    • connector.authentication.Password:Oracle 账号的密码。
    • connector.database:Oracle 数据库的名称。
    • connector.endpoint.host:数据库的主机名或 IP。
    • connector.endpoint.port:Oracle 数据库用于传入连接的端口号,例如 1520
    • connector.connectionType:连接网址类型(SERVICESIDTNS)。
    • assets:要转移到 BigQuery 的 Oracle 对象的路径,格式为 DATABASE_NAME/SCHEMA_NAME/TABLE_NAME

例如,以下命令会使用所有必需参数在默认项目中创建 Oracle 数据转移作业:

bq mk \
    --transfer_config \
    --target_dataset=mydataset \
    --data_source=oracle \
    --display_name='My Transfer' \
    --params='{"assets":["DB1/USER1/DEPARTMENT","DB1/USER1/EMPLOYEES"], \
        "connector.authentication.username": "User1", \
        "connector.authentication.password":"ABC12345", \
        "connector.database":"DB1", \
        "Connector.endpoint.host":"192.168.0.1", \
        "Connector.endpoint.port":"1520", \
        "connector.connectionType":"SERVICE", \
        "connector.networkAttachment": \
        "projects/dev-project1/regions/us-central1/networkattachments/na1"}'

API

使用 projects.locations.transferConfigs.create 方法并提供一个 TransferConfig 资源实例。

数据类型映射

下表将 Oracle 数据类型映射到相应的 BigQuery 数据类型。

Oracle 数据类型 BigQuery 数据类型
BFILE BYTES
BINARY_DOUBLE FLOAT
BINARY_FLOAT FLOAT
BLOB BYTES
CHAR STRING
CLOB STRING
DATE DATETIME
FLOAT FLOAT
INTERVAL DAY TO SECOND STRING
INTERVAL YEAR TO MONTH STRING
LONG STRING
LONG RAW BYTES
NCHAR STRING
NCLOB STRING
NUMBER (without precision and scale) STRING
NUMBER (with precision and scale) NUMERIC
NVARCHAR2 STRING
RAW BYTES
ROWID STRING
TIMESTAMP DATETIME
TIMESTAMP WITH LOCAL TIME ZONE DATETIME
TIMESTAMP WITH TIME ZONE TIMESTAMP
UROWID STRING
VARCHAR STRING
VARCHAR2 STRING

排查转移作业设置问题

如果您在设置数据转移作业时遇到问题,请参阅 Oracle 转移作业问题

价格

将 Oracle 数据转移到 BigQuery 的功能处于预览版阶段时,您无需付费即可使用此功能。

后续步骤