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 服务提供商结合使用。

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 ReferenceOracle Database 26ai Database PL/SQL Language Reference 中的 Identifiers

此参数是必需的。

pipeline_type

指定管道类型。

有效值:LOADEXPORT

此参数是必需的。

attributes

JSON 格式的管道属性。

默认值:NULL

有关更多信息,请参见 DBMS_CLOUD_PIPELINE Attributes

description

管道的说明。

默认值:NULL

DROP_PIPELINE 过程

该过程会删除现有数据管道。如果管道已启动,则必须先停止管道,然后才能将其删除。

语法

DBMS_CLOUD_PIPELINE.DROP_PIPELINE(
       pipeline_name        IN   VARCHAR2,
       force                IN   BOOLEAN DEFAULT FALSE
 );

参数

Parameter (参数) 说明
pipeline_name

指定管道名称。

此参数是必需的。

force

强制删除管道,即使它处于已启动状态。

有效值:TRUEFALSE

默认值:FALSE

用法附注

RESET_PIPELINE 过程

重置数据管道的跟踪状态。使用重置管道从数据加载或导出的初始状态重新启动管道。(可选)重置管道可以清除数据库或对象存储中的数据,具体取决于管道的类型。数据管道必须处于已停止状态才能重置。

语法

DBMS_CLOUD_PIPELINE.RESET_PIPELINE(
       pipeline_name        IN   VARCHAR2,
       purge_data           IN   BOOLEAN DEFAULT FALSE
 );

参数

Parameter (参数) 说明
pipeline_name

为管道指定一个名称。

此参数是必需的。

purge_data

清除数据适用于加载管道或导出管道:

  • 对于加载管道,当 TRUE 时,截断数据库表中的数据。

  • 对于导出管道,当 TRUE 时,删除对象存储位置中的文件。

有效值:TRUEFALSE

默认值:FALSE

使用说明

RUN_PIPELINE_ONCE 过程

此过程在当前前台会话中执行管道的按需运行,而不是在调度的作业中运行。在将管道作为连续作业启动之前,使用 DBMS_CLOUD_PIPELINE.RUN_PIPELINE_ONCE 测试管道。

语法

DBMS_CLOUD_PIPELINE.RUN_PIPELINE_ONCE(
       pipeline_name  IN  VARCHAR2
);

参数

Parameter (参数) 说明
pipeline_name

指定要运行的管道的名称。

此参数是必需的。

使用说明

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

指定管道作业的开始日期。

默认值:NULL

使用说明

STOP_PIPELINE 过程

该过程将停止数据管道。管道停止时,不会为该管道安排将来的作业。

语法

DBMS_CLOUD_PIPELINE.STOP_PIPELINE(
      pipeline_name        IN   VARCHAR2,
      force                IN   BOOLEAN  DEFAULTFALSE
);

参数

Parameter (参数) 说明
pipeline_name

为管道指定一个名称。

此参数是必需的。

force

如果强制参数传递为 TRUE,则它将终止管道的任何正在运行的作业。

有效值:TRUE, FALSE

默认值:FALSE

DBMS_CLOUD_PIPELINE 属性

属性有助于控制和配置数据管道的行为。

属性

注:管道类型列中所述,管道支持一组不同的属性,具体取决于管道类型 LOADEXPORT

属性名称 说明 管道类型 管道启动后可修改
credential_name

用于访问源云对象存储的身份证明的名称。

默认值:NULL

如果不提供 credential_name,则 credential_name 将设置为 NULL

LOAD, EXPORT
field_list

标识源文件中的字段及其数据类型。此参数的语法与常规 Oracle 外部表中的 field_list 子句相同。有关详细信息,请参阅 Oracle Database 19c UtilitiesOracle Database 26ai Utilities 中的 field_list

默认值:NULL

默认值指定字段及其数据类型由 table_name 属性中指定的表中的列确定。

LOAD
format

描述管道类型的格式的选项。

导出管道不支持数据泵 format

对于 LOADEXPORT 管道,此属性是必需的。

LOAD, EXPORT
interval

调度的管道作业连续执行之间的时间间隔(分钟)。

默认值:15 分钟

LOAD, EXPORT
key_column

指定 tablequery 中的时间戳或日期列,用于连续将较新的数据导出到对象存储。上次执行时间戳或日期由导出管道跟踪,并与 key_column 中的值进行比较,以确定要导出到对象存储的新数据。

默认值:NULL

如果没有为导出管道指定 key_column,则 tablequery 的整个内容将上载到每个管道作业执行中的对象存储。

EXPORT
location

此参数指定源文件 URI 或目录以及源文件。可以在文件名中使用通配符。

此参数是必需的。

云源文件 URI

可以为存储桶或子文件夹指定源文件 URI。可以使用通配符指定子文件夹或文件名模式。字符 "\*" 可以用作多个字符的通配符,字符 "?" 可以用作表示单个字符的通配符。

使用通配符的示例:

location_uri => 'https://objectstorage.my$region.oraclecloud.com/n/namespace-string/b/bucketname/o/year=????/month=??/*.csv

URI 的格式取决于您使用的云对象存储服务,有关详细信息,请参见 Cloud Object Storage URI Formats

目录

可以指定一个目录和文件名。指定目录的格式为 'MY_DIR:filename.ext'。默认情况下,目录名称 MY_DIR 是数据库对象,不区分大小写。文件名区分大小写。

只能使用通配符指定目录中的文件名。字符 "*" 可以用作多个字符的通配符,字符 "?" 可以用作表示单个字符的通配符。

例如:'MY_DIR:*"'MY_DIR:test?'

使用双引号指定区分大小写的目录名称。

例如:'"my_dir1":*, "my_dir2":Test?'

要包含引号字符,请使用两个引号。

例如:'MY_DIR:''filename.ext'。这指定文件名以引号 (') 开头。

   
priority

指定用于确定为管道执行的并行操作数的字符串值。

  • 在加载管道中,它确定并行加载的文件数。

  • 在导出管道中,它确定从数据库提取数据的并行度。

优先级较高的操作会消耗更多数据库资源,并且会更快地完成。

有效值包括:

  • HIGH:确定使用数据库的 ECPU 计数(如果数据库使用 OCPU,则为 OCPU 计数)处理的并行文件数。
  • MEDIUM:使用中等服务的并发限制确定同时进程数。默认值为 4。
  • LOW:按序列顺序运行管道作业。

默认值:MEDIUM

最大并发文件操作数限制为 64。

LOAD, EXPORT
query

指定 SELECT 语句,以便仅导出所需的数据。查询确定导出为文本文件(CSV、JSON、Parquet 或 XML)或转储文件的文件的内容。

例如:

SELECT warehouse_id, quantity FROM inventories;

默认值:NULL

对于导出管道,table_namequery 是必需的。

EXPORT
table_name

指定用于加载或导出数据的目标表的名称。

对于负载管道,table_name 是必需的。

对于导出管道,table_namequery 是必需的。

LOAD, EXPORT
table_owner

目标表所在的方案的名称,用于加载或导出数据。

默认值:NULL

使用 NULL 值时,目标表与运行该过程的用户位于同一方案中。

LOAD, EXPORT

相关内容