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のカンマ区切りリスト

  • 1つ以上のディレクトリおよびソース・ファイル

クラウド・ソース・ファイルURIのファイル名には、ワイルドカードと正規表現を使用できます。

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

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

このパラメータは、ソース・ファイルURIのカンマ区切りリスト、または1つ以上のディレクトリとソース・ファイルのいずれかを指定します。

正規表現を使用できるのは、regexuri formatパラメータがTRUEに設定されている場合のみです。

regexuriパラメータがFALSEに設定されている場合、文字「*」および「?」はワイルドカード文字とみなされます。regexuriパラメータがTRUEに設定されている場合、文字「*」および「?」は指定された正規表現パターンの一部です。

正規表現パターンはURI内のファイル名またはサブフォルダ・パスでのみサポートされ、パターン一致はREGEXP_LIKE関数によって実行されるものと同じです。

正規表現を使用する例:

  `sql location_uri => 'https://objectstorage.my$region.oraclecloud.com/n/namespace-string/b/bucketname/o(/)*year=[0-9]+(/)*month=[0-9]+(/)*[a-z]+[1-3]??.csv'`

ワイルドカードの使用例:

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

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

REGEXP_LIKE条件の詳細は、「REGEXP_LIKE条件」を参照してください。

ディレクトリ

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

ディレクトリにファイル名を指定する場合、正規表現はサポートされません。ワイルドカードを使用して、ディレクトリ内のファイル名を指定できます。文字"*"は複数文字のワイルドカードとして、文字"?"は1つの文字のワイルドカードとして使用することができます。例:'MY_DIR:*"または'MY_DIR:test?'

複数のディレクトリを指定するには、ディレクトリのカンマ区切りリストを使用します。例:'MY_DIR1:*, MY_DIR2:test?'

大/小文字を区別するディレクトリ名を指定するには、二重引用符を使用します。例:'"my_dir1":*, "my_dir2":Test?'

引用符文字を含めるには、2つの引用符を使用します。例:'MY_DIR:''filename.ext'。これは、filenameが引用符(')で始まることを示します。

ノート: DBMS_CLOUD_PIPELINE.CREATE_PIPELINEプロシージャを使用してエクスポート・パイプラインを作成した場合、location属性のディレクトリ形式は適用されません。

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

LOAD, EXPORT いいえ
priority

パイプラインに対して実行されるパラレル操作の数を決定する文字列値を指定します。

  • ロード・パイプラインでは、パラレルにロードされるファイルの数を決定します。

  • エクスポート・パイプラインでは、データベースからデータをフェッチするための並列度を決定します。

優先度が高い操作では、より多くのデータベース・リソースが消費され、より早く完了します。

有効な値:

  • HIGH: データベースのECPU数を使用して処理されるパラレル・ファイルの数(データベースがOCPUを使用する場合のOCPU数)を決定します。
  • MEDIUM: 中規模サービスの同時実行性制限を使用して、同時プロセスの数を決定します。デフォルト値は4です。
  • LOW: パイプライン・ジョブを順番に実行します。

デフォルト値: MEDIUM

同時ファイル操作の最大数は64に制限されています。

LOAD, EXPORT はい
query

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

たとえば:

  `sql 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 いいえ

DBMS_CLOUD_PIPELINEビュー

DBMS_CLOUD_PIPELINEパッケージでは、次のビューが使用されます。