DBMS_CLOUD_PIPELINEパッケージ

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

DBMS_CLOUD_PIPELINEサブプログラムの概要

この表は、DBMS_CLOUD_PIPELINEパッケージに含まれるサブプログラムの概要を示しています。

ノート

DBMS_CLOUD_PIPELINEパッケージは、Autonomous Databaseバージョン19.22以降でのみ使用できます。
サブプログラム 説明

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つは属性名と値のペアの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  DEFAULTFALSE
);

パラメータ

パラメータ 説明

pipeline_name

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

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

force

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

有効な値: TRUE, FALSE

デフォルト値: FALSE

DBMS_CLOUD_PIPELINE属性

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

属性

ノート

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

ソースのCloud Object Storageにアクセスするための資格証明の名前。

リソース・プリンシパルが有効な場合は、'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 いいえ