パイプラインの制御(パイプラインの起動、停止、削除またはリセット)
パイプラインを作成およびテストした後は、そのパイプラインを起動、停止または削除して、そのパイプラインを制御します。パイプラインをリセットすることもできます。
- パイプラインの開始
パイプラインを作成したら、そのパイプラインを開始できます。 - パイプラインの停止
STOP_PIPELINE
を使用して、パイプラインを停止します。パイプラインが停止すると、パイプラインに対して将来のジョブはスケジュールされません。 - パイプラインの削除
プロシージャDROP_PIPELINE
は、既存のパイプラインを削除します。 - パイプラインのリセット
パイプラインのリセット操作を使用して、パイプラインのレコードを初期状態にクリアします。 - パイプラインのモニターおよびトラブルシューティング
作成されたすべてのパイプラインは、DBMS_CLOUD_PIPELINE
ビューに記録されます。
パイプラインの開始
パイプラインが開始されると、パイプラインはスケジュール済ジョブで継続的に実行されます。パイプラインのスケジュール済ジョブは、デフォルトで15分ごと、またはinterval
属性で設定した間隔で繰り返されます。
パイプラインの停止
STOP_PIPELINE
を使用します。パイプラインが停止すると、パイプラインに対して将来のジョブはスケジュールされません。
デフォルトでは、パイプラインを停止すると、現在実行中のジョブが完了します。force
パラメータをTRUE
に設定して、実行中のジョブを終了し、パイプラインをただちに停止します。
詳細は、STOP_PIPELINEプロシージャを参照してください。
パイプラインの削除
DROP_PIPELINE
は、既存のパイプラインを削除します。
パイプラインが開始されている場合は、パイプラインを削除する前に停止する必要があります。詳細は、STOP_PIPELINEプロシージャを参照してください。
起動したパイプラインを削除するには、force
パラメータをTRUE
に設定して実行中のジョブを終了し、パイプラインを即時に削除します。
詳細は、DROP_PIPELINEプロシージャを参照してください。
パイプラインのリセット
オプションで、パイプラインのリセットを使用して、ロード・パイプラインに関連付けられたデータベース表のデータをパージしたり、エクスポート・パイプラインのオブジェクト・ストア内のファイルを削除できます。このオプションは通常、パイプライン開発中にパイプラインをテストする場合に使用します。
パイプラインのリセットは次のように動作します。
-
ロード・パイプライン: ロード・パイプラインの場合、パイプラインをリセットすると、パイプラインによってロードされているファイルのレコードがクリアされます。ロード・パイプラインのリセット後に
START_PIPELINE
またはRUN_PIPELINE_ONCE
をコールすると、パイプラインはデータ・ロードを繰り返し、オブジェクト・ストアの場所に存在するすべてのファイルを含めます。purge_data
がTRUE
に設定されている場合、プロシージャはデータベース表のデータを切り捨てます。 -
エクスポート・パイプライン: エクスポート・パイプラインの場合、パイプラインをリセットすると、データベース表内の最後の追跡データがクリアされます。エクスポート・パイプラインのリセット後に
START_PIPELINE
またはRUN_PIPELINE_ONCE
をコールすると、パイプラインは表または問合せからのデータのエクスポートを繰り返します。purge_data
をTRUE
に設定すると、location
属性で指定されたオブジェクト・ストアの場所にある既存のファイルが削除されます。
パイプラインをリセットするには:
パイプラインのモニターおよびトラブルシューティング
作成されたすべてのパイプラインは、DBMS_CLOUD_PIPELINE
ビューに記録されます。
パイプライン・ステータス情報の表示
パイプライン・ステータスを確認し、USER_CLOUD_PIPELINES
ビューまたはDBA_CLOUD_PIPELINES
ビューを使用して他のパイプライン情報を取得します。たとえば、pipeline_name
にWHERE
句述語を含む次のSELECT
文は、MY_TREE_DATA
がロード・パイプラインであり、パイプラインが開始されることを示しています。
SELECT pipeline_name, pipeline_type, status FROM USER_CLOUD_PIPELINES
WHERE pipeline_name = 'MY_TREE_DATA';
PIPELINE_NAME PIPELINE_TYPE STATUS
------------- ------------- -------
MY_TREE_DATA LOAD STARTED
詳細は、DBMS_CLOUD_PIPELINEビューを参照してください。
パイプライン属性の表示
パイプライン属性は、USER_CLOUD_PIPELINE_ATTRIBUTES
ビューまたはDBA_CLOUD_PIPELINE_ATTRIBUTES
ビューを問い合せることで監視できます。これらのビューを問い合せて、パイプライン属性情報を表示します。
例:
SELECT pipeline_name, attribute_name, attribute_value FROM user_cloud_pipeline_attributes
WHERE pipeline_name = 'MY_TREE_DATA';
PIPELINE_NAME ATTRIBUTE_NAME ATTRIBUTE_VALUE
------------- --------------- ---------------------------------------------------------------------------------
MY_TREE_DATA credential_name DEF_CRED_OBJ_STORE
MY_TREE_DATA format {"type": "csv"}
MY_TREE_DATA interval 20
MY_TREE_DATA location https://objectstorage.us-ashburn-1.oraclecloud.com/n/namespace/b/treetypes/o/
MY_TREE_DATA priority high
MY_TREE_DATA table_name TREES
詳細は、DBMS_CLOUD_PIPELINEビューを参照してください。
パイプライン履歴の表示
USER_CLOUD_PIPELINE_HISTORY
およびDBA_CLOUD_PIPELINE_HISTORY
ビューには、実行中のジョブの状態が表示されます。パイプライン履歴ビューを使用すると、パイプラインの状態をモニターし、実行中のパイプラインの障害を検出できます。
例:
SELECT pipeline_id, pipeline_name, status, error_message FROM user_cloud_pipeline_history
WHERE pipeline_name = 'MY_TREE_DATA';
PIPELINE_ID PIPELINE_NAME STATUS ERROR_MESSAGE
----------- ------------- --------- -------------
7 MY_TREE_DATA SUCCEEDED
詳細は、DBMS_CLOUD_PIPELINEビューを参照してください。
パイプライン・ステータス表: ロード・パイプラインの追加監視
パイプライン・ステータス表には、ロード・パイプラインの各ファイル名とそのステータスが表示されます。DBA_CLOUD_PIPELINES
およびUSER_CLOUD_PIPELINES
のSTATUS_TABLE
列には、ステータス表名が表示されます。
たとえば、pipeline_name
にWHERE
句述語を含む次のSELECT
文は、パイプラインのステータス表名を示します。
SELECT pipeline_name, status_table FROM user_cloud_pipelines
WHERE pipeline_name = 'MY_TREE_DATA';
PIPELINE_NAME STATUS_TABLE
------------- --------------------
MY_TREE_DATA PIPELINE$9$41_STATUS
次のようなパイプラインに関する情報を表示するには、ステータス表を表示します。
-
特定のファイルに対する操作が失敗した場合、関連するエラー番号とエラー・メッセージがステータス表に記録されます。
-
完了したパイプライン操作の場合、各操作に必要な時間は、レポートされた
START_TIME
およびEND_TIME
を使用して計算できます。
たとえば、次の例は、2つのファイルのロード操作が失敗し、1つが完了したことを示しています。
SELECT id, name, status, error_code, error_message, sid FROM PIPELINE$9$41_STATUS;
ID NAME STATUS ERROR_CODE ERROR_MESSAGE SID
-- ---------- --------- ---------- -------------------------------- -----
1 trees1.txt FAILED 30653 ORA-30653: reject limit reached 18070
2 trees2.txt FAILED 30653 ORA-30653: reject limit reached 18070
3 trees3.txt COMPLETED 18070
データをロードするためのパイプライン(pipeline_type
は'LOAD'
)は、USER_LOAD_OPERATIONS
およびDBA_LOAD_OPERATIONS
に示されているID
を予約します。これらのビューのID
値は、USER_CLOUD_PIPELINES
およびDBA_CLOUD_PIPELINES
のパイプラインのOPERATION_ID
にマップされます。
ロード・パイプラインの詳細を取得するには、パイプラインのOPERATION_ID
を問い合せます。
SELECT PIPELINE_NAME, OPERATION_ID FROM USER_CLOUD_PIPELINES
WHERE PIPELINE_NAME = 'MY_TREE_DATA';
PIPELINE_NAME OPERATION_ID
------------- ------------
MY_TREE_DATA 41
次に、(OPERATION_ID
値を使用して)ID
列でWHERE
句述語を使用してUSER_LOAD_OPERATIONS
またはDBA_LOAD_OPERATIONS
を問い合せます。
例:
SELECT ID, TYPE, LOGFILE_TABLE, BADFILE_TABLE, STATUS_TABLE FROM USER_LOAD_OPERATIONS
WHERE ID = 41;
ID TYPE LOGFILE_TABLE BADFILE_TABLE STATUS_TABLE
-- -------- ----------------- ----------------- --------------------
41 PIPELINE PIPELINE$9$41_LOG PIPELINE$9$41_BAD PIPELINE$9$41_STATUS
この問合せでは、ID
、TYPE
、LOGFILE_TABLE
、BADFILE_TABLE
(存在する場合)およびSTATUS_TABLE
が表示されます。これらの表を表示して、追加のパイプライン・ロード情報を確認できます。
パイプライン・ステータス表詳細
列 | Datatype | 説明 |
---|---|---|
ID |
NUMBER |
パイプラインに割り当てられる一意の番号。 |
NAME |
VARCHAR2(4000) |
パイプラインの名前。 |
BYTES |
NUMBER |
Bytes |
CHECKSUM |
VARCHAR2(128) |
チェックサム |
LAST_MODIFIED |
TIMESTAMP(6) WITH TIME ZONE |
パイプラインの最終変更時間。 |
STATUS |
VARCHAR2(30) |
STATUS 値は、次のいずれかです。
|
ERROR_CODE |
NUMBER |
エラー・コード |
ERROR_MESSAGE |
VARCHAR2(4000) |
エラー・メッセージ |
START_TIME |
TIMESTAMP(6) WITH TIME ZONE |
パイプラインの開始時間。 |
END_TIME |
TIMESTAMP(6) WITH TIME ZONE |
パイプラインの終了時間。 |
SID |
NUMBER |
セッション |
SERIAL# |
NUMBER |
セッション |
ROWS_LOADED |
NUMBER |
ロード済の行数 |
OPERATION_ID |
NUMBER |
今後使用するために予約されています。 |
パイプライン・ログ・ファイルおよび不正なファイル表
ロード・パイプラインのログ・ファイルおよび不正なファイル名を取得するには、パイプラインのOPERATION_ID
を問い合せます。例:
SELECT PIPELINE_NAME, OPERATION_ID FROM USER_CLOUD_PIPELINES
WHERE PIPELINE_NAME = 'MY_TREE_DATA';
PIPELINE_NAME OPERATION_ID
------------- ------------
MY_TREE_DATA 41
次に、(OPERATION_ID
値を使用して)ID
列でWHERE
句述語を使用してUSER_LOAD_OPERATIONS
またはDBA_LOAD_OPERATIONS
を問い合せます。
例:
SELECT ID, TYPE, LOGFILE_TABLE, BADFILE_TABLE, STATUS_TABLE FROM USER_LOAD_OPERATIONS
WHERE ID = 41;
ID TYPE LOGFILE_TABLE BADFILE_TABLE STATUS_TABLE
-- -------- ----------------- ----------------- --------------------
41 PIPELINE PIPELINE$9$41_LOG PIPELINE$9$41_BAD PIPELINE$9$41_STATUS
この問合せでは、ID
、TYPE
、LOGFILE_TABLE
、BADFILE_TABLE
(存在する場合)およびSTATUS_TABLE
が表示されます。これらの表を表示して、追加のパイプライン・ロード情報を確認できます。
パイプライン・ログ・ファイル表を表示して、パイプラインのロード操作の完全なログを確認します。
例:
SELECT * FROM PIPELINE$9$41_LOG;
パイプライン不良ファイル表を表示して、エラーのある入力フォーマット・レコードの詳細を表示します。不正なファイル表には、ロード中のエラーを報告する行の情報が表示されます。ログ・ファイル表に示されているエラーおよびパイプラインの不正なファイル表に示されている行によっては、パイプラインのformat
属性オプションを変更するか、ロードするファイルのデータを変更することによって、エラーを修正できる場合があります。
例:
SELECT * FROM PIPELINE$9$41_BAD;
詳細は、データ・ロードのモニターおよびトラブルシューティングを参照してください。