安排 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 通过SYSDBA
和SYSOPER
Oracle 用户角色进行连接。 - 周期性 Oracle 转移作业之间的最短间隔时间为 15 分钟。周期性转移作业的默认间隔时间为 24 小时。
准备工作
以下部分介绍了在创建 Oracle 转移作业之前需要执行的步骤。
Oracle 前提条件
- 在 Oracle 数据库中创建用户凭据。
- 向用户授予
Create Session
系统权限以允许创建会话。 - 向用户账号分配表空间。
创建 Oracle 转移作业时,您还必须具有以下 Oracle 数据库信息。
参数名称 | 说明 |
---|---|
database |
数据库的名称。 |
host |
数据库的主机名或 IP 地址。 |
port |
数据库的端口号。 |
username |
用于访问数据库的用户名。 |
password |
用于访问数据库的密码。 |
connectionType |
连接类型。可以为 |
oracleObjects |
要转移的 Oracle 对象列表。 |
BigQuery 前提条件
- 确认您已完成启用 BigQuery Data Transfer Service 所需的所有操作。
- 创建 BigQuery 数据集来存储数据。
- 如果您想要为 Pub/Sub 设置转移作业运行通知,请确保拥有
pubsub.topics.setIamPolicy
Identity and Access Management (IAM) 权限。如果您只是要设置电子邮件通知,则无需 Pub/Sub 权限。如需了解详情,请参阅 BigQuery Data Transfer Service 运行通知。
所需 BigQuery 角色
如需获得创建转移作业所需的权限,请让您的管理员为您授予 BigQuery Admin (roles/bigquery.admin
) IAM 角色。如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
此预定义角色可提供创建转移作业所需的权限。如需查看所需的确切权限,请展开所需权限部分:
所需权限
创建转移作业需要以下权限:
-
针对用户的
bigquery.transfers.update
权限 -
针对目标数据集的
bigquery.datasets.get
权限 -
针对目标数据集的
bigquery.datasets.update
权限
设置 Oracle 数据转移作业
从下列选项中选择一项:
控制台
前往 Google Cloud 控制台中的“数据转移”页面。
点击
创建转移作业。在来源类型部分的来源中,选择 Oracle。
在数据源详细信息部分中,执行以下操作:
- 对于网络连接,选择现有网络连接或点击创建网络连接。
- 对于主机,输入数据库的主机名或 IP。
- 对于端口,输入 Oracle 数据库用于传入连接的端口号,例如
1520
。 - 对于数据库名称,输入 Oracle 数据库的名称。
- 对于连接类型,输入连接网址类型(
SERVICE
、SID
或TNS
)。 - 对于用户名,输入启动 Oracle 数据库连接的用户的用户名。
- 对于密码,输入启动 Oracle 数据库连接的用户的密码。
对于要转移的 Oracle 对象,点击浏览以选择要转移到 BigQuery 目标数据集的任何表。
- 此外,您还可以在此字段中手动输入要包含在数据转移作业中的任何对象。
在目标设置部分的数据集中,选择您创建用来存储数据的数据集。
在转移配置名称部分的显示名称中,输入数据转移作业的名称。
在时间表选项部分中,执行以下操作:
在重复频率列表中,选择一个选项来指定此数据转移作业的运行频率。如需指定自定义重复频率,请选择自定义。如果您选择按需,则当您手动触发转移作业时,此转移作业会运行。
如果适用,请选择立即开始或在设置的时间开始,并提供开始日期和运行时间。
在服务账号菜单中,选择与您的 Google Cloud 项目关联的服务账号。所选服务账号必须具有所需的角色才能运行此数据转移作业。
如果您使用联合身份登录,则需要有服务账号才能创建数据转移作业。如果您使用 Google 账号登录,则转移作业的服务账号是可选的。
如需详细了解如何将服务账号用于数据转移,请参阅使用服务账号。
可选:在通知选项部分中,执行以下操作:
- 如需启用电子邮件通知,请点击电子邮件通知切换开关。启用此选项后,传输作业管理员会在传输作业运行失败时收到电子邮件通知。
- 如需为此转移作业启用 Pub/Sub 转移作业运行通知,请点击 Pub/Sub 通知切换开关。您可以选择主题名称,也可以点击创建主题来创建某个主题。
点击保存。
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
:连接网址类型(SERVICE
、SID
或TNS
)。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 的功能处于预览版阶段时,您无需付费即可使用此功能。
后续步骤
- 如需大致了解 BigQuery Data Transfer Service,请参阅 BigQuery Data Transfer Service 简介。
- 如需了解如何使用转移作业,包括获取有关转移作业配置的信息、列出转移作业配置以及查看转移作业的运行历史记录,请参阅处理转移作业。
- 了解如何通过跨云操作加载数据。