DBMS_CLOUD_PIPELINE 程序包
DBMS_CLOUD_PIPELINE 软件包允许您创建数据管道以在云中加载和导出数据。此程序包支持将对象存储中的文件持续增量数据加载到数据库中。DBMS_CLOUD_PIPELINE 还支持基于时间戳列连续将表数据或查询结果从数据库导出到对象存储。
Prerequisites
作为开发人员,您可以将 DBMS_CLOUD 过程与部署在 Oracle Public Cloud、Multicloud 或 Exadata Cloud@Customer 上的自治 AI 数据库结合使用。
根据部署选择,必须满足以下先决条件,才能将 DBMS_CLOUD 过程与 Amazon S3、Azure Blob Storage 和 Google Cloud Storage 服务提供商结合使用。
组管理员必须使用 NAT 网关配置出站连接,如下所述:
-
按照 Oracle Cloud Infrastructure 文档中的创建 NAT 网关中的说明,在自治 AI 数据库资源所在的虚拟云网络 (VCN) 中创建 NAT 网关。
-
创建 NAT 网关后,在自治 AI 数据库资源所在的 VCN 中添加路由规则和出站安全规则到每个子网,以便这些资源可以使用网关从 Azure AD 实例获取公钥:
-
转到子网的 Subnet Details(子网详细信息)页面。
-
在 Subnet Information(子网信息)选项卡中,单击子网的 Route Table(路由表)的名称以显示 Route Table Details(路由表详细信息)页面。
-
在现有路由规则表中,检查是否已存在具有以下特征的规则:
-
目标:0.0.0.0/0
-
目标类型:NAT 网关
-
目标:刚在 VCN 中创建的 NAT 网关的名称
如果不存在此类规则,请单击添加路由规则并添加具有这些特征的路由规则。
-
-
返回到子网的子网详细信息页面。
-
在子网的安全列表表中,单击子网的安全列表的名称以显示其安全列表详细信息页。
-
在侧边菜单的资源下,单击出站规则。
-
在现有出站规则表中,检查是否已存在具有以下特征的规则:
-
目标类型: CIDR
-
目标:0.0.0.0/0
-
IP 协议: TCP
-
源端口范围:443
-
目标端口范围:全部
如果不存在此类规则,请单击添加出站规则并添加具有这些特征的出站规则。
-
-
您环境中的 HTTP 代理设置必须允许数据库访问云服务提供商。
这些设置由组管理员在创建 Exadata Cloud@Customer 基础结构时定义,如 Using the Console to Provision Exadata Database Service on Cloud@Customer 中所述。
注:只有在 Exadata 基础结构处于 Requires Activation 状态之前,才能编辑包括 HTTP 代理的网络配置。一旦激活,您就无法编辑这些设置。
为已预配的 Exadata 基础结构设置 HTTP 代理需要 My Oracle Support 中的服务请求 (SR)。有关详细信息,请参见在 My Oracle Support 中创建服务请求。
DBMS_CLOUD_PIPELINE 子程序概要
此表汇总了 DBMS_CLOUD_PIPELINE 程序包中包含的子程序。
| 子程序 | 说明 |
|---|---|
| CREATE_PIPELINE 过程 | 创建新数据管道。 |
| DROP_PIPELINE 过程 | 删除现有数据管道。 |
| RESET_PIPELINE 过程 | 重置数据管道的跟踪状态。使用重置管道从数据加载或导出的初始状态重新启动管道。(可选)重置管道可以清除数据库或对象存储中的数据,具体取决于管道的类型。 |
| RUN_PIPELINE_ONCE 过程 | 在当前前台会话中执行管道的按需运行,而不是调度的作业。 |
| SET_ATTRIBUTE 过程 | 设置管道属性。有两个重载过程,一个用于设置单个属性,另一个用于使用属性名称/值对的 JSON 文档设置多个属性 |
| START_PIPELINE 过程 | 启动数据管道。启动管道时,管道操作将根据管道属性中配置的“间隔”在调度的作业中持续运行。 |
| STOP_PIPELINE 过程 | 停止数据管道。管道停止时,不会为该管道安排将来的作业。 |
CREATE_PIPELINE 过程
该过程将创建新的数据管道。
语法
DBMS_CLOUD_PIPELINE.CREATE_PIPELINE(
pipeline_name IN VARCHAR2,
pipeline_type IN VARCHAR2,
attributes IN CLOB DEFAULT NULL,
description IN VARCHAR2 DEFAULT NULL
);
参数
| Parameter (参数) | 说明 |
|---|---|
pipeline_name |
为管道指定一个名称。管道名称必须遵循 Oracle SQL 标识符的命名规则。有关详细信息,请参阅 Oracle Database Database PL/SQL Language Reference 或 Oracle Database 26ai Database PL/SQL Language Reference 中的 Identifiers 。 此参数是必需的。 |
pipeline_type |
指定管道类型。 有效值: 此参数是必需的。 |
attributes |
JSON 格式的管道属性。 默认值: 有关更多信息,请参见 DBMS_CLOUD_PIPELINE Attributes 。 |
description |
管道的说明。 默认值: |
DROP_PIPELINE 过程
该过程会删除现有数据管道。如果管道已启动,则必须先停止管道,然后才能将其删除。
语法
DBMS_CLOUD_PIPELINE.DROP_PIPELINE(
pipeline_name IN VARCHAR2,
force IN BOOLEAN DEFAULT FALSE
);
参数
| Parameter (参数) | 说明 |
|---|---|
pipeline_name |
指定管道名称。 此参数是必需的。 |
force |
强制删除管道,即使它处于已启动状态。 有效值: 默认值: |
用法附注
- 要删除处于已启动状态的管道,请将
force参数设置为TRUE。
RESET_PIPELINE 过程
重置数据管道的跟踪状态。使用重置管道从数据加载或导出的初始状态重新启动管道。(可选)重置管道可以清除数据库或对象存储中的数据,具体取决于管道的类型。数据管道必须处于已停止状态才能重置。
语法
DBMS_CLOUD_PIPELINE.RESET_PIPELINE(
pipeline_name IN VARCHAR2,
purge_data IN BOOLEAN DEFAULT FALSE
);
参数
| Parameter (参数) | 说明 |
|---|---|
pipeline_name |
为管道指定一个名称。 此参数是必需的。 |
purge_data |
清除数据适用于加载管道或导出管道:
有效值: 默认值: |
使用说明
-
数据管道必须处于已停止状态才能重置。有关更多信息,请参见 STOP_PIPELINE Procedure 。
-
对于加载管道,重置管道将清除管道加载的文件的记录。重置加载管道后调用
START_PIPELINE或RUN_PIPELINE_ONCE时,管道将重复数据加载,并包括对象存储位置中存在的所有文件。当
purge_data设置为TRUE时,DBMS_CLOUD_PIPELINE.RESET_PIPELINE将执行以下操作:-
截断使用
table_name属性指定的管道数据库表中的数据。 -
删除管道的状态表以及管道的错误文件表和错误表(如果存在)。
-
-
对于导出管道,重置管道将清除数据库表中的最后一个跟踪数据。在重置导出管道后调用
START_PIPELINE或RUN_PIPELINE_ONCE时,管道会重复从表或查询导出数据。当
purge_data设置为TRUE时,DBMS_CLOUD_PIPELINE.RESET_PIPELINE将删除使用location属性指定的对象存储位置中的现有文件。
RUN_PIPELINE_ONCE 过程
此过程在当前前台会话中执行管道的按需运行,而不是在调度的作业中运行。在将管道作为连续作业启动之前,使用 DBMS_CLOUD_PIPELINE.RUN_PIPELINE_ONCE 测试管道。
语法
DBMS_CLOUD_PIPELINE.RUN_PIPELINE_ONCE(
pipeline_name IN VARCHAR2
);
参数
| Parameter (参数) | 说明 |
|---|---|
pipeline_name |
指定要运行的管道的名称。 此参数是必需的。 |
使用说明
-
执行管道测试运行后,可以使用
DBMS_CLOUD_PIPELINE.RESET_PIPELINE重置管道状态。这样,您可以在调度作业中启动管道之前重置管道状态。 -
如果管道处于已启动状态,则无法在前台会话中运行该管道。
SET_ATTRIBUTE 过程
此过程设置管道属性。有两个重载过程,一个用于设置单个属性,另一个用于使用属性名称/值对的 JSON 文档设置多个属性。
语法
PROCEDURE DBMS_CLOUD_PIPELINE.SET_ATTRIBUTE(
pipeline_name IN VARCHAR2,
attribute_name IN VARCHAR2,
attribute_value IN CLOB
);
PROCEDURE DBMS_CLOUD_PIPELINE.SET_ATTRIBUTE(
pipeline_name IN VARCHAR2,
attributes IN CLOB
);
参数
| Parameter (参数) | 说明 |
|---|---|
pipeline_name |
指定管道的名称以设置属性。 此参数是必需的。 |
attribute_name |
为要设置的属性指定属性名称。 有关更多信息,请参见 DBMS_CLOUD_PIPELINE Attributes 。 |
attribute_value |
指定要设置的 Pipeline 属性的值。 有关更多信息,请参见 DBMS_CLOUD_PIPELINE Attributes 。 |
attributes |
指定包含属性名称和值的 JSON 文档。 有关更多信息,请参见 DBMS_CLOUD_PIPELINE Attributes 。 |
用法附注
使用 DBMS_CLOUD_PIPELINE.SET_ATTRIBUTE 通过 attributes 参数设置多个属性时,所有现有属性都会被 JSON 文档中的指定属性删除和覆盖。
START_PIPELINE 过程
该过程将启动数据管道。启动管道时,管道操作将根据使用管道属性配置的 interval 在调度的作业中持续运行。
语法
DBMS_CLOUD_PIPELINE.START_PIPELINE(
pipeline_name IN VARCHAR2,
start_date IN TIMESTAMP WITH TIME ZONE DEFAULT NULL
);
参数
| Parameter (参数) | 说明 |
|---|---|
pipeline_name |
为管道指定一个名称。 此参数是必需的。 |
start_date |
指定管道作业的开始日期。 默认值: |
使用说明
-
默认情况下,管道作业在管道启动后立即开始。要稍后启动管道作业,请使用
start_date参数指定有效日期或时间戳。 -
有关管道
interval和其他管道属性的信息,请参见 DBMS_CLOUD_PIPELINE Attributes 。
STOP_PIPELINE 过程
该过程将停止数据管道。管道停止时,不会为该管道安排将来的作业。
语法
DBMS_CLOUD_PIPELINE.STOP_PIPELINE(
pipeline_name IN VARCHAR2,
force IN BOOLEAN DEFAULTFALSE
);
参数
| Parameter (参数) | 说明 |
|---|---|
pipeline_name |
为管道指定一个名称。 此参数是必需的。 |
force |
如果强制参数传递为 有效值: 默认值: |
DBMS_CLOUD_PIPELINE 属性
属性有助于控制和配置数据管道的行为。
属性
注:如管道类型列中所述,管道支持一组不同的属性,具体取决于管道类型 LOAD 或 EXPORT。
| 属性名称 | 说明 | 管道类型 | 管道启动后可修改 |
|---|---|---|---|
credential_name |
用于访问源云对象存储的身份证明的名称。 默认值: 如果不提供 |
LOAD, EXPORT |
是 |
field_list |
标识源文件中的字段及其数据类型。此参数的语法与常规 Oracle 外部表中的 默认值: 默认值指定字段及其数据类型由 |
LOAD |
是 |
format |
描述管道类型的格式的选项。
导出管道不支持数据泵 对于 |
LOAD, EXPORT |
是 |
interval |
调度的管道作业连续执行之间的时间间隔(分钟)。 默认值:15 分钟 |
LOAD, EXPORT |
是 |
key_column |
指定 默认值:NULL 如果没有为导出管道指定 |
EXPORT |
无 |
location |
此参数指定源文件 URI 或目录以及源文件。可以在文件名中使用通配符。 此参数是必需的。 云源文件 URI 可以为存储桶或子文件夹指定源文件 URI。可以使用通配符指定子文件夹或文件名模式。字符 "\*" 可以用作多个字符的通配符,字符 "?" 可以用作表示单个字符的通配符。 使用通配符的示例:
URI 的格式取决于您使用的云对象存储服务,有关详细信息,请参见 Cloud Object Storage URI Formats 。 目录 可以指定一个目录和文件名。指定目录的格式为 只能使用通配符指定目录中的文件名。字符 例如: 使用双引号指定区分大小写的目录名称。 例如: 要包含引号字符,请使用两个引号。 例如: |
||
priority |
指定用于确定为管道执行的并行操作数的字符串值。
优先级较高的操作会消耗更多数据库资源,并且会更快地完成。 有效值包括:
默认值: 最大并发文件操作数限制为 64。 |
LOAD, EXPORT |
是 |
query |
指定 例如: 默认值: 对于导出管道, |
EXPORT |
无 |
table_name |
指定用于加载或导出数据的目标表的名称。 对于负载管道, 对于导出管道, |
LOAD, EXPORT |
无 |
table_owner |
目标表所在的方案的名称,用于加载或导出数据。 默认值: 使用 |
LOAD, EXPORT |
无 |