DBMS_CLOUD.EXPORT_DATAを使用してデータをテキストとしてオブジェクト・ストアにエクスポート

DBMS_CLOUD.EXPORT_DATAを使用して、Autonomous AI Databaseからクラウド・オブジェクト・ストアにデータをテキストとしてエクスポートします。テキスト形式のエクスポート・オプションは、CSV、JSONまたはXMLです。

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

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

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

  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に指定する値は、使用しているクラウド・オブジェクト・ストレージ・サービスによって異なります

  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パラメータの詳細は、EXPORT_DATAのDBMS_CLOUDパッケージのフォーマット・オプションを参照してください。

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

データをCSVとしてクラウド・オブジェクト・ストレージにエクスポート

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

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

  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に指定する値は、使用しているクラウド・オブジェクト・ストレージ・サービスによって異なります

  3. DBMS_CLOUD.EXPORT_DATAを実行し、formatパラメータtypeを値csvとともに指定して、結果をCSVファイルとしてクラウド・オブジェクト・ストレージにエクスポートします。

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

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

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

    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 'csv', 'delimiter' value '|', 'compression' value 'gzip'));
     END;
     /
    

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

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

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

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

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

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

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

  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に指定する値は、使用しているクラウド・オブジェクト・ストレージ・サービスによって異なります

  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を使用したエクスポートに関するノート:

データをXMLとしてクラウド・オブジェクト・ストレージにエクスポート

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

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

  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に指定する値は、使用しているクラウド・オブジェクト・ストレージ・サービスによって異なります

  3. DBMS_CLOUD.EXPORT_DATAを実行し、formatパラメータtypeに値xmlを指定して、結果をXMLファイルとしてクラウド・オブジェクト・ストレージにエクスポートします。

    XML出力ファイルを生成するには、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 'xml', 'compression' value 'gzip'));
     END;
     /
    

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

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

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

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

テキスト出力(CSV、JSON、ParquetまたはXML)のファイル・ネーミング

CSV、JSON、ParquetまたはXMLテキスト・ファイル出力を含むDBMS_CLOUD.EXPORT_DATAを使用した出力ファイルのネーミングについて説明します。

DBMS_CLOUD.EXPORT_DATAは、queryパラメータで指定された問合せを実行し、結果をクラウド・オブジェクト・ストア・バケットまたはディレクトリ内のテキスト・ファイルに送信します。出力形式は、指定したformatパラメータtype (CSV、JSON、ParquetまたはXMLのいずれか)によって異なります。

プロシージャを高速化し、出力を可能なかぎり高速に生成するために、DBMS_CLOUD.EXPORT_DATAはその作業を分割します。つまり、システム・リソースによっては、DBMS_CLOUD.EXPORT_DATAを実行すると、クラウド・オブジェクト・ストア・バケットまたはディレクトリ内に複数の出力ファイルが作成されます。

生成される各ファイルの形式は次のとおりです。

[FileNamePrefix | client_info_module_action]_sequenceNum_timestamp.format_extension.[compression_extension]

たとえば、次のDBMS_CLOUD.EXPORT_DATAプロシージャのファイル名接頭辞は、dept_exportとしてfile_uri_listパラメータで指定されます。この例では、指定された形式で指定されたオブジェクト・ストアに出力を生成します。

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;
/

ファイル名の接頭辞を指定すると、生成される出力ファイルには、次のようなファイル名接頭辞が含まれます。

dept_export_1_20210809T173033Z.json
dept_export_2_20210809T173034Z.json
dept_export_3_20210809T173041Z.json
dept_export_4_20210809T173035Z.json

生成される出力ファイルの数は、結果のサイズ、データベース・サービスおよびAutonomous AI Databaseインスタンス内のECPU (データベースがOCPUを使用している場合のOCPU)の数によって異なります。

次の例では、file_uri_listパラメータにファイル名接頭辞が含まれず、compressionパラメータに値gzipが指定されています。

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/',
    query           => 'SELECT * FROM DEPT',
    format          => json_object('type' value 'json', 'compression' value 'gzip'));
END;
/

ファイル名の接頭辞がfile_uri_listパラメータにない場合、DBMS_CLOUD.EXPORT_DATAclient_info_module_actionという形式のファイル名接頭辞を使用します。この例では、生成される出力ファイルには、DBMS_CLOUD.EXPORT_DATAが提供するファイル名接頭辞が含まれ、ファイルはgzipで圧縮され、ファイル拡張子.gzが次のように追加されます。

Client1_Module1_Action1_1_20210809T173033Z.json.gz
Client1_Module1_Action1_2_20210809T173034Z.json.gz
Client1_Module1_Action1_3_20210809T173041Z.json.gz
Client1_Module1_Action1_4_20210809T173035Z.json.gz

DBMS_CLOUD.EXPORT_DATAの実行時にclient_info_module_actionセッション情報を使用できない場合、ファイル名の接頭辞はdataに設定されます。たとえば:

data_1_20210809T173033Z.json.gz
data_2_20210809T173034Z.json.gz
data_3_20210809T173041Z.json.gz
data_4_20210809T173035Z.json.gz

たとえば、次のDBMS_CLOUD.EXPORT_DATAプロシージャのファイル名接頭辞は、dept_exportとしてfile_uri_listパラメータで指定されます。この例では、指定された形式で指定されたディレクトリに出力を生成します。

BEGIN
  DBMS_CLOUD.EXPORT_DATA(
    file_uri_list   => 'DATA_PUMP_DIR:sales.json',
    query           => 'SELECT * FROM SALES',
    format          => JSON_OBJECT('type' value 'json'));
END;
/

ファイル名の接頭辞を指定すると、生成される出力ファイルには、次のようなファイル名接頭辞が含まれます。

sales_1_20230705T124523275915Z.csv

DBMS_CLOUD.EXPORT_DATAを使用したファイル・ネーミングに関するノート:

関連コンテンツ