クラウド内のファイルの一括操作
PL/SQLパッケージDBMS_CLOUD
は、バルク・ファイルのアップロード、ダウンロード、コピーおよび転送アクティビティに対するパラレル実行のサポートを提供し、ユーザー・エクスペリエンスを合理化し、バルク・ファイル操作に最適なパフォーマンスを提供します。
パッケージDBMS_CLOUD
は、次のクラウド・サービスへのファイルのロードおよびアンロードをサポートしています:
-
Oracle Cloud Infrastructureオブジェクト・ストレージ
-
Azure BlobストレージまたはAzure Data Lakeストレージ
-
Amazon S3
-
Wasabi Hot Cloud Storageを含むAmazon S3互換
-
Google Cloud Storage
詳細については、「DBMS_CLOUDパッケージ・ファイルのURI形式」を参照してください。
- 一括ファイル操作について
DBMS_CLOUD
バルク・ファイル操作では、同じオブジェクト・ストア・プロバイダ内またはオブジェクト・ストア・プロバイダ間のクラウド・オブジェクト・ストア間でのファイルのコピー、移動および削除のサポートなど、Autonomous Databaseでのファイルのダウンロードおよびアップロードがサポートされます。 - クラウド・オブジェクト・ストレージのファイルの一括コピー
DBMS_CLOUD.BULK_COPY
プロシージャを使用して、あるオブジェクト・ストア・バケットまたはフォルダから別のバケットまたはフォルダにファイルを一括コピーします。 - クラウド・オブジェクト・ストレージ間でのファイルの一括移動
DBMS_CLOUD.BULK_MOVE
プロシージャを使用して、クラウド・オブジェクト・ストレージのロケーション間でファイルを一括移動します。 - クラウド・オブジェクト・ストレージからのファイルのバルク・ダウンロード
DBMS_CLOUD.BULK_DOWNLOAD
プロシージャを使用して、クラウド・オブジェクト・ストアのロケーションからAutonomous Databaseのディレクトリ・オブジェクトにファイルを一括ダウンロードします。 - クラウド・オブジェクト・ストレージへのファイルの一括アップロード
DBMS_CLOUD.BULK_UPLOAD
プロシージャを使用して、データベースのディレクトリ・オブジェクトからクラウド・オブジェクト・ストアのロケーションにファイルを一括アップロードします。 - クラウド・オブジェクト・ストレージからのファイルのバルク削除
DBMS_CLOUD.BULK_DELETE
プロシージャを使用して、クラウド・オブジェクト・ストレージからファイルを一括削除します。 - 一括ファイル・ロードのモニターおよびトラブルシューティング
すべてのDBMS_CLOUD
データ・ロード操作は、dba_load_operations
ビューおよびuser_load_operations
ビューに記録されます。 - 一括ファイル操作のノート
バルク・ファイル操作で使用する資格証明に関するノートを提供します。
親トピック: ファイルの移動
一括ファイル操作について
DBMS_CLOUD
バルク・ファイル操作は、同じオブジェクト・ストア・プロバイダ内またはオブジェクト・ストア・プロバイダ間のクラウド・オブジェクト・ストア間でのファイルのコピー、移動および削除のサポートなど、Autonomous Databaseでのファイルのダウンロードおよびアップロードをサポートします。
バルク・ファイル操作は並列性をサポートし、ファイルのアップロード、ダウンロード、コピーおよび移動に最適なパフォーマンスを提供します。 バルク・ファイル操作の並列処理は、操作の優先度を指定することによって処理されます。 サポートされている優先順位は次のとおりです:
HIGH
: Autonomous DatabaseインスタンスのCPUコンピュート数を使用して、処理されるパラレル・ファイルの数を確認します。MEDIUM
: 並列度を決定するには、Mediumサービスの同時実行性制限を使用します。LOW
: ファイルを順番に処理します(並行処理なし)。
優先度が高いバルク操作を実行すると、より多くのデータベース・リソースが使用され、パラレル化によって操作が高速化されると操作が速くなります。 優先度を低くすると、データベース・リソースが少なくなり、パラレル化によって操作が高速化されると、操作の完了に時間がかかります。 バルク操作に少数のデータを含むファイルが含まれる場合、優先度を高く指定してもパフォーマンスは変わりません。
バルク・ファイル操作の並列性を向上するには、HIGH
優先度を使用し、Autonomous Databaseインスタンスに割り当てられるCPUの数を増やします。 バルク・ファイル操作でサポートされる同時ファイル操作の最大数は64に制限されています。
デフォルトの優先度はMEDIUM
で、バルク・ファイル操作でMEDIUMコンシューマ・グループに定義された同時実行制限を使用することを指定します。 詳細は、「Autonomous Databaseでの同時実行性および優先度の管理」を参照してください。
format
パラメータを使用してバルク・ファイル操作でpriority
を指定する方法の詳細は、「DBMS_CLOUD(バルク・ファイル管理用)」を参照してください。
親トピック: クラウド内のファイルに対する一括操作
クラウド・オブジェクト・ストレージのファイルの一括コピー
DBMS_CLOUD.BULK_COPY
プロシージャを使用して、あるオブジェクト・ストア・バケットまたはフォルダから別のバケットまたはフォルダにファイルを一括コピーします。
たとえば、DBMS_CLOUD.BULK_COPY
を使用して、Amazon S3からOracle Cloud Infrastructure Object Storageにファイルをコピーします。
BEGIN
DBMS_CLOUD.BULK_COPY
(
source_credential_name => 'AWS_CRED',
source_location_uri => 'https://bucketname.s3-us-west-2.amazonaws.com/',
target_credential_name => 'OCI_CRED',
target_location_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname2/o',
format => JSON_OBJECT ('logretention' value 7, 'logprefix' value 'BULKOP')
);
END;
/
親トピック: クラウド内のファイルに対する一括操作
クラウド・オブジェクト・ストレージ間でのファイルの一括移動
DBMS_CLOUD.BULK_MOVE
プロシージャを使用して、クラウド・オブジェクト・ストレージのロケーション間でファイルを一括移動します。
ファイルを移動する最初のステップは、ターゲットのロケーションにコピーすることです。 ファイルが正常にコピーされると、ソースのロケーションから削除されます。
オブジェクト・ストアでソースとターゲットのロケーション間の名前変更操作が許可されている場合、ファイルはコピーされるのではなく名前が変更されます。
たとえば、DBMS_CLOUD.BULK_MOVE
を使用して、ファイルをAmazon S3からOracle Cloud Infrastructure Object Storageに移動します。
BEGIN
DBMS_CLOUD.BULK_MOVE
(
source_credential_name => 'AWS_CRED',
source_location_uri => 'https://bucketname.s3-us-west-2.amazonaws.com/',
target_credential_name => 'OCI_CRED',
target_location_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname2/o',
format => JSON_OBJECT ('logretention' value 7, 'logprefix' value 'BULKOP')
);
END;
/
親トピック: クラウド内のファイルに対する一括操作
クラウド・オブジェクト・ストレージからのファイルのバルク・ダウンロード
DBMS_CLOUD.BULK_DOWNLOAD
プロシージャを使用して、クラウド・オブジェクト・ストアのロケーションからAutonomous Databaseのディレクトリ・オブジェクトにファイルを一括ダウンロードします。
親トピック: クラウド内のファイルに対する一括操作
クラウド・オブジェクト・ストレージへのファイルの一括アップロード
DBMS_CLOUD.BULK_UPLOAD
プロシージャを使用して、データベースのディレクトリ・オブジェクトからクラウド・オブジェクト・ストアのロケーションにファイルを一括アップロードします。
親トピック: クラウド内のファイルに対する一括操作
クラウド・オブジェクト・ストレージからのファイルのバルク削除
DBMS_CLOUD.BULK_DELETE
プロシージャを使用して、クラウド・オブジェクト・ストレージからファイルを一括削除します。
親トピック: クラウド内のファイルに対する一括操作
一括ファイル・ロードのモニターおよびトラブルシューティング
すべてのDBMS_CLOUD
データ・ロード操作は、dba_load_operations
ビューおよびuser_load_operations
ビューに記録されます。
次のビューを使用して、バルク・ファイル・ロードを監視およびトラブルシューティングできます:
-
dba_load_operations
: すべてのロード操作が表示されます。 -
user_load_operations
: スキーマ内のロード操作が表示されます。
これらのビューを問い合せて、進行中および完了したバルク・ファイル操作に関する情報を確認します。 たとえば、TYPE
に対するWHERE
句述語を含む次のSELECT
文は、DOWNLOAD
操作を示しています:
SELECT owner_name, type, status, start_time, update_time, status_table, rows_loaded
FROM user_load_operations WHERE type = 'DOWNLOAD';
OWNER_NAME TYPE STATUS START_TIME UPDATE_TIME STATUS_TABLE ROWS_LOADED
---------- -------- --------- ------------------------ ------------------------ ------------ -----------
"ADMIN" DOWNLOAD COMPLETED 2022-10-17T20:42:19.498Z 2022-10-17T20:42:21.054Z DWN$2_STATUS 4
"ADMIN" DOWNLOAD FAILED 2022-10-17T20:40:54.348Z 2022-10-17T20:40:55.679Z DWN$1_STATUS
STATUS_TABLE
列には、一括ダウンロード操作の詳細なロギング情報を確認するために問い合せることができる表の名前が表示されます。 たとえば:
DESCRIBE DWN$2_STATUS
Name Null? Type
------------- -------- ---------------------------
ID NOT NULL NUMBER
NAME VARCHAR2(4000)
BYTES NUMBER
CHECKSUM VARCHAR2(128)
LAST_MODIFIED TIMESTAMP(6) WITH TIME ZONE
STATUS VARCHAR2(30)
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
SELECT id, name, bytes, status, error_message, start_time, end_time FROM DWN$2_STATUS;
ID NAME BYTES STATUS ERROR_MESSAGE START_TIME END_TIME
-- ---------- ----- --------- ------------- ------------------------ ------------------------
1 trees.txt 58 COMPLETED 2022-10-17T20:42:19.998Z 2022-10-17T20:42:20.421Z
2 trees1.txt 58 COMPLETED 2022-10-17T20:42:20.425Z 2022-10-17T20:42:20.533Z
3 trees2.txt 58 COMPLETED 2022-10-17T20:42:20.535Z 2022-10-17T20:42:20.894Z
4 trees3.txt 58 COMPLETED 2022-10-17T20:42:20.896Z 2022-10-17T20:42:21.043Z
ステータス表には、バルク操作の各ファイル名とそのステータスが表示されます。
特定のファイルに対する操作が失敗した場合、関連するエラー番号およびメッセージがステータス表に記録されます。
完了した操作の場合、各操作に必要な時間は、レポートされたSTART_TIME
およびEND_TIME
時間を使用して計算できます。
ファイル操作のSTATUS
列には、次のいずれかの値を指定できます:
ファイル・ステータス | 説明 |
---|---|
|
ファイル操作が完了しました。 |
|
ファイル操作に失敗しました。再試行は2回試行できます。 |
|
ファイル操作はまだ開始されていません。 |
|
ファイル操作が現在進行中です。 |
|
ファイル操作がスキップされました。 |
2回の再試行後にファイル操作が失敗した場合、バルク操作は失敗としてマークされ、エラーが発生します。 たとえば:
ORA-20003: Operation failed, please query table DOWNLOAD$2_STATUS for error details
DBMS_CLOUD
バルク・ファイル操作を使用する場合、ステータス表を制御するformat
パラメータ・オプションがあります:
-
logretention
: ステータス表が保持される期間(日数)を決定する整数値を指定します。 デフォルト値は2日です。 -
logprefix
: バルク操作ステータスの表名プレフィクスを決定する文字列値を指定します。各一括操作には、
logprefix
オプションに対する独自のデフォルト値があります:手順 logprefix
のデフォルト値DBMS_CLOUD.BULK_COPY
COPYOBJ
DBMS_CLOUD.BULK_DELETE
DELETE
DBMS_CLOUD.BULK_DOWNLOAD
DOWNLOAD
DBMS_CLOUD.BULK_MOVE
MOVE
DBMS_CLOUD.BULK_UPLOAD
UPLOAD
user_load_operations
表のクリアの詳細は、「DELETE_ALL_OPERATIONSプロシージャ」を参照してください。
親トピック: クラウド内のファイルに対する一括操作
一括ファイル操作のノート
バルク・ファイル操作で使用する資格証明に関するノートを提供します。
-
プリンシパルを
credential_name
、source_credential_name
またはtarget_credential_name
パラメータとして指定すると、ユーザー資格証明を格納せずにクラウド・リソースに安全にアクセスできます。 サポートされている主体は次のとおりです:- Oracle Cloud Infrastructureリソース・プリンシパル
- AWS Amazonリソース名(ARN)
- Azureサービス・プリンシパル
- Googleサービス・アカウント
詳細については、「リソースにアクセスするためのポリシーおよびロールの構成」を参照してください。
-
パブリック、事前認証済または事前署名済バケットURIの
credential_name
、source_credential_name
またはtarget_credential_name
は、NULL
です。
親トピック: クラウド内のファイルに対する一括操作