使用 DBMS_CLOUD.EXPORT_DATA 將資料匯出為物件存放區
使用 DBMS_CLOUD.EXPORT_DATA 將資料匯出為文字,從自治式 AI 資料庫匯出至雲端物件存放區。文字格式匯出選項為 CSV、JSON 或 XML。
將 JSON 資料匯出至雲端物件儲存
顯示透過指定查詢,將表格資料從您的自治式 AI 資料庫匯出至雲端物件儲存作為 JSON 資料的步驟。
此匯出方法支援 Autonomous Database 支援的所有雲端物件存放區,而且您可以使用 Oracle Cloud Infrastructure 資源委派人來存取 Oracle Cloud Infrastructure 物件存放區、Amazon 資源名稱 (ARN) 以存取 AWS Simple Storage Service (S3)、存取 Azure BLOB 儲存體的 Azure 服務委派人,或存取 Google Cloud Platform (GCP) 資源的 Google 服務帳戶。
-
連線至您的自治式 AI 資料庫執行處理。
請參閱連線至自治式 AI 資料庫以瞭解詳細資訊。
-
使用
DBMS_CLOUD.CREATE_CREDENTIAL儲存您的雲端物件儲存證明資料。舉例而言:
BEGIN DBMS_CLOUD.CREATE_CREDENTIAL( credential_name => 'DEF_CRED_NAME', username => 'user1@example.com', password => 'password' ); END; /您為
username和password提供的值取決於使用的雲端物件儲存服務。 -
執行
DBMS_CLOUD.EXPORT_DATA並指定值為json的format參數type,以將結果匯出為雲端物件儲存上的 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 匯出的注意事項:
-
您提供的
query參數可以是進階查詢 (如有需要),例如包含結合或子查詢的查詢。 -
使用
compression選項指定format參數以壓縮輸出檔案。 -
使用
encryption選項指定format參數,以在匯出時加密資料。請參閱匯出至物件儲存時加密資料以瞭解詳細資訊。 -
當您不再需要匯出的檔案時,請使用
DBMS_CLOUD.DELETE_OBJECT程序或使用原生雲端物件儲存命令來刪除檔案。
將資料的 CSV 匯出至雲端物件儲存
顯示透過指定查詢,將表格資料從您的自治式 AI 資料庫匯出至雲端物件儲存作為 CSV 資料的步驟。
此匯出方法支援自治式 AI 資料庫支援的所有雲端物件存放區。您也可以使用 Amazon 資源名稱 (ARN) 存取 AWS Simple Storage Service (S3)、存取 Azure BLOB 儲存體的 Azure 服務委派人,或存取 Google Cloud Platform (GCP) 資源的 Google 服務帳戶。
-
連線至您的自治式 AI 資料庫執行處理。
請參閱連線至自治式 AI 資料庫以瞭解詳細資訊。
-
使用
DBMS_CLOUD.CREATE_CREDENTIAL儲存您的雲端物件儲存證明資料。舉例而言:
BEGIN DBMS_CLOUD.CREATE_CREDENTIAL( credential_name => 'DEF_CRED_NAME', username => 'user1@example.com', password => 'password' ); END; /您為
username和password提供的值取決於使用的雲端物件儲存服務。 -
執行
DBMS_CLOUD.EXPORT_DATA並指定值為csv的format參數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 匯出的注意事項:
-
您提供的
query參數可以是進階查詢 (如有需要),例如包含結合或子查詢的查詢。 -
使用
compression選項指定format參數以壓縮輸出檔案。 -
使用
encryption選項指定format參數,以在匯出時加密資料。請參閱匯出至物件儲存時加密資料以瞭解詳細資訊。 -
當您不再需要匯出的檔案時,請使用
DBMS_CLOUD.DELETE_OBJECT程序或使用原生雲端物件儲存命令來刪除檔案。
將資料匯出為 Parquet 到雲端物件儲存
顯示透過指定查詢,將表格資料從您的自治式 AI 資料庫匯出至雲端物件儲存作為 Parquet 資料的步驟。
此匯出方法支援 Autonomous Database 支援的所有雲端物件存放區,而且您可以使用 Oracle Cloud Infrastructure 資源委派人來存取 Oracle Cloud Infrastructure 物件存放區、Amazon 資源名稱 (ARN) 以存取 AWS Simple Storage Service (S3)、存取 Azure BLOB 儲存體的 Azure 服務委派人,或存取 Google Cloud Platform (GCP) 資源的 Google 服務帳戶。
-
連線至您的自治式 AI 資料庫執行處理。
請參閱連線至自治式 AI 資料庫以瞭解詳細資訊。
-
使用
DBMS_CLOUD.CREATE_CREDENTIAL儲存您的雲端物件儲存證明資料。舉例而言:
BEGIN DBMS_CLOUD.CREATE_CREDENTIAL( credential_name => 'DEF_CRED_NAME', username => 'user1@example.com', password => 'password' ); END; /您為
username和password提供的值取決於使用的雲端物件儲存服務。 -
執行
DBMS_CLOUD.EXPORT_DATA並指定值為parquet的format參數type,以將結果匯出為 Cloud Object Storage 上的 parquet 檔案。若要產生 parquet 輸出檔案,
file_uri_list參數有兩個選項:-
將
file_uri_list值設為雲端物件儲存上現有儲存桶的 URL。 -
將
file_uri_list值設為您雲端物件儲存上現有儲存桶的 URL,並包含產生匯出之 parquet 檔案檔案名稱時所要使用的檔案名稱前置碼。
如果您未在
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 匯出的注意事項:
-
您提供的
query參數可以是進階查詢 (如有需要),例如包含結合或子查詢的查詢。 -
使用
compression選項指定format參數以壓縮輸出檔案。typeparquet的預設compression為snappy。 -
當您不再需要匯出的檔案時,請使用
DBMS_CLOUD.DELETE_OBJECT程序或使用原生雲端物件儲存命令來刪除檔案。 -
請參閱 DBMS_CLOUD Package Oracle Data Type to Parquet Mapping ,瞭解 Oracle Type to Parquet Type 對映的詳細資訊。
下列類型不支援,或支援匯出 Parquet 與
DBMS_CLOUD.EXPORT_DATA:Oracle 類型 備註 BFILE不支援 BLOB不支援 DATE支援下列限制: DATE格式僅支援日期、月份及年度。不支援小時、分鐘和秒。
請參閱 DBMS_CLOUD Package Oracle Data Type to Parquet Mapping ,瞭解將DATE匯出至 Parquet 的 NLS 格式限制詳細資訊。INTERVAL DAY TO SECOND支援並被視為內部字串 INTERVAL YEAR TO MONTH支援並被視為內部字串 LONG不支援 LONG RAW不支援 NUMBER支援下列限制:
- 最大精確度為 38 且小數位數等於小數位數。
- 如果未提供資料欄NUMBER類型的小數位數與小數位數,則預設使用小數位數為 38 且小數位數為 20。
-NUMBER類型不支援負數小數位數。Object Types不支援 TIMESTAMP支援下列限制:
- 如果有多個不同精確度的資料欄,將採用最高精確度。
-TIMESTAMP WITH TIME ZONEOracle 資料類型將只使用時戳。
請參閱 DBMS_CLOUD Package Oracle Data Type to Parquet Mapping ,瞭解將TIMESTAMP匯出至 Parquet 的 NLS 格式限制詳細資訊。
將資料匯出為 XML 至雲端物件儲存
顯示透過指定查詢,將表格資料從您的自治式 AI 資料庫匯出至雲端物件儲存作為 XML 資料的步驟。
此匯出方法支援自治式 AI 資料庫支援的所有雲端物件存放區。您也可以使用 Amazon 資源名稱 (ARN) 存取 AWS Simple Storage Service (S3)、存取 Azure BLOB 儲存體的 Azure 服務委派人,或存取 Google Cloud Platform (GCP) 資源的 Google 服務帳戶。
-
連線至您的自治式 AI 資料庫執行處理。
請參閱連線至自治式 AI 資料庫以瞭解詳細資訊。
-
使用
DBMS_CLOUD.CREATE_CREDENTIAL儲存您的雲端物件儲存證明資料。舉例而言:
BEGIN DBMS_CLOUD.CREATE_CREDENTIAL( credential_name => 'DEF_CRED_NAME', username => 'user1@example.com', password => 'password' ); END; /您為
username和password提供的值取決於使用的雲端物件儲存服務。 -
執行
DBMS_CLOUD.EXPORT_DATA並指定值為xml的format參數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 匯出的注意事項:
-
您提供的
query參數可以是進階查詢 (如有需要),例如包含結合或子查詢的查詢。 -
使用
compression選項指定format參數以壓縮輸出檔案。 -
使用
encryption選項指定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 26ai PL/SQL Packages and Types Reference ,瞭解 client_info 、模組 名稱和動作名稱的相關資訊。如果
file_uri_list未提供檔案名稱前置碼,且資料庫階段作業屬性無法使用,則DBMS_CLOUD.EXPORT_DATA會使用檔案名稱前置碼 "data"。 -
sequenceNum :與
DBMS_CLOUD.EXPORT_DATA查詢相關聯的序號。視查詢而定,資料庫服務和 ECPU 數目 (如果您的資料庫使用 OCPU,則為 OCPU) 會有一或多個 sequenceNum 。此外,視結果的大小而定,每個 sequenceNum 會有一或多個輸出檔案。 -
timestamp :上傳檔案時的時戳。
-
format_extension :預設值取決於
formattype值:-
CSV 格式:
.csv -
JSON 格式:
.json -
PARQUET 格式
.parquet -
XML 格式:
.xml
如需詳細資訊,請參閱 DBMS_CLOUD Package Format Options for EXPORT_DATA 中
format選項fileextension的描述。 -
-
compression_extension :當您將
format參數與compression選項搭配值gzip時,此為"gz"。當
formattype為parquet時,也支援compression值snappy,此為預設值。
例如,在 file_uri_list 參數中將下列 DBMS_CLOUD.EXPORT_DATA 程序中的檔案名稱前置碼指定為 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 參數未包含檔案名稱前置碼,且提供 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_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
例如,在 file_uri_list 參數中將下列 DBMS_CLOUD.EXPORT_DATA 程序中的檔案名稱前置碼指定為 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,則為 OCPU)、資料庫服務和結果資料的大小。 -
在
file_uri_list參數中提供目錄物件名稱時,會套用下列項目:-
提供的目錄必須存在,且您必須具有目錄的
WRITE存取權。 -
以雙引號括住時,目錄名稱會區分大小寫。
-
不能提供證明資料名稱參數。
-
-
對於 CSV、JSON 或 XML 輸出,當產生的檔案包含 10MB 的資料時,預設會建立新的輸出檔案。不過,如果結果資料少於 10MB,則可能會有多個輸出檔案,這取決於資料庫服務和 Autonomous Database 執行處理的 ECPU 數目 (如果資料庫使用 OCPU,則為 OCPU)。
CSV、JSON 或 XML 的預設輸出檔案區塊大小為 10MB。您可以使用
format參數maxfilesize選項來變更這個值。請參閱 DBMS_CLOUD Package Format Options for EXPORT_DATA 以瞭解詳細資訊。 -
對於 Parquet 輸出,每個產生的檔案都小於 128MB,而且可以產生多個輸出檔。不過,如果結果資料少於 128MB,則可能會有多個輸出檔案,這取決於資料庫服務和 Autonomous Database 執行處理的 ECPU 數目 (如果資料庫使用 OCPU,則為 OCPU)。
format參數maxfilesize選項不適用於 Parquet 檔案。