從 Amazon S3 匯入資料庫執行個體的 Aurora Postgre 料SQL庫叢集 SQL - Amazon Aurora

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

從 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 ...
匯入使用自訂分隔符號的檔案
  1. 在資料庫為匯入資料建立表格。

    postgres=> CREATE TABLE test (a text, b text, c text, d text, e text);
  2. 使用以下的 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') );
  翻译: