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に簡単にインポートできるため、クラウド間のデータ移行が簡素化されます。

コメント

このブログの人気の投稿

Oracle Database 19cサポート・タイムラインの重要な更新 (2024/11/20)

Oracle APEXのInteractive Gridで、Oracle Formsと比較して、重複行の検証を制御/通過させる方法 (2022/07/21)

Oracle APEX 24.1の一般提供の発表 (2024/06/17)