クラウド・オブジェクト・ストレージへのJSONデータのエクスポート

問合せを指定して、Autonomous Databaseからクラウド・オブジェクト・ストレージにJSONデータとして表データをエクスポートするステップを示します。

このエクスポート方法は、Autonomous Databaseでサポートされるすべてのクラウド・オブジェクト・ストアをサポートしており、Oracle Cloud Infrastructureリソース・プリンシパルを使用してOracle Cloud Infrastructure Object Storeにアクセスしたり、Amazonリソース名(ARN)を使用してAWS Simple Storage Service (S3)、Azureサービス・プリンシパルを使用してAzure BLOBストレージにアクセスしたり、Googleサービス・アカウントを使用してGoogle Cloud Platform (GCP)リソースにアクセスできます。

  1. Autonomous Databaseインスタンスに接続します。

    詳細は、Autonomous Databaseへの接続を参照してください。

  2. DBMS_CLOUD.CREATE_CREDENTIALを使用してCloud Object Storage資格証明を格納します。

    たとえば、次のとおりです。

    BEGIN
      DBMS_CLOUD.CREATE_CREDENTIAL(
        credential_name => 'DEF_CRED_NAME',
        username => 'user1@example.com',
        password => 'password'
      );
    END;
    /

    usernameおよびpasswordに指定する値は、使用しているクラウド・オブジェクト・ストレージ・サービスによって異なります

    リソース・プリンシパル資格証明を有効にする場合、Oracle Cloud Infrastructureオブジェクト・ストアにアクセスするための資格証明の作成は必要ありません。詳細は、リソース・プリンシパルを使用したOracle Cloud Infrastructureリソースへのアクセスを参照してください。

  3. DBMS_CLOUD.EXPORT_DATAを実行し、formatパラメータのtypeに値jsonを指定して、結果をクラウド・オブジェクト・ストレージのJSONファイルとしてエクスポートします。
    JSON出力ファイルを生成するために、file_uri_listパラメータには2つのオプションがあります:
    • file_uri_list値を、クラウド・オブジェクト・ストレージの既存のバケットのURLに設定します。

    • file_uri_list値を、クラウド・オブジェクト・ストレージの既存のバケットのURLに設定し、エクスポートされたJSONのファイル名の生成時に使用するファイル名接頭辞を含めます。

    file_uri_listにファイル名接頭辞を含めない場合、DBMS_CLOUD.EXPORT_DATAによってファイル名接頭辞が指定されます。詳細は、テキスト出力(CSV、JSON、ParquetまたはXML)のファイル・ネーミングを参照してください。

    たとえば、file_uri_listに指定されたファイル名接頭辞を持つDBMS_CLOUD.EXPORT_DATAを次に示します:

    BEGIN
      DBMS_CLOUD.EXPORT_DATA(
        credential_name => 'DEF_CRED_NAME',
        file_uri_list   => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/dept_export',
        query           => 'SELECT * FROM DEPT',
        format          => JSON_OBJECT('type' value 'json'));
    END;
    /

    この例では、namespace-stringはOracle Cloud Infrastructureオブジェクト・ストレージ・ネームスペースで、bucketnameはバケット名です。詳細は、オブジェクト・ストレージ・ネームスペースの理解を参照してください。

    レコード・デリミタに\r\nや\tなどのエスケープ文字が含まれる場合、レコードのデリミタは二重引用符で囲みます。たとえば、レコード・デリミタ\r\nを使用するには、値を二重引用符("\r\n")で囲みます。

    BEGIN
      DBMS_CLOUD.EXPORT_DATA(
        credential_name => 'DEF_CRED_NAME',
        file_uri_list   => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/dept_export',
        query => 'SELECT * FROM DEPT',
        format => JSON_OBJECT('type' value 'json', 'recorddelimiter' value '"\r\n"' format json));
    END;
    /

    この例では、namespace-stringはOracle Cloud Infrastructureオブジェクト・ストレージ・ネームスペースで、bucketnameはバケット名です。詳細は、オブジェクト・ストレージ・ネームスペースの理解を参照してください。

    パラメータの詳細は、EXPORT_DATAプロシージャを参照してください。

    DBMS_CLOUD.EXPORT_DATAで使用できるformatパラメータの詳細は、DBMS_CLOUD EXPORT_DATAのパッケージ・フォーマット・オプションを参照してください。

DBMS_CLOUD.EXPORT_DATAを使用したエクスポートに関するノート:

  • 指定するqueryパラメータは、必要に応じて、結合や副問合せを含む問合せなどの拡張問合せにすることができます。

  • 出力ファイルを圧縮するには、formatパラメータにcompressionオプションを指定します。

  • エクスポート中にデータを暗号化するには、encryptionオプションでformatパラメータを指定します。詳細は、オブジェクト・ストレージへのエクスポート中のデータの暗号化を参照してください。

  • エクスポートしたファイルが不要なった場合は、プロシージャDBMS_CLOUD.DELETE_OBJECTを使用するか、ネイティブのクラウド・オブジェクト・ストレージ・コマンドを使用してファイルを削除します。