

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

# 搭配 Amazon S3 使用 DynamoDB 來匯出和匯入資料表資料
<a name="amazon-s3"></a>

Amazon DynamoDB 支援使用匯出至 Amazon S3 S3。您可以匯出 DynamoDB JSON 和 Amazon Ion 格式的資料。匯出的資料經過壓縮，可以使用 Amazon S3 金鑰或 AWS Key Management Service (AWS KMS) 金鑰進行加密。匯出資料表不會耗用資料表的讀取容量，也不會在匯出期間影響資料表的效能和可用性。您可以匯出至帳戶內的 S3 儲存貯體，或匯出至不同的帳戶，即使在不同的 AWS 區域中也是如此。執行匯出至 Amazon S3 之前，應在來源資料表上啟用Point-in-time復原 (PITR)。

Amazon DynamoDB 最近新增了支援，使用從 Amazon S3 S3 匯入資料表資料。先前，在您使用匯出至 S3 匯出資料表資料之後，您必須依賴擷取、轉換和載入 (ETL) 工具來剖析 S3 儲存貯體中的資料表資料、推斷結構描述，以及載入或複製到目標 DynamoDB 資料表。這是一個繁瑣的程序，當資料表資料結構隨著時間變更時， 並未提供靈活性。此外，使用 AWS Glue 等 ETL 工具會對基礎設施和匯入期間使用的寫入容量產生額外費用。

從 S3 匯入功能不會耗用目標資料表上的寫入容量，而且支援不同的資料格式，包括 DynamoDB JSON、Amazon Ion 和逗號分隔值 (CSV)。資料也可以是未壓縮或壓縮 (gzip 或 zstd) 格式。

您可以使用 AWS 管理主控台、AWS 命令列界面 (AWS CLI) 或 DynamoDB API 來執行匯入和匯出。

下圖顯示資料從來源帳戶中的 DynamoDB 移動到目標帳戶中的 S3 儲存貯體，然後移動到目標帳戶的 DynamoDB 執行個體。



![\[""\]](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/dynamodb-full-table-copy-options/images/dynamodb-s3-import.png)


從高層級而言，使用 Amazon S3 將 DynamoDB 資料表從一個帳戶匯出和匯入到另一個帳戶需要以下步驟：

1. 在目標帳戶中建立 S3 儲存貯體，並連接 S3 儲存貯體政策，以允許從來源帳戶存取。

1. 在來源帳戶中，在 DynamoDB 主控台上，選擇**匯出至 S3**，選取來源 DynamoDB 資料表，並在目標帳戶中指定 S3 儲存貯體。如需詳細資訊，請參閱 [DynamoDB 文件](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/S3DataExport_Requesting.html)。

1. 在目標帳戶中，在 DynamoDB 主控台上，選擇**從 S3 匯入**，然後在目標帳戶中指定 S3 儲存貯體。如需詳細資訊，請參閱 [DynamoDB 文件](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/S3DataImport.Requesting.html)。

**優點**
+ 這是無伺服器解決方案。
+ 此解決方案適用於大型資料集，最多可達 TB。
+ 它不會在來源和目的地資料表上消耗任何佈建的容量。
+ 不會影響來源資料表的效能或可用性。

**缺點**
+ 此功能目前不支援匯入至現有資料表。匯入程序會建立新的資料表。