本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
從適用於 PostgreSQL 資料庫執行個體的 Aurora Postgre 資料庫叢集匯出資料至 Amazon S3
您可以從 Aurora PostgreSQL 資料庫叢集的資料,並將其直接匯出至存放在 Amazon S3 儲存貯體中的檔案。若要執行此作業,請先安裝 Aurora PostgreSQL aws_s3
延伸模組。此擴充功能提供函數,可用於匯出資料至 Amazon S3。接著,您可以了解如何安裝擴充功能,以及如何將資料匯出至 Amazon S3。
您可以從佈建的 或 匯出 Aurora Serverless v2 資料庫執行個體。不支援這些步驟 Aurora Serverless v1.
注意
不支援跨帳戶匯出至 Amazon S3。
所有目前可用的 Aurora PostgreSQL 版本都支援將資料匯出至 Amazon Simple Storage Service。如需詳細的版本資訊,請參閱 Aurora PostgreSQL 版本備註中的 Amazon Aurora Postgre 更新。 SQL
如果您沒有為匯出設定儲存貯體,請參閱下列主題 Amazon Storage Service 使用者指南。
根據預設,從 Aurora PostgreSQL 匯出至 Amazon S3 的資料會使用伺服器端加密 AWS 受管金鑰。或者,您可以使用您已建立的客戶受管金鑰。如果您使用儲存貯體加密,Amazon S3 儲存貯體必須使用 AWS Key Management Service (AWS KMS) 金鑰 (SSE-) 加密KMS。目前不支援使用 Amazon S3 受管金鑰 (SSE-S3) 加密的儲存貯體。
注意
您可以使用 AWS Management Console AWS CLI或 Amazon 將資料庫和資料庫叢集快照資料儲存至 Amazon S3RDSAPI。如需詳細資訊,請參閱將資料庫叢集快照資料匯出至 Amazon S3。
主題
安裝 aws_s3 擴充功能
在您可以將 Amazon Simple Storage Service 與 Aurora PostgreSQL 資料庫叢集搭配使用之前,您需要安裝 aws_s3
擴充功能。此擴充功能提供將資料從 Aurora PostgreSQL 資料庫叢集an for Postgre 資料庫執行個體的寫入器至 Amazon S3 儲存貯體的函數。它還提供可從 Amazon S3 匯入資料的函數。如需詳細資訊,請參閱將資料從 Amazon S3 匯入至適用於 PostgreSQL 資料庫執行個體的 Aurora Postgre 資料庫叢集。aws_s3
擴充功能取決於 aws_commons
擴充功能中的一些輔助函數,需要時會自動安裝。
安裝 aws_s3
擴充功能
使用 psql (或 pgAdmin) 以具有
rds_superuser
權限的使用者身分,連線至 Aurora PostgreSQL 資料庫叢集的寫入器。若您在安裝程序期間保留預設名稱,則連接為postgres
。psql --host=
111122223333
.aws-region
.rds.amazonaws.com --port=5432 --username=postgres --password若要安裝擴充功能,請執行下列命令。
postgres=>
CREATE EXTENSION aws_s3 CASCADE;NOTICE: installing required extension "aws_commons" CREATE EXTENSION
若要驗證是否已經安裝擴充功能,可以使用 psql
\dx
中繼命令。postgres=>
\dxList of installed extensions Name | Version | Schema | Description -------------+---------+------------+--------------------------------------------- aws_commons | 1.2 | public | Common data types across AWS services aws_s3 | 1.1 | public | AWS S3 extension for importing data from S3 plpgsql | 1.0 | pg_catalog | PL/pgSQL procedural language (3 rows)
現在可以使用從 Amazon S3 匯入和匯出資料的功能。
確認您的 PostgreSQL 版本支援匯出至 Amazon S3
您可以使用 describe-db-engine-versions
命令,驗證您的 Aurora PostgreSQL 版本是否支援匯出至 Amazon S3。下列範例會檢查 10.14 版本是否可以匯出至 Amazon S3。
aws rds describe-db-engine-versions --region us-east-1 \ --engine aurora-postgresql --engine-version 10.14 | grep s3Export
如果輸出包含字串 "s3Export"
,則引擎支援 Amazon S3 匯出。否則,引擎不支援它們。
將資料匯出至 Amazon S3 的概觀
若要將存放在 Aurora PostgreSQL 資料庫中的資料匯出至 Amazon S3 儲存貯體,請使用下列程序。
將 Postgre 資料的 AuroraSQL 匯出至 S3
-
識別用於匯出資料的 Amazon S3 檔案路徑。如需此程序的詳細資訊,請參閱指定要匯出的 Amazon S3 檔案路徑。
-
提供許可,以存取 Amazon S3 儲存貯體。
若要將資料匯出至 Amazon S3 檔案,請授予 Aurora PostgreSQL 資料庫叢集許可,以存取匯出將用於儲存的 Amazon S3 儲存貯體。這麼做包括以下步驟︰
-
建立 IAM政策,提供您要匯出之 Amazon S3 儲存貯體的存取權。
-
建立 IAM 角色。
-
請將您建立的政策連接到您建立的角色。
-
將此 IAM 角色新增至您的資料庫叢集。
如需此程序的詳細資訊,請參閱設定對 Amazon S3 儲存貯體的存取權。
-
-
識別資料庫查詢以取得資料。呼叫
aws_s3.query_export_to_s3
函數來匯出查詢資料。完成上述的準備工作後,請使用 aws_s3.query_export_to_s3 函數將查詢結果匯出至 Amazon S3。如需此程序的詳細資訊,請參閱使用 aws_s3.query_export_to_s3 函數匯出查詢資料。
指定要匯出的 Amazon S3 檔案路徑
指定下列資訊來識別 Amazon S3 中您要匯出資料的位置:
-
儲存貯體名稱 – 儲存貯體是 Amazon S3 物件或檔案的容器。
如需使用 Amazon S3 儲存資料的詳細資訊,請參閱《Amazon Simple Storage Service 使用者指南》中的建立儲存貯體和檢視物件。
-
檔案路徑 – 檔案路徑會識別匯出項目儲存在 Amazon S3 儲存貯體中的位置。檔案路徑由以下項目組成:
-
識別虛擬資料夾路徑的選擇性路徑字首。
-
識別一或多個要儲存檔案的檔案字首。較大的匯出項目會儲存在多個檔案中,每個檔案的大小上限約為 6 GB。其他檔案名稱具有相同的檔案字首,但會加上
_part
。XX
代表 2,接著是 3,以此類推XX
舉例來說,具有
exports
資料夾和query-1-export
檔案字首的檔案路徑為/exports/query-1-export
。 -
-
AWS 區域 (選用) – Amazon S3 儲存貯體所在的 AWS 區域。如果您未指定 AWS 區域值,則 Aurora Amazon會將您的檔案儲存至與匯出資料庫叢集位於相同 AWS 區域中的 Amazon S3。
注意
目前, AWS 區域必須與匯出資料庫叢集的區域相同。
如需 AWS 區域名稱和相關值的清單,請參閱 區域和可用區域。
如果要保留匯出項目儲存之位置的 Amazon S3 檔案資訊,可以使用 aws_commons.create_s3_uri 函數建立 aws_commons._s3_uri_1
複合結構,如下所示。
psql=> SELECT aws_commons.create_s3_uri( '
amzn-s3-demo-bucket
', 'sample-filepath', 'us-west-2' ) AS s3_uri_1 \gset
您稍後可以在對 s3_uri_1
函數的呼叫中以參數形式提供此 aws_s3.query_export_to_s3 值。如需範例,請參閱「使用 aws_s3.query_export_to_s3 函數匯出查詢資料」。