使用 DBMS_CLOUD.EXPORT_DATA 将数据作为文本导出到对象存储

使用 DBMS_CLOUD.EXPORT_DATA 将数据作为文本从自治 AI 数据库导出到云对象存储。文本格式导出选项为 CSV、JSON 或 XML。

将 JSON 数据导出到云对象存储

通过指定查询,显示将表数据作为 JSON 数据从自治 AI 数据库导出到云对象存储的步骤。

此导出方法支持 Autonomous Database 支持的所有云对象存储,您可以使用 Oracle Cloud Infrastructure 资源主用户访问 Oracle Cloud Infrastructure 对象存储,使用 Amazon 资源名称 (ARN) 访问 AWS 简单存储服务 (S3),使用 Azure 服务主用户访问 Azure BLOB 存储,或使用 Google 服务账户访问 Google Cloud Platform (GCP) 资源。

  1. 连接到自治 AI 数据库实例。

    有关详细信息,请参阅连接到自治 AI 数据库

  2. 使用 DBMS_CLOUD.CREATE_CREDENTIAL 存储您的云对象存储身份证明。

    例如:

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

    您为 usernamepassword 提供的值取决于您使用的云对象存储服务。

  3. 运行 DBMS_CLOUD.EXPORT_DATA 并指定 format 参数 type(值为 json),以将结果导出为云对象存储上的 JSON 文件。

    要生成 JSON 输出文件,file_uri_list 参数有两个选项:

    • file_uri_list 值设置为云对象存储上现有存储桶的 URL。

    • file_uri_list 值设置为云对象存储上现有存储桶的 URL,并包括为导出的 JSON 生成文件名时要使用的文件名前缀。

    如果不在 file_uri_list 中包括文件名前缀,则 DBMS_CLOUD.EXPORT_DATA 会提供文件名前缀。有关详细信息,请参阅文本输出文件命名(CSV、JSON、Parquet 或 XML)

    例如,以下内容显示了 DBMS_CLOUD.EXPORT_DATA,其中包含 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;
     /
    

    在此示例中,*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 Procedure

    有关可以与 DBMS_CLOUD.EXPORT_DATA 一起使用的可用 format 参数的详细信息,请参见 DBMS_CLOUD Package Format Options for EXPORT_DATA

使用 DBMS_CLOUD.EXPORT_DATA 导出说明:

以 CSV 格式将数据导出至云对象存储

通过指定查询,显示将表数据以 CSV 数据形式从自治 AI 数据库导出到云对象存储的步骤。

此导出方法支持自治 AI 数据库支持的所有云对象存储。您还可以使用 Amazon 资源名称 (ARN) 访问 AWS 简单存储服务 (S3)、访问 Azure BLOB 存储的 Azure 服务主体,或者使用 Google 服务账户访问 Google Cloud Platform (GCP) 资源。

  1. 连接到自治 AI 数据库实例。

    有关详细信息,请参阅连接到自治 AI 数据库

  2. 使用 DBMS_CLOUD.CREATE_CREDENTIAL 存储您的云对象存储身份证明。

    例如:

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

    usernamepassword 提供的值取决于您使用的云对象存储服务。

  3. 运行 DBMS_CLOUD.EXPORT_DATA 并指定值为 csvformat 参数 type,以将结果导出为云对象存储上的 CSV 文件。

    要生成 CSV 输出文件,file_uri_list 参数有两个选项:

    • file_uri_list 值设置为云对象存储上现有存储桶的 URL。

    • file_uri_list 值设置为云对象存储上现有存储桶的 URL,并包括为导出的 CSV 文件生成文件名时要使用的文件名前缀。

    如果不在 file_uri_list 中包括文件名前缀,则 DBMS_CLOUD.EXPORT_DATA 会提供文件名前缀。有关详细信息,请参阅文本输出文件命名(CSV、JSON、Parquet 或 XML)

    例如,以下内容显示了 DBMS_CLOUD.EXPORT_DATA,其中包含 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 'csv', 'delimiter' value '|', 'compression' value 'gzip'));
     END;
     /
    

    在此示例中,*namespace-string* 是 Oracle Cloud Infrastructure 对象存储名称空间,bucketname 是存储桶名称。有关详细信息,请参阅了解对象存储名称空间

    有关参数的详细信息,请参见 EXPORT_DATA Procedure

    有关可以与 DBMS_CLOUD.EXPORT_DATA 一起使用的可用 format 参数的详细信息,请参见 DBMS_CLOUD Package Format Options for EXPORT_DATA

使用 DBMS_CLOUD.EXPORT_DATA 导出说明:

将数据作为 Parquet 导出到云对象存储

显示通过指定查询将表数据作为 Parquet 数据从自治 AI 数据库导出到云对象存储的步骤。

此导出方法支持 Autonomous Database 支持的所有云对象存储,您可以使用 Oracle Cloud Infrastructure 资源主用户访问 Oracle Cloud Infrastructure 对象存储,使用 Amazon 资源名称 (ARN) 访问 AWS 简单存储服务 (S3),使用 Azure 服务主用户访问 Azure BLOB 存储,或使用 Google 服务账户访问 Google Cloud Platform (GCP) 资源。

  1. 连接到自治 AI 数据库实例。

    有关详细信息,请参阅连接到自治 AI 数据库

  2. 使用 DBMS_CLOUD.CREATE_CREDENTIAL 存储您的云对象存储身份证明。

    例如:

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

    您为 usernamepassword 提供的值取决于您使用的云对象存储服务。

  3. 运行 DBMS_CLOUD.EXPORT_DATA 并指定值为 parquetformat 参数 type,以将结果导出为云对象存储上的 parquet 文件。

    要生成参数组输出文件,file_uri_list 参数有两个选项:

    • file_uri_list 值设置为云对象存储上现有存储桶的 URL。

    • file_uri_list 值设置为云对象存储上现有存储桶的 URL,并包括为导出的参数文件生成文件名时要使用的文件名前缀。

    如果不在 file_uri_list 中包括文件名前缀,则 DBMS_CLOUD.EXPORT_DATA 会提供文件名前缀。有关详细信息,请参阅文本输出文件命名(CSV、JSON、Parquet 或 XML)

    例如,以下内容显示了 DBMS_CLOUD.EXPORT_DATA,其中包含 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 'parquet', 'compression' value 'snappy'));
     END;
     /
    

    在此示例中,*namespace-string* 是 Oracle Cloud Infrastructure 对象存储名称空间,bucketname 是存储桶名称。有关详细信息,请参阅了解对象存储名称空间

    有关参数的详细信息,请参见 EXPORT_DATA Procedure

    有关可以与 DBMS_CLOUD.EXPORT_DATA 一起使用的可用 format 参数的详细信息,请参见 DBMS_CLOUD Package Format Options for EXPORT_DATA

使用 DBMS_CLOUD.EXPORT_DATA 导出说明:

将数据作为 XML 导出到云对象存储

通过指定查询,显示将表数据作为 XML 数据从自治 AI 数据库导出到云对象存储的步骤。

此导出方法支持自治 AI 数据库支持的所有云对象存储。您还可以使用 Amazon 资源名称 (ARN) 访问 AWS 简单存储服务 (S3)、访问 Azure BLOB 存储的 Azure 服务主体,或者使用 Google 服务账户访问 Google Cloud Platform (GCP) 资源。

  1. 连接到自治 AI 数据库实例。

    有关详细信息,请参阅连接到自治 AI 数据库

  2. 使用 DBMS_CLOUD.CREATE_CREDENTIAL 存储您的云对象存储身份证明。

    例如:

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

    usernamepassword 提供的值取决于您使用的云对象存储服务。

  3. 运行 DBMS_CLOUD.EXPORT_DATA 并指定值为 xmlformat 参数 type,以将结果导出为云对象存储上的 XML 文件。

    要生成 XML 输出文件,file_uri_list 参数有两个选项:

    • file_uri_list 值设置为云对象存储上现有存储桶的 URL。

    • file_uri_list 值设置为云对象存储上现有存储桶的 URL,并包括为导出的 JSON 生成文件名时要使用的文件名前缀。

    如果不在 file_uri_list 中包括文件名前缀,则 DBMS_CLOUD.EXPORT_DATA 会提供文件名前缀。有关详细信息,请参阅文本输出文件命名(CSV、JSON、Parquet 或 XML)

    例如,以下内容显示了 DBMS_CLOUD.EXPORT_DATA,其中包含 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 'xml', 'compression' value 'gzip'));
     END;
     /
    

    在此示例中,*namespace-string* 是 Oracle Cloud Infrastructure 对象存储名称空间,bucketname 是存储桶名称。有关详细信息,请参阅了解对象存储名称空间

    有关参数的详细信息,请参见 EXPORT_DATA Procedure

    有关可以与 DBMS_CLOUD.EXPORT_DATA 一起使用的可用 format 参数的详细信息,请参见 DBMS_CLOUD Package Format Options for EXPORT_DATA

使用 DBMS_CLOUD.EXPORT_DATA 导出说明:

文本输出的文件命名( CSV、JSON、Parquet 或 XML)

介绍将 DBMS_CLOUD.EXPORT_DATA 与 CSV、JSON、Parquet 或 XML 文本文件输出一起使用的输出文件命名。

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 过程中的文件名前缀在 file_uri_list 参数中指定为 dept_export。该示例以指定格式将输出生成到提供的对象存储。

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

生成的输出文件数取决于自治 AI 数据库实例中的结果大小、数据库服务和 ECPU 数(如果数据库使用 OCPU,则为 OCPU)。

在以下示例中,file_uri_list 参数不包括文件名前缀,并且提供了值为 gzipcompression 参数:

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_DATA 使用以下格式的文件名前缀: client_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_DATAclient_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 过程中的文件名前缀在 file_uri_list 参数中指定为 dept_export。该示例将以指定格式将输出生成到提供的目录。

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 进行文件命名的说明:

相关内容