DBMS_CLOUD_PIPELINEパッケージ

DBMS_CLOUD_PIPELINEパッケージを使用すると、クラウドでデータをロードおよびエクスポートするためのデータ・パイプラインを作成できます。このパッケージは、データベースへのオブジェクト・ストア内のファイルの継続的な増分データ・ロードをサポートします。DBMS_CLOUD_PIPELINEでは、タイムスタンプ列に基づいて、データベースからオブジェクト・ストアへの表データまたは問合せ結果の継続的な増分エクスポートもサポートされます。

前提条件

開発者は、Oracle Public Cloud、MulticloudまたはExadata Cloud@CustomerにデプロイされたAutonomous AI DatabaseでDBMS_CLOUDプロシージャを使用できます。

デプロイメントの選択に応じて、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プロシージャ パイプライン属性を設定します。オーバーロードされた2つのプロシージャがあります。1つは1つの属性を設定し、もう1つは属性名と値のペアの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
);

Parameters

パラメータ 説明
pipeline_name

パイプラインの名前を指定します。パイプライン名は、Oracle SQL識別子のネーミング・ルールに従う必要があります。詳細は、『Oracle Database Database PL/SQL言語リファレンス』の識別子に関する項または『Oracle Database 26ai Database PL/SQL言語リファレンス』を参照してください。

このパラメータは必須です。

pipeline_type

パイプライン・タイプを指定します。

有効な値: LOADEXPORT

このパラメータは必須です。

attributes

JSON形式のパイプライン属性。

デフォルト値: NULL

詳細は、「DBMS_CLOUD_PIPELINEの属性」を参照してください。

description

パイプラインの説明。

デフォルト値: NULL

DROP_PIPELINEプロシージャ

このプロシージャは、既存のデータ・パイプラインを削除します。パイプラインが開始されている場合は、パイプラインを削除する前に停止する必要があります。

構文

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

Parameters

パラメータ 説明
pipeline_name

パイプライン名を指定します。

このパラメータは必須です。

force

パイプラインが「開始済」状態の場合でも、強制的にドロップします。

有効な値: TRUEFALSE

デフォルト値: FALSE

使用上のノート

RESET_PIPELINEプロシージャ

データ・パイプラインのトラッキング状態をリセットします。リセット・パイプラインを使用して、データ・ロードまたはエクスポートの初期状態からパイプラインを再起動します。オプションで、パイプラインのリセットによって、パイプラインのタイプに応じて、データベースまたはオブジェクト・ストア内のデータをパージできます。データ・パイプラインをリセットするには、データ・パイプラインが停止状態である必要があります。

構文

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

Parameters

パラメータ 説明
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
);

Parameters

パラメータ 説明
pipeline_name

実行するパイプラインの名前を指定します。

このパラメータは必須です。

使用上のノート

SET_ATTRIBUTEプロシージャ

このプロシージャは、パイプライン属性を設定します。オーバーロードされた2つのプロシージャがあります。1つは1つの属性を設定し、もう1つは属性名と値のペアの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
);

Parameters

パラメータ 説明
pipeline_name

属性を設定するパイプラインの名前を指定します。

このパラメータは必須です。

attribute_name

設定する属性の属性名を指定します。

詳細は、「DBMS_CLOUD_PIPELINEの属性」を参照してください。

attribute_value

設定するパイプライン属性の値を指定します。

詳細は、「DBMS_CLOUD_PIPELINEの属性」を参照してください。

attributes

属性名と値を含むJSONドキュメントを指定します。

詳細は、「DBMS_CLOUD_PIPELINEの属性」を参照してください。

使用上のノート

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
);

Parameters

パラメータ 説明
pipeline_name

パイプラインの名前を指定します。

このパラメータは必須です。

start_date

パイプライン・ジョブの開始日を指定します。

デフォルト値: NULL

使用上のノート

STOP_PIPELINEプロシージャ

このプロシージャは、データ・パイプラインを停止します。パイプラインが停止すると、そのパイプラインに対して将来のジョブはスケジュールされません。

構文

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

Parameters

パラメータ 説明
pipeline_name

パイプラインの名前を指定します。

このパラメータは必須です。

force

forceパラメータがTRUEとして渡された場合、パイプラインの実行中のジョブはすべて終了します。

有効な値: TRUE, FALSE

デフォルト値: FALSE

DBMS_CLOUD_PIPELINEの属性

属性は、データ・パイプラインの動作を制御および構成するのに役立ちます。

属性

ノート: 「パイプライン・タイプ」列に示されているように、パイプライン・タイプLOADまたはEXPORTに応じて、パイプラインでは異なる属性セットがサポートされます。

属性名 説明 パイプライン・タイプ パイプライン開始後に変更可能
credential_name

ソース・クラウドのオブジェクト・ストレージにアクセスするための資格証明の名前です。

デフォルト値: NULL

credential_nameを指定しない場合、credential_nameNULLに設定されます。

LOAD, EXPORT
field_list

ソース・ファイル内のフィールドとそのデータ型を識別します。この引数の構文は、通常のOracle外部表のfield_list句と同じです。詳細は、『Oracle Database 19cユーティリティ』field_listまたは『Oracle Database 26aiユーティリティ』を参照してください。

デフォルト値: NULL

デフォルト値はフィールドを指定し、データ型はtable_name属性で指定された表の列によって決まります。

LOAD
format

パイプライン・タイプの形式を説明するオプション。

データポンプformatは、エクスポート・パイプラインではサポートされていません。

この属性は、LOADパイプラインとEXPORTパイプラインの両方に必須です。

LOAD, EXPORT
interval

スケジュール済パイプライン・ジョブの連続実行間の時間間隔(分)。

デフォルト値: 15分

LOAD, EXPORT
key_column

新しいデータをオブジェクト・ストアに継続的にエクスポートするための、指定されたtableまたはqueryのタイムスタンプまたは日付列。最終実行タイムスタンプまたは日付は、エクスポート・パイプラインによって追跡され、key_columnの値と比較されて、オブジェクト・ストアにエクスポートする新しいデータが識別されます。

デフォルト値: NULL

エクスポート・パイプラインにkey_columnが指定されていない場合、tableまたはqueryの内容全体が、各パイプライン・ジョブの実行でオブジェクト・ストアにアップロードされます。

EXPORT ×
location

このパラメータは、ソース・ファイルのURIまたはディレクトリとソース・ファイルを指定します。ファイル名にワイルドカードを使用できます。

このパラメータは必須です。

クラウドのソース・ファイルURI

バケットまたはサブフォルダのソース・ファイルURIを指定できます。ワイルドカードを使用して、サブフォルダまたはファイル名パターンを指定できます。文字"\*"は複数文字のワイルドカードとして、文字"?"は1つの文字のワイルドカードとして使用することができます。

ワイルドカードを使用した例:

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

URIのフォーマットは、使用中のクラウド・オブジェクト・ストレージ・サービスによって異なります。詳細は、「クラウド・オブジェクト・ストレージURIフォーマット」をご覧ください。

ディレクトリ

1つのディレクトリとファイル名を指定できます。ディレクトリを指定する形式は、'MY_DIR:filename.ext'です。デフォルトでは、ディレクトリ名MY_DIRはデータベース・オブジェクトであり、大/小文字は区別されません。ファイル名は、大/小文字が区別されます。

ワイルドカードを使用して、ディレクトリ内のファイル名を指定できます。文字"*"は、複数の文字に対応するワイルドカードとして使用でき、文字"?"は、1文字に対応するワイルドカードとして使用することができます。

例: 'MY_DIR:*"または'MY_DIR:test?'

大/小文字を区別するディレクトリ名を指定するには、二重引用符を使用します。

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

引用符文字を含めるには、2つの引用符を使用します。

例: '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_nameまたはqueryのいずれかが必須です。

EXPORT ×
table_name

データをロードまたはエクスポートするためのターゲット表の名前を指定します。

ロード・パイプラインの場合、table_nameは必須です。

エクスポート・パイプラインの場合、table_nameまたはqueryのいずれかが必須です。

LOAD, EXPORT ×
table_owner

データのロードまたはエクスポート用にターゲット表が存在するスキーマの名前。

デフォルト値: NULL

NULL値の場合、ターゲット表はプロシージャを実行しているユーザーと同じスキーマにあります。

LOAD, EXPORT ×

関連コンテンツ