本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
從 Amazon S3 匯入資料庫執行個體的 Aurora Postgre 料SQL庫叢集 SQL
您可以使用 aws_s3 擴充功能的 table_import_from_s3
函數,由 Amazon S3 儲存貯體匯入資料。如需參考資訊,請參閱 aws_s3.table_import_from_s3。
注意
下列範例使用IAM角色方法來允許存取 Amazon S3 儲存貯體。因此,aws_s3.table_import_from_s3
函數呼叫不包含登入資料參數。
以下顯示一個典型範例。
postgres=>
SELECT aws_s3.table_import_from_s3( 't1', '', '(format csv)', :'s3_uri' );
參數如下:
-
t1
— Postgre 資料SQL庫叢集中要複製資料的資料表名稱。 -
''
– 資料庫表格之中選用的欄清單。您可使用此參數指出哪些 S3 資料欄要置於哪些表格欄。如果沒有指定欄,所有欄都會複製到表格中。如需使用欄清單的範例,請參閱 匯入使用自訂分隔符號的 Amazon S3 檔案。 -
(format csv)
— 後置參SQLCOPY數。複製程序會使用 Postgre SQL COPY指令的引數和格式來匯入資料。格式的選擇包括逗號分隔值 (CSV),如本範例所示,文字和二進位。預設為文字。 -
s3_uri
– 包含識別 Amazon S3 檔案資訊的結構。如需使用 aws_commons.create_s3_uri 函數來建立s3_uri
結構的範例,請參閱 從 Amazon S3 資料匯入資料的概觀。
如需此函數狀態的詳細資訊,請參閱 aws_s3.table_import_from_s3。
aws_s3.table_import_from_s3
函數傳回文字。若要指定從 Amazon S3 儲存貯體匯入的其他檔案類型,請參閱下列其中一個範例。
注意
匯入 0 位元組檔案將導致錯誤。
匯入使用自訂分隔符號的 Amazon S3 檔案
下列範例顯示如何匯入使用自訂分隔符號的檔案。其中也顯示如何使用 column_list
函數的 aws_s3.table_import_from_s3 參數,控制資料放置於資料庫表格的位置。
我們在此範例假設下列資訊整理至 Amazon S3 檔案之中的縱線分隔欄。
1|foo1|bar1|elephant1
2|foo2|bar2|elephant2
3|foo3|bar3|elephant3
4|foo4|bar4|elephant4
...
匯入使用自訂分隔符號的檔案
-
在資料庫為匯入資料建立表格。
postgres=>
CREATE TABLE test (a text, b text, c text, d text, e text); -
使用以下的 aws_s3.table_import_from_s3 函數格式由 Amazon S3 檔案匯入資料。
您可在 aws_commons.create_s3_uri 函數呼叫之中內嵌
aws_s3.table_import_from_s3
函數呼叫以指定檔案。postgres=>
SELECT aws_s3.table_import_from_s3( 'test', 'a,b,d,e', 'DELIMITER ''|''', aws_commons.create_s3_uri('amzn-s3-demo-bucket
', 'pipeDelimitedSampleFile', 'us-east-2') );
資料目前位於下列欄的表格中。
postgres=>
SELECT * FROM test;a | b | c | d | e ---+------+---+---+------+----------- 1 | foo1 | | bar1 | elephant1 2 | foo2 | | bar2 | elephant2 3 | foo3 | | bar3 | elephant3 4 | foo4 | | bar4 | elephant4
匯入 Amazon S3 壓縮 (gzip) 檔案
下列範例顯示如何由以 gzip 壓縮的 Amazon S3 匯入檔案。匯入的檔案需具有以下 Amazon S3 中繼資料:
-
索引鍵:
Content-Encoding
-
值:
gzip
如果您使用 AWS Management Console,中繼資料通常由系統套用。如需使用將檔案上傳到 Amazon S3 的相關資訊 AWS Management Console,該 AWS CLI,或參閱 Amazon 簡單儲存服務使用者指南中的上傳物件。API
如需 Amazon S3 中繼資料的詳細資訊以及系統所提供中繼資料的詳細資訊,請參閱《Amazon Simple Storage Service 使用者指南》中的在 Amazon S3 主控台中編輯物件中繼資料。
將 gzip 檔案匯入至 Postgre 資料庫執行個體的 Aurora Postgre SQL 資料SQL庫叢集 RDS下所示。
postgres=>
CREATE TABLE test_gzip(id int, a text, b text, c text, d text);
postgres=>
SELECT aws_s3.table_import_from_s3(
'test_gzip', '', '(format csv)',
'amzn-s3-demo-bucket
', 'test-data.gz', 'us-east-2'
);
匯入編碼的 Amazon S3 檔案
下列範例顯示如何由採用 Windows-1252 編碼的 Amazon S3 匯入檔案。
postgres=>
SELECT aws_s3.table_import_from_s3(
'test_table', '', 'encoding ''WIN1252''',
aws_commons.create_s3_uri('amzn-s3-demo-bucket
', 'SampleFile', 'us-east-2')
);