クラウド・オブジェクト・ストレージへのParquetとしてのデータのエクスポート

問合せを指定して、Autonomous AI DatabaseからCloud Object StorageにParquetデータとして表データをエクスポートするステップを示します。

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

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

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

  2. DBMS_CLOUD.CREATE_CREDENTIALを使用してクラウド・オブジェクト・ストレージ資格証明を格納してください。

    たとえば:

    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に値parquetを指定して、結果をparquetファイルとしてクラウド・オブジェクト・ストレージにエクスポートします。

    parquet出力ファイルを生成するには、file_uri_listパラメータに次の2つのオプションがあります。

    • file_uri_list値を、クラウド・オブジェクト・ストレージ上の既存のバケットのURLに設定します。

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

    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 'parquet', 'compression' value 'snappy'));
    END;
    /

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

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

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

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

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

  • 出力ファイルを圧縮するには、formatパラメータをcompressionオプションとともに指定します。type parquetのデフォルトのcompressionsnappyです。

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

  • Oracle型からParquet型へのマッピングの詳細は、「DBMS_CLOUDパッケージのOracleデータ型からParquetへのマッピング」を参照してください。

    次の型はサポートされていないか、DBMS_CLOUD.EXPORT_DATAでParquetをエクスポートするためのサポートに制限があります。

    Oracleタイプ ノート
    BFILE サポートされていない
    BLOB サポートされていない
    DATE

    次の制限でサポート: DATE形式では、日付、月および年のみがサポートされます。時間、分および秒はサポートされていません。

    DATEをParquetにエクスポートする場合のNLS形式制限の詳細は、「DBMS_CLOUDパッケージのOracleデータ型からParquetへのマッピング」を参照してください。

    INTERVAL DAY TO SECOND サポートされ、内部で文字列として扱われます
    INTERVAL YEAR TO MONTH サポートされ、内部で文字列として扱われます
    LONG サポートされていない
    LONG RAW サポートされていない
    NUMBER

    次の制限でサポートされています。

    • 最大精度は38で、倍率は精度以下になります。
    • NUMBER型に精度およびスケールが指定されていない場合は、デフォルトで精度38およびスケール20が使用されます。
    • NUMBER型では負のスケールはサポートされていません。
    Object Types サポートされていない
    TIMESTAMP

    次の制限でサポートされています。

    • 精度が異なる複数の列がある場合は、最高精度が使用されます。
    • TIMESTAMP WITH TIME ZONE Oracleデータ型では、タイムスタンプのみが使用されます。

    TIMESTAMPをParquetにエクスポートする場合のNLS形式制限の詳細は、「DBMS_CLOUDパッケージのOracleデータ型からParquetへのマッピング」を参照してください。