Google Cloud StorageからOracle Databaseへのデータのロード (2024/10/01)
Google Cloud StorageからOracle Databaseへのデータのロード (2024/10/01)
https://database-heartbeat.com/2024/10/01/google-storage-to-oracle-database/
はじめに
マルチクラウド環境では、複数のクラウド・ベンダーからのリソースを使用しながら、通常は環境間でのデータの移行や、別のクラウド環境からのアクセス時に1つのクラウド環境でのデータの保持を処理します。Oracle Database DBMS_CLOUD PL/SQLパッケージを使用すると、OCI Object Storage、Azure Blob Storage、Amazon S3バケットおよびGoogle Cloud Storageバケットのデータにアクセスしたり、これらのソースからOracle Databaseにインポートしたりできます。
このブログ投稿では、Google Cloud StorageバケットからOracle Databaseへのデータへのアクセスおよびインポートに関するステップバイステップ・ガイドを提供します。
環境
- Google Cloud Storageバケット内のData Pumpダンプ・ファイル。
- DBMS_CLOUDパッケージがすでにプリインストールされているため、OCI上のOracle Autonomous Database。DBMS_CLOUDパッケージをインストールできる任意のOracle Databaseバージョン19.10以降を使用できます。
テスト目的で、インターネットを介してネットワーク接続を確立できます。本番環境では、Oracle Interconnect for Google Cloudまたはサード・パーティのネットワーク・サービス・プロバイダを介して、Google CloudとOCIの間にプライベートな専用接続を設定します。Oracle Database@Google Cloudの場合、Oracle DatabaseがGoogle Cloudデータセンターに存在するため、クラウド間のネットワーク接続の設定は必要ありません。
Google Cloudでの準備
ステップ1: アクセス・キーとシークレットの作成
データベースでGoogle Cloud Storageバケット内のオブジェクトを認証してアクセスできるようにするには、ユーザー・アカウントのアクセス・キーとシークレットを作成する必要があります。
「Google Cloud Storage Settings」ページで、「INTEROPERABILITY」タブをクリックします。
ユーザー・アカウントのアクセス・キー・セクションまでスクロールし、「CREATE A KEY」をクリックします。アクセス・キーとシークレットが作成されます。次のステップで使用する両方の値をコピーします。
この場合(一部の文字が置換されます):
- アクセス・キー: GOOGA3N3xxx7MDD
- シークレット: sVQHCkZVn8VvmG2+mHLDExxx
ステップ2: Google CloudバケットでファイルのURLを取得します
Google Cloud Storageバケット・ページから、バケット名を取得します。
この場合、次のようになります。
- バケット名: adbbucket
バケット名をクリックして、バケット内のオブジェクト・ファイル名を取得します。
この場合、Data Pumpエクスポート・ファイルです。
- オブジェクト名: hr.dmp
アクセスURLは次のとおりです。
https://<bucket_name>.storage.googleapis.com/<object_name>
この場合、次のようになります。
- オブジェクトURL: https://adbbucket.storage.googleapis.com/hr.dmp
OCIでの準備
ステップ3: Oracle Databaseでの資格証明の作成
DBMS_CLOUD PL/SQLパッケージを使用して資格証明を作成し、データベースにGoogle Cloud Storageバケットへのアクセスを許可します。ユーザー名パラメータはアクセス・キーで、パスワード・パラメータはステップ1で作成したシークレットです。
BEGIN
DBMS_CLOUD.CREATE_CREDENTIAL(
credential_name =>
'<Crednedial_Name>'
,
username =>
'<Storage_Account_Name>'
,
password
=>
'<Key>'
);
END
;
/
-- in this examplae
SQL>
BEGIN
DBMS_CLOUD.CREATE_CREDENTIAL(
credential_name =>
'GCP_CRED'
,
username =>
'GOOGA3N3xxx7MDD'
,
password
=>
'sVQHCkZVn8VvmG2+mHLDExxx'
);
END
;
/
PL/SQL
procedure
successfully completed.
ステップ4: Google Cloud Storageへのアクセスのテスト
バケットへのアクセスをテストするには、DBMS_CLOUDパッケージのLIST_OBJECTSファンクションを使用してファイルをリストします。ステップ3の資格証明名とステップ2のロケーションURLを使用しますが、最後にオブジェクト名を使用しません。
SQL>
select
object_name
from
dbms_cloud.list_objects(
'GCP_CRED'
,
'https://adbbucket.storage.googleapis.com'
);
OBJECT_NAME
--------------------------------------------------------------------------------
hr.dmp
データのインポート
ステップ5: Google Cloud StorageからOracle Databaseへのデータのインポート
データ・ポンプ・パラメータ・ファイルを作成します。dumpfileパラメータは、ステップ2のオブジェクト名です。
# data pump parameter file: impgcp.par
directory=DATA_PUMP_DIR
credential=GCP_CRED
schemas=hr
remap_tablespace=USERS:DATA
パラメータ・ファイルを使用してData Pumpインポート・コマンドを実行します。
impdp userid=ADMIN@adbzdm_high parfile=impgcp.par
...
Job
"ADMIN"
.
"SYS_IMPORT_SCHEMA_01"
successfully completed at Tue Oct 1 13:55:38 2024 elapsed 0 00:00:07
まとめ
DBMS_CLOUDパッケージを使用すると、複数のクラウド・ベンダーのデータに柔軟にアクセスでき、Oracle Databaseに簡単にインポートできるため、クラウド間のデータ移行が簡素化されます。
コメント
コメントを投稿