51 DBMS_CLOUD_PIPELINE

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

51.1 DBMS_CLOUD_PIPELINEサブプログラムの要約

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

ノート:

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

CREATE_PIPELINEプロシージャ

新しいデータ・パイプラインを作成します。

DROP_PIPELINEプロシージャ

既存のデータ・パイプラインを削除します。

RESET_PIPELINEプロシージャ

データ・パイプラインの追跡状態をリセットします。パイプラインのリセットを使用して、データ・ロードまたはエクスポートの初期状態からそのパイプラインをもう一度開始します。オプションで、パイプラインのリセットにより、パイプラインのタイプに応じて、データベース内またはオブジェクト・ストア内のデータをパージできます。

RUN_PIPELINE_ONCEプロシージャ

現在のフォアグラウンド・セッションで(スケジュール済ジョブではない)パイプラインのオンデマンド実行を行います。

SET_ATTRIBUTEプロシージャ

パイプライン属性を設定します。2種類のオーバーロードされたプロシージャがあります。一方は単一の属性を設定し、もう一方は、属性名/値のペアのJSONドキュメントを使用して複数の属性を設定します

START_PIPELINEプロシージャ

データ・パイプラインを開始します。パイプラインが開始されると、パイプライン操作は、パイプライン属性を使用して構成されている"interval"に従って、スケジュール済ジョブで継続的に実行されるようになります。

STOP_PIPELINEプロシージャ

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

51.1.1 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

51.1.2 DROP_PIPELINEプロシージャ

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

構文

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

パラメータ

パラメータ 説明

pipeline_name

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

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

force

パイプラインを、開始状態であっても強制的に削除します。

有効な値: TRUEFALSE

デフォルト値: FALSE

使用上のノート

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

51.1.3 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属性で指定されているオブジェクト・ストアの場所にある、既存のファイルを削除します。

51.1.4 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を使用してそのパイプラインの状態をリセットできます。これにより、スケジュール済ジョブでそのパイプラインを開始する前に、パイプラインの状態をリセットできます。

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

51.1.5 SET_ATTRIBUTEプロシージャ

このプロシージャは、パイプラインの属性を設定します。2種類のオーバーロードされたプロシージャがあります。一方は単一の属性を設定し、もう一方は、属性名/値のペアの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ドキュメントにある指定した属性で上書きされます。

51.1.6 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の属性」を参照してください。

51.1.7 STOP_PIPELINEプロシージャ

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

構文

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

パラメータ

パラメータ 説明

pipeline_name

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

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

force

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

有効な値: TRUE、FALSE

デフォルト値: FALSE

51.2 DBMS_CLOUD_PIPELINEの属性

属性は、データ・パイプラインの動作の制御と構成のために役立ちます。

属性

ノート:

「パイプライン・タイプ」列に示されているとおり、パイプライン・タイプに応じて(LOADまたはEXPORT)、パイプラインは様々な一連の属性をサポートしています。
属性名 説明 パイプライン・タイプ パイプライン開始後に変更可能
credential_name

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

デフォルト値: NULL

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

LOADEXPORT はい
field_list

ソース・ファイル内のフィールドとそのデータ型を識別します。この引数の構文は、通常のOracle外部表のfield_list句と同じです。

デフォルト値: NULL

このデフォルト値にするとそれらのフィールドが指定されます。それらのデータ型は、table_name属性で指定されている表にある列によって決まります。

LOAD はい
format

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

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

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

LOADEXPORT はい
interval

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

デフォルト値: 15分

LOADEXPORT はい
key_column

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

デフォルト値: NULL

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

EXPORT いいえ
location

オブジェクト・ストレージの場所を指すURIを指定します。

URIの形式は、Cloud Object Storageサービスによって異なります。詳細は、「DBMS_CLOUDのURI形式」を参照してください。

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

LOADEXPORT いいえ
query

必要なデータのみがエクスポートされるように、SELECT文を指定します。この問合せにより、テキスト・ファイル(CSV、JSON、ParquetまたはXML)またはダンプ・ファイルとしてエクスポートするファイルのコンテンツが決まります。

例:

SELECT warehouse_id, quantity FROM inventories

デフォルト値: NULL

エクスポート・パイプラインの場合は、table_nameまたはqueryのどちらか必要です。

EXPORT いいえ
table_name

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

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

エクスポート・パイプラインの場合は、table_nameまたはqueryのどちらか必要です。

LOADEXPORT いいえ
table_owner

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

デフォルト値: NULL

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

LOADEXPORT いいえ