使用 DBMS_CLOUD.EXPORT_DATA 將資料匯出為文字的物件存放區
將 JSON 資料匯出至雲端物件儲存
顯示透過指定查詢,將 Autonomous Database 中的表格資料匯出至 Cloud Object Storage 作為 JSON 資料的步驟。
此匯出方法支援 Autonomous Database 支援的所有雲端物件存放區,您可以使用 Oracle Cloud Infrastructure 資源主體存取您的 Oracle Cloud Infrastructure 物件存放區、Amazon 資源名稱 (ARN) 以存取 AWS 簡單儲存服務 (S3)、存取 Azure BLOB 儲存的 Azure 服務主體,或存取 Google 服務帳戶以存取 Google Cloud Platform (GCP) 資源。
使用 DBMS_CLOUD.EXPORT_DATA
進行匯出的注意事項:
-
如有需要,您可以提供的
query
參數可以是進階查詢,例如包含結合或子查詢的查詢。 -
以
compression
選項指定format
參數以壓縮輸出檔案。 -
當您不再需要匯出的檔案時,請使用
DBMS_CLOUD.DELETE_OBJECT
程序,或使用原生雲端物件儲存命令刪除檔案。
將資料匯出成 CSV 至雲端物件儲存
透過指定查詢,以 CSV 資料形式顯示從 Autonomous Database 將表格資料匯出至雲端物件儲存的步驟。
此匯出方法支援 Autonomous Database 支援的所有雲端物件存放區。您也可以使用 Amazon Resource Names (ARN) 存取 AWS Simple Storage Service (S3)、存取 Azure BLOB 儲存的 Azure 服務委派人,或使用 Google 服務帳戶存取 Google Cloud Platform (GCP) 資源。
使用 DBMS_CLOUD.EXPORT_DATA
進行匯出的注意事項:
-
如有需要,您可以提供的
query
參數可以是進階查詢,例如包含結合或子查詢的查詢。 -
以
compression
選項指定format
參數以壓縮輸出檔案。 -
當您不再需要匯出的檔案時,請使用
DBMS_CLOUD.DELETE_OBJECT
程序,或使用原生雲端物件儲存命令刪除檔案。
將資料匯出為 Parquet 至雲端物件儲存
顯示透過指定查詢,將 Autonomous Database 中的表格資料匯出至 Cloud Object Storage 作為 Parquet 資料的步驟。
此匯出方法支援 Autonomous Database 支援的所有雲端物件存放區,您可以使用 Oracle Cloud Infrastructure 資源主體存取您的 Oracle Cloud Infrastructure 物件存放區、Amazon 資源名稱 (ARN) 以存取 AWS 簡單儲存服務 (S3)、存取 Azure BLOB 儲存的 Azure 服務主體,或存取 Google 服務帳戶以存取 Google Cloud Platform (GCP) 資源。
使用 DBMS_CLOUD.EXPORT_DATA
進行匯出的注意事項:
-
如有需要,您可以提供的
query
參數可以是進階查詢,例如包含結合或子查詢的查詢。 -
以
compression
選項指定format
參數以壓縮輸出檔案。type
parquet
的預設compression
為snappy
。 -
當您不再需要匯出的檔案時,請使用
DBMS_CLOUD.DELETE_OBJECT
程序,或使用原生雲端物件儲存命令刪除檔案。 -
請參閱 DBMS_CLOUD 將 Oracle 資料類型封裝至 Parquet 對應,瞭解 Oracle 類型與 Parquet 類型對應的詳細資訊。
不支援下列類型,或限制使用
DBMS_CLOUD.EXPORT_DATA
匯出 Parquet 的支援:Oracle 類型 備註 BFILE
不支援
BLOB
不支援
DATE
支援下列限制:
DATE
格式僅支援日期、月份及年度。不支援小時、分鐘和秒。如需將
DATE
匯出至 Parquet 之 NLS 格式限制的詳細資訊,請參閱 DBMS_CLOUD Package Oracle Data Type to Parquet Mapping 。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 Package Oracle Data Type to Parquet Mapping 。
將資料匯出為 XML 至雲端物件儲存
顯示透過指定查詢,將 Autonomous Database 中的表格資料匯出至 Cloud Object Storage 作為 XML 資料的步驟。
此匯出方法支援 Autonomous Database 支援的所有雲端物件存放區。您也可以使用 Amazon Resource Names (ARN) 存取 AWS Simple Storage Service (S3)、存取 Azure BLOB 儲存的 Azure 服務委派人,或使用 Google 服務帳戶存取 Google Cloud Platform (GCP) 資源。
使用 DBMS_CLOUD.EXPORT_DATA
進行匯出的注意事項:
-
如有需要,您可以提供的
query
參數可以是進階查詢,例如包含結合或子查詢的查詢。 -
以
compression
選項指定format
參數以壓縮輸出檔案。 -
當您不再需要匯出的檔案時,請使用
DBMS_CLOUD.DELETE_OBJECT
程序,或使用原生雲端物件儲存命令刪除檔案。
文字輸出的檔案命名 ( 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]
-
FileNamePrefix :(選擇性) 如果提供 FileNamePrefix ,
DBMS_CLOUD.EXPORT_DATA
會使用檔案名稱首碼來產生結果的檔案名稱。FileNamePrefix 是使用在file_uri_list
參數值中儲存設定 (Bucket) 或目錄名稱之後提供的文字來指定。您無法為
file_uri_list
中的 FileNamePrefix 提供多個值。 -
client_info _ module _ action :如果
file_uri_list
參數未提供檔案名稱前置碼,則DBMS_CLOUD.EXPORT_DATA
會使用 client_info 、應用程式 module 和 action 的組合作為檔案名稱前置碼 (當此資訊可用時)。程序會從執行查詢之資料庫階段作業的應用程式資訊取得這些名稱。請參閱 Oracle Database 19c PL/SQL Packages and Types Reference 中的 DBMS_APPLICATION_INFO 或 Oracle Database 23ai PL/SQL Packages and Types Reference ,瞭解 client_info 、 module 名稱和動作名稱的相關資訊。如果
file_uri_list
未提供檔案名稱前置碼,而且沒有可用的資料庫階段作業屬性,DBMS_CLOUD.EXPORT_DATA
會使用檔案名稱前置碼 "data
"。 -
sequenceNum :與
DBMS_CLOUD.EXPORT_DATA
查詢相關聯的序號。視查詢而定,資料庫服務以及 ECPU (如果您的資料庫使用 OCPU,則為 OCPU) 數目有一或多個 sequenceNum 。此外,視結果大小而定,每個 sequenceNum 都會有一或多個輸出檔案。 -
timestamp :上傳檔案時的時戳。
-
format_extension :預設值取決於
format
type
值:- CSV 格式:
.csv
- JSON 格式:
.json
- PARQUET 格式
.parquet
- XML 格式:
.xml
如需詳細資訊,請參閱 EXPORT_DATA 的 DBMS_CLOUD 套裝軟體格式選項中
format
選項fileextension
的說明。 - CSV 格式:
-
compression_extension :當您將
format
參數與compression
選項搭配值gzip
時,這是"gz"
。當
format
type
為parquet
時,也支援compression
值snappy
,此為預設值。
例如,下列 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
產生的輸出檔案數目取決於 Autonomous Database 執行處理中的結果大小、資料庫服務以及 ECPU (OCPU,如果您的資料庫使用 OCPU) 數目。
在下列範例中,file_uri_list
參數不包含檔案名稱前置碼,且提供值為 gzip
的 compression
參數:
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_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
程序中的檔案名稱前置碼在 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
命名檔案時的備註:
-
DBMS_CLOUD.EXPORT_DATA
不會建立儲存桶或目錄。 -
DBMS_CLOUD.EXPORT_DATA
產生的檔案數目取決於 ECPU (OCPU,如果您的資料庫使用 OCPU) 的數目、資料庫服務以及結果資料的大小。 -
在
file_uri_list
參數中提供目錄物件名稱時,適用下列項目:-
提供的目錄必須存在,而且您必須具備該目錄的
WRITE
存取權。 -
以雙引號括住時,目錄名稱會區分大小寫。
-
不能提供證明資料名稱參數。
-
-
對於 CSV、JSON 或 XML 輸出,在產生的檔案包含 10MB 的資料時,預設會建立新的輸出檔案。不過,如果結果資料少於 10MB,您可能會有多個輸出檔案,視資料庫服務和 Autonomous Database 執行處理的 ECPU 數目而定 (如果您的資料庫使用 OCPU,則為 OCPU)。
CSV、JSON 或 XML 的預設輸出檔案區塊大小為 10MB。您可以使用
format
參數maxfilesize
選項來變更此值。如需詳細資訊,請參閱 EXPORT_DATA 的 DBMS_CLOUD 套件格式選項。 -
對於 Parquet 輸出,每個產生的檔案小於 128MB,可能會產生多個輸出檔案。不過,如果結果資料少於 128MB,則視資料庫服務和 Autonomous Database 執行處理的 ECPU 數目而定,您可能會有多個輸出檔案 (如果資料庫使用 OCPU,則為 OCPU)。
format
參數maxfilesize
選項不適用於 Parquet 檔案。