DBMS_CLOUD_PIPELINEパッケージ
DBMS_CLOUD_PIPELINE
パッケージを使用すると、クラウドでデータをロードおよびエクスポートするためのデータ・パイプラインを作成できます。このパッケージは、データベースへのオブジェクト・ストア内のファイルの継続的な増分データ・ロードをサポートします。DBMS_CLOUD_PIPELINE
では、タイムスタンプ列に基づく表データまたはデータベースからの問合せ結果のオブジェクト・ストアへの継続的な増分エクスポートもサポートされます。
前提条件
開発者は、Oracle Public Cloud、マルチクラウドまたはExadata Cloud@CustomerにデプロイされたAutonomous DatabaseでDBMS_CLOUDプロシージャを使用できます。
デプロイメントの選択肢に応じて、Amazon S3、Azure Blob StorageおよびGoogle Cloud Storageサービス・プロバイダでDBMS_CLOUDプロシージャを使用するには、次の前提条件を満たす必要があります。
- Oracle Cloud InfrastructureドキュメンテーションのNAT Gatewayの作成の説明に従って、Autonomous Databaseリソースが存在するVirtual Cloud Network (VCN)でNATゲートウェイを作成します。
- NATゲートウェイを作成したら、Autonomous Databaseリソースが存在する各サブネット(VCN内)にルート・ルールおよびエグレス・セキュリティ・ルールを追加して、これらのリソースがゲートウェイを使用してAzure ADインスタンスから公開キーを取得できるようにします:
- サブネットの「サブネットの詳細」ページに移動します。
- 「Subnet Information」タブで、サブネットの「Route Table」の名前をクリックして、その「Route Table Details」ページを表示します。
- 既存のルート・ルールの表で、次の特性を持つルールがすでに存在します:
- 宛先: 0.0.0.0/0
- ターゲット・タイプ: NAT Gateway
- ターゲット: VCN内に作成したNATゲートウェイの名前
このようなルールが存在しない場合は、「ルート・ルールの追加」をクリックし、これらの特性を持つルート・ルールを追加します。
- サブネットの「サブネットの詳細」ページに戻ります。
- サブネットの「セキュリティ・リスト」表で、サブネットのセキュリティ・リストの名前をクリックして、その「セキュリティ・リストの詳細」ページを表示します。
- サイド・メニューの「リソース」で、「エグレス・ルール」をクリックします。
- 既存のエグレス・ルールの表で、次の特性を持つルールがすでに存在します:
- 宛先タイプ: CIDR
- 宛先: 0.0.0.0/0
- IPプロトコル: TCP
- ソース・ポート範囲: 443
- 宛先ポート範囲: すべて
そのようなルールが存在しない場合は、「エグレス・ルールの追加」をクリックし、これらの特性を持つエグレス・ルールを追加します。
環境のHTTPプロキシ設定では、データベースがクラウド・サービス・プロバイダにアクセスできるようにする必要があります。
ノート:
HTTPプロキシを含むネットワーク構成は、Exadataインフラストラクチャが「アクティブ化が必要」状態になるまで編集できます。いったんアクティブ化すると、それらの設定は編集できません。すでにプロビジョニングされているExadataインフラストラクチャのHTTPプロキシを設定するには、My Oracle Supportでサービス・リクエスト(SR)が必要です。詳細は、My Oracle Supportでのサービス・リクエストの作成を参照してください。
DBMS_CLOUD_PIPELINEサブプログラムの概要
この表は、DBMS_CLOUD_PIPELINE
パッケージに含まれるサブプログラムの概要を示しています。
サブプログラム | 説明 |
---|---|
新規のデータ・パイプラインを作成します。 |
|
既存のデータ・パイプラインを削除します。 |
|
データ・パイプラインのトラッキング状態をリセットします。パイプラインのリセットを使用して、データ・ロードまたはエクスポートの初期状態からパイプラインを再起動します。オプションで、パイプラインをリセットすると、パイプラインのタイプに応じて、データベースまたはオブジェクト・ストア内のデータをパージできます。 |
|
スケジュールされたジョブではなく、現在のフォアグラウンド・セッションでパイプラインのオンデマンド実行を実行します。 |
|
パイプライン属性を設定します。オーバーロードされた2つのプロシージャがあります。1つは1つの属性を設定し、もう1つは属性名と値のペアのJSONドキュメントを使用して複数の属性を設定するプロシージャです。 |
|
データ・パイプラインを開始します。パイプラインが開始されると、パイプライン属性はパイプライン属性で構成された「間隔」に従って、スケジュール済ジョブでパイプライン操作が継続的に実行されます。 |
|
データ・パイプラインを停止します。パイプラインが停止すると、パイプラインに対して将来のジョブはスケジュールされません。 |
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
パラメータ | 説明 |
---|---|
|
パイプラインの名前を指定します。パイプライン名は、Oracle SQL識別子のネーミング・ルールに従う必要があります。詳細は、Oracle Database Database PL/SQL言語リファレンスの識別子またはOracle Database 23ai Database PL/SQL言語リファレンスを参照してください。 このパラメータは必須です。 |
|
パイプライン・タイプを指定します。 有効な値: このパラメータは必須です。 |
|
JSON形式のパイプライン属性。 デフォルト値: 詳細は、DBMS_CLOUD_PIPELINE属性を参照してください。 |
|
パイプラインの説明。 デフォルト値: |
DROP_PIPELINEプロシージャ
このプロシージャは、既存のデータ・パイプラインを削除します。パイプラインが開始されている場合は、パイプラインを削除する前に停止する必要があります。
構文
DBMS_CLOUD_PIPELINE.DROP_PIPELINE
(
pipeline_name IN VARCHAR2,
force IN BOOLEAN DEFAULT FALSE
);
Parameters
パラメータ | 説明 |
---|---|
|
パイプライン名を指定します。 このパラメータは必須です。 |
|
パイプラインが開始状態であっても、強制的にドロップします。 有効な値: デフォルト値: |
使用上のノート
-
開始状態のパイプラインを削除するには、
force
パラメータをTRUE
に設定します。
RESET_PIPELINEプロシージャ
データ・パイプラインのトラッキング状態をリセットします。パイプラインのリセットを使用して、データ・ロードまたはエクスポートの初期状態からパイプラインを再起動します。オプションで、パイプラインをリセットすると、パイプラインのタイプに応じて、データベースまたはオブジェクト・ストア内のデータをパージできます。データ・パイプラインをリセットするには、停止状態である必要があります。
構文
DBMS_CLOUD_PIPELINE.RESET_PIPELINE
(
pipeline_name IN VARCHAR2,
purge_data IN BOOLEAN DEFAULT FALSE
);
Parameters
パラメータ | 説明 |
---|---|
|
パイプラインの名前を指定します。 このパラメータは必須です。 |
|
パージ・データは、ロード・パイプラインまたはエクスポート・パイプラインに適用されます。
有効な値: デフォルト値: |
使用上のノート
-
データ・パイプラインをリセットするには、停止状態である必要があります。詳細は、STOP_PIPELINEプロシージャを参照してください。
-
ロード・パイプラインの場合、パイプラインをリセットすると、パイプラインによってロードされているファイルのレコードがクリアされます。ロード・パイプラインのリセット後に
START_PIPELINE
またはRUN_PIPELINE_ONCE
をコールすると、パイプラインはデータ・ロードを繰り返し、オブジェクト・ストアの場所に存在するすべてのファイルを含めます。purge_data
がTRUE
に設定されている場合、DBMS_CLOUD_PIPELINE.RESET_PIPELINE
は次のことを行います。-
table_name
属性で指定したパイプラインのデータベース表内のデータを切り捨てます。 -
パイプラインのステータス表、およびパイプラインの不正なファイル表とエラー表(存在する場合)を削除します。
-
-
エクスポート・パイプラインの場合、パイプラインをリセットすると、データベース表の最後の追跡データがクリアされます。エクスポート・パイプラインのリセット後に
START_PIPELINE
またはRUN_PIPELINE_ONCE
をコールすると、パイプラインは表または問合せからのデータのエクスポートを繰り返します。purge_data
をTRUE
に設定すると、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
);
Parameters
パラメータ | 説明 |
---|---|
|
実行するパイプラインの名前を指定します。 このパラメータは必須です。 |
使用上のノート
-
パイプラインのテスト実行を実行した後、
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
);
Parameters
パラメータ | 説明 |
---|---|
|
属性を設定するパイプラインの名前を指定します。 このパラメータは必須です。 |
|
設定する属性の属性名を指定します。 詳細は、DBMS_CLOUD_PIPELINE属性を参照してください。 |
attribute_value |
設定するパイプライン属性の値を指定します。 詳細は、DBMS_CLOUD_PIPELINE属性を参照してください。 |
|
属性名と値を含む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
パラメータ | 説明 |
---|---|
|
パイプラインの名前を指定します。 このパラメータは必須です。 |
|
パイプライン・ジョブの開始日を指定します。 デフォルト値: |
使用上のノート
-
デフォルトでは、パイプラインが開始されるとすぐにパイプライン・ジョブが開始されます。パイプライン・ジョブを後で開始するには、
start_date
パラメータを使用して有効な日付またはタイムスタンプを指定します。 -
パイプライン
interval
およびその他のパイプライン属性の詳細は、DBMS_CLOUD_PIPELINE属性を参照してください。
STOP_PIPELINEプロシージャ
このプロシージャは、データ・パイプラインを停止します。パイプラインが停止すると、パイプラインに対して将来のジョブはスケジュールされません。
構文
DBMS_CLOUD_PIPELINE.STOP_PIPELINE
(
pipeline_name IN VARCHAR2,
force IN BOOLEAN DEFAULTFALSE
);
Parameters
パラメータ | 説明 |
---|---|
|
パイプラインの名前を指定します。 このパラメータは必須です。 |
|
強制パラメータが 有効な値: デフォルト値: |
DBMS_CLOUD_PIPELINE属性
属性は、データ・パイプラインの動作を制御および構成するのに役立ちます。
属性
ノート:
「パイプライン・タイプ」列に示されているように、パイプライン・タイプLOAD
またはEXPORT
に応じて、パイプラインは異なる属性セットをサポートします。
属性名 | 説明 | パイプライン・タイプ | パイプラインの開始後に変更可能 |
---|---|---|---|
credential_name |
ソースのCloud Object Storageにアクセスするための資格証明の名前。 デフォルト値:
|
LOAD , EXPORT |
○ |
field_list |
ソース・ファイル内のフィールドとそのデータ型を識別します。この引数の構文は、通常のOracle外部表の デフォルト値: デフォルト値では、フィールドとそのデータ型は、 |
LOAD |
○ |
format |
パイプラインのタイプを表すオプション。
データポンプ この属性は、 |
LOAD , EXPORT |
○ |
interval |
スケジュール済パイプライン・ジョブの連続実行間隔(分)。 デフォルト値: 15分 |
LOAD , EXPORT |
○ |
key_column |
新しいデータをオブジェクト・ストアに継続的にエクスポートするための、指定した デフォルト値: NULL エクスポート・パイプラインに |
EXPORT |
× |
location |
オブジェクト・ストレージの場所を指すURIを指定します。 URIのフォーマットは、クラウド・オブジェクト・ストレージ・サービスによって異なります。詳細は、クラウド・オブジェクト・ストレージのURIフォーマットを参照してください。 この属性は、 |
LOAD , EXPORT |
× |
priority |
パイプラインに対して実行されるパラレル操作の数を決定する文字列値を指定します。
優先度が高い操作は、より多くのデータベース・リソースを消費し、より早く完了します。 有効な値:
デフォルト値: 同時ファイル操作の最大数は64に制限されています。 |
LOAD , EXPORT |
○ |
query |
必要なデータのみがエクスポートされるように たとえば次のようにします。
デフォルト値: エクスポート・パイプラインの場合、 |
EXPORT |
× |
table_name |
データをロードまたはエクスポートするためのターゲット表の名前を指定します。 ロード・パイプラインの場合、 エクスポート・パイプラインの場合、 |
LOAD , EXPORT |
× |
table_owner |
データをロードまたはエクスポートするためのターゲット表が存在するスキーマの名前。 デフォルト値:
|
LOAD , EXPORT |
× |