DBMS_CLOUD_PIPELINEパッケージ

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

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

パラメータ

パラメータ 摘要

pipeline_name

パイプラインの名前を指定します。パイプライン名は、Oracle 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
 );

パラメータ

パラメータ 摘要

pipeline_name

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

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

force

パイプラインは、開始状態であっても強制的にドロップします。

有効な値: TRUEFALSE

デフォルトの値: FALSE

使用上のノート

  • 開始状態のパイプラインを削除するには、forceパラメータをTRUEに設定します。

RESET_PIPELINEプロシージャ

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

構文

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

パラメータ

パラメータ 摘要

pipeline_name

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

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

purge_data

パージ・データは、ロード・パイプラインまたはエクスポート・パイプラインに適用されます。

  • ロード・パイプラインの場合、TRUEの場合、データベース表のデータを切り捨てます。

  • エクスポート・パイプラインの場合、TRUEの場合、オブジェクト・ストアの場所のファイルを削除します。

有効な値: TRUEFALSE

デフォルト値: FALSE

使用上のノート

  • データ・パイプラインをリセットするには、データ・パイプラインが停止状態である必要があります。詳細は、STOP_PIPELINEプロシージャを参照してください。

  • ロード・パイプラインの場合、パイプラインをリセットすると、パイプラインによってロードされるファイルのレコードがクリアされます。ロード・パイプラインのリセット後にSTART_PIPELINEまたはRUN_PIPELINE_ONCEをコールすると、パイプラインはデータ・ロードを繰り返し、オブジェクト・ストアの場所にあるすべてのファイルを含めます。

    purge_dataTRUEに設定されている場合、DBMS_CLOUD_PIPELINE.RESET_PIPELINEは次のことを行います。

    • table_name属性で指定したパイプラインのデータベース表のデータを切り捨てます。

    • パイプラインのステータス表、およびパイプラインの不正なファイル表とエラー表(存在する場合)を削除します。

  • エクスポート・パイプラインの場合、パイプラインをリセットすると、データベース表の最後の追跡データがクリアされます。エクスポート・パイプラインのリセット後にSTART_PIPELINEまたはRUN_PIPELINE_ONCEをコールすると、パイプラインは表または問合せからのデータのエクスポートを繰り返します。

    purge_dataTRUEに設定すると、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
);

パラメータ

パラメータ 摘要

pipeline_name

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

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

使用上のノート

  • パイプラインのテスト実行を実行した後、DBMS_CLOUD_PIPELINE.RESET_PIPELINEを使用してパイプライン状態をリセットできます。これにより、スケジュール済ジョブでパイプラインを開始する前にパイプライン状態をリセットできます。

  • パイプラインが開始済状態の場合、フォアグラウンド・セッションでは実行できません。

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

パラメータ

パラメータ 摘要

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

パラメータ

パラメータ 摘要

pipeline_name

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

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

start_date

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

デフォルト値: NULL

使用上のノート

  • デフォルトでは、パイプライン・ジョブは、パイプラインが開始されるとすぐに開始されます。パイプライン・ジョブを後で開始するには、start_dateパラメータを使用して有効な日付またはタイムスタンプを指定します。

  • パイプラインintervalおよびその他のパイプライン属性の詳細は、DBMS_CLOUD_PIPELINE属性を参照してください。

STOP_PIPELINEプロシージャ

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

構文

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

パラメータ

パラメータ 摘要

pipeline_name

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

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

force

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

有効な値: TRUE, FALSE

デフォルト値: FALSE

DBMS_CLOUD_PIPELINE属性

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

属性

ノート

「パイプライン・タイプ」列に示されているように、パイプライン・タイプLOADまたはEXPORTに応じて、パイプラインは様々な属性セットをサポートします。
属性の名前 摘要 パイプライン・タイプ パイプライン開始後に変更可能
credential_name

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

リソース・プリンシパルが有効な場合、'OCI$RESOURCE_PRINCIPAL'credential_nameとして使用できます。Amazonリソース名、Azureサービス・プリンシパルまたはGoogleサービス・アカウントで指定した資格証明もサポートされます。詳細は、リソースにアクセスするためのポリシーとロールの構成を参照してください。

デフォルト値: NULL

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

LOAD, EXPORT はい
field_list

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

デフォルト値: 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のフォーマットは、クラウド・オブジェクト・ストレージ・サービスによって異なります。詳細は、DBMS_CLOUD URIフォーマットを参照してください。

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

LOAD, EXPORT いいえ
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 いいえ