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 |
パイプライン・タイプを指定します。 有効な値: このパラメータは必須です。 |
attributes |
JSON形式のパイプライン属性。 デフォルト値: 詳細は、「DBMS_CLOUD_PIPELINEの属性」を参照してください。 |
description |
パイプラインの説明。 デフォルト値: |
DROP_PIPELINEプロシージャ
このプロシージャは、既存のデータ・パイプラインを削除します。パイプラインが開始されている場合は、パイプラインを削除する前に停止する必要があります。
構文
DBMS_CLOUD_PIPELINE.DROP_PIPELINE(
pipeline_name IN VARCHAR2,
force IN BOOLEAN DEFAULT FALSE
);パラメータ
| パラメータ | 摘要 |
|---|---|
pipeline_name |
パイプライン名を指定します。 このパラメータは必須です。 |
force |
パイプラインは、開始状態であっても強制的にドロップします。 有効な値: デフォルト値: |
使用上のノート
- 開始状態のパイプラインを削除するには、
forceパラメータをTRUEに設定します。
RESET_PIPELINEプロシージャ
データ・パイプラインのトラッキング状態をリセットします。リセット・パイプラインを使用して、データ・ロードまたはエクスポートの初期状態からパイプラインを再起動します。オプションで、パイプラインをリセットすると、パイプラインのタイプに応じて、データベースまたはオブジェクト・ストア内のデータをパージできます。データ・パイプラインをリセットするには、データ・パイプラインが停止状態である必要があります。
構文
DBMS_CLOUD_PIPELINE.RESET_PIPELINE(
pipeline_name IN VARCHAR2,
purge_data IN BOOLEAN DEFAULT FALSE
);パラメータ
| パラメータ | 摘要 |
|---|---|
pipeline_name |
パイプラインの名前を指定します。 このパラメータは必須です。 |
purge_data |
パージ・データは、ロード・パイプラインまたはエクスポート・パイプラインに適用されます。
有効な値: デフォルト値: |
使用上のノート
-
データ・パイプラインをリセットするには、データ・パイプラインが停止状態である必要があります。詳細は、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
);パラメータ
| パラメータ | 摘要 |
|---|---|
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 |
パイプライン・ジョブの開始日を指定します。 デフォルト値: |
使用上のノート
-
デフォルトでは、パイプラインが開始されるとすぐにパイプライン・ジョブが開始されます。後でパイプライン・ジョブを開始するには、
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パラメータが 有効な値: デフォルト値: |
DBMS_CLOUD_PIPELINE属性
属性は、データ・パイプラインの動作を制御および構成するのに役立ちます。
ノート
ノート: 「パイプライン・タイプ」列に示されているように、パイプライン・タイプLOADまたはEXPORTに応じて、パイプラインでは異なる属性セットがサポートされます。
| 属性の名前 | 摘要 | パイプライン・タイプ | パイプライン開始後に変更可能 |
|---|---|---|---|
credential_name |
ソース・クラウド・オブジェクト・ストレージにアクセスするための資格証明の名前。 リソース・プリンシパルが有効になっている場合は、 デフォルト値:
|
LOAD, EXPORT |
はい |
field_list |
ソース・ファイル内のフィールドとそのデータ型を識別します。この引数の構文は、通常のOracle外部表の デフォルト値: デフォルト値はフィールドを指定し、そのデータ型は、 |
LOAD |
はい |
format |
パイプライン・タイプの書式を説明するオプション。
データポンプ この属性は、 |
LOAD, EXPORT |
はい |
interval |
スケジュール済パイプライン・ジョブの連続実行間の時間間隔(分)。 デフォルト値: 15分 |
LOAD, EXPORT |
はい |
key_column |
新しいデータをオブジェクト・ストアに継続的にエクスポートするための、指定された デフォルト値: NULL エクスポート・パイプラインに |
EXPORT |
いいえ |
location |
このパラメータは、次のいずれかを指定します。
クラウド・ソース・ファイルURIのファイル名には、ワイルドカードと正規表現を使用できます。 このパラメータは必須です。 クラウドのソース・ファイルURI このパラメータは、ソース・ファイルURIのカンマ区切りリスト、または1つ以上のディレクトリとソース・ファイルのいずれかを指定します。 正規表現を使用できるのは、
正規表現パターンはURI内のファイル名またはサブフォルダ・パスでのみサポートされ、パターン一致は 正規表現を使用する例:
`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'` ワイルドカードの使用例:
URIの形式は、使用しているCloud Object Storageサービスによって異なります。詳細は、「DBMS_CLOUDのURI形式」をご覧ください。
ディレクトリ 1つのディレクトリと1つ以上のファイル名を指定することも、ディレクトリとファイル名のカンマ区切りリストを使用することもできます。ディレクトリを指定する形式は、 ディレクトリにファイル名を指定する場合、正規表現はサポートされません。ワイルドカードを使用して、ディレクトリ内のファイル名を指定できます。文字"*"は複数文字のワイルドカードとして、文字"?"は1つの文字のワイルドカードとして使用することができます。例: 複数のディレクトリを指定するには、ディレクトリのカンマ区切りリストを使用します。例: 大/小文字を区別するディレクトリ名を指定するには、二重引用符を使用します。例: 引用符文字を含めるには、2つの引用符を使用します。例: ノート: この属性は、 |
LOAD, EXPORT |
いいえ |
priority |
パイプラインに対して実行されるパラレル操作の数を決定する文字列値を指定します。
優先度が高い操作では、より多くのデータベース・リソースが消費され、より早く完了します。 有効な値:
デフォルト値: 同時ファイル操作の最大数は64に制限されています。 |
LOAD, EXPORT |
はい |
query |
必要なデータのみがエクスポートされるように、 たとえば: `sql SELECT warehouse_id, quantity FROM inventories` デフォルト値: エクスポート・パイプラインの場合、 |
EXPORT |
いいえ |
table_name |
データをロードまたはエクスポートするためのターゲット表の名前を指定します。 ロード・パイプラインの場合、 エクスポート・パイプラインの場合、 |
LOAD, EXPORT |
いいえ |
table_owner |
データをロードまたはエクスポートするためのターゲット表が存在するスキーマの名前。 デフォルト値:
|
LOAD, EXPORT |
いいえ |
DBMS_CLOUD_PIPELINEビュー
DBMS_CLOUD_PIPELINEパッケージでは、次のビューが使用されます。