如何將 DynamoDB 資料表備份至 Amazon S3?

2 分的閱讀內容
0

我想使用 Amazon Simple Storage Service (Amazon S3) 備份我的 Amazon DynamoDB 資料表。

簡短描述

DynamoDB 提供兩種內建備份方法:

這兩種方法都適用於備份資料表以進行災難復原用途。但是,使用這些方法時,您無法將資料用於涉及資料分析或擷取、轉換和載入 (ETL) 任務的使用案例。DynamoDB 匯出至 S3 功能是最簡單的備份建立方法,建立的備份可供您在本機下載或搭配其他 AWS 服務使用。若要自訂建立備份的程序,您可以使用 Amazon EMR 或 AWS Glue。

解決方法

DynamoDB 匯出至 S3 功能

使用此功能時,您可以隨時在時間點復原時段內將資料從 Amazon DynamoDB 資料表匯出至 Amazon S3 儲存貯體。如需詳細資訊,請參閱將 DynamoDB 資料匯出至 Amazon S3

如需如何使用此功能的範例,請參閱將 Amazon DynamoDB 資料表資料匯出至 Amazon S3 中的資料湖,無需撰寫程式碼

使用匯出至 S3 功能可讓您以下列其他方式使用資料:

  • 在 S3 上對匯出的資料執行 ETL,然後將資料匯入回 DynamoDB
  • 保留歷史快照以進行稽核
  • 將資料與其他服務或應用程式整合
  • 從 DynamoDB 資料建立 S3 資料湖,然後分析來自各種服務的資料,例如 Amazon Athena、Amazon Redshift 或 Amazon SageMaker
  • 視需要對 Athena 或 Amazon EMR 的資料執行查詢,而不會影響 DynamoDB 容量

使用此功能時,請注意以下優點和缺點:

  • **優點:**此功能可讓您跨 AWS 區域和帳戶匯出資料,而無需建立自訂應用程式或撰寫程式碼。匯出不會影響生產資料表的讀取容量或可用性。
  • **缺點:**此功能只會以 DynamoDB JSON 或 Amazon Ion 格式匯出資料表資料。若要使用 S3 儲存貯體以原生方式重新匯入資料,請參閱從 Amazon S3 匯入 DynamoDB 資料。您也可以建立新範本,或使用 AWS Glue、Amazon EMR 或 AWS SDK 來重新匯入資料。

Amazon EMR

使用 Amazon EMR 將資料匯出至 S3 儲存貯體。您可以使用以下任一方法來執行此操作:

  • 使用 DynamoDBStorageHandler 針對 DynamoDB 資料表執行 Hive/Spark 查詢。如需詳細資訊,請參閱從 DynamoDB 匯出資料
  • 使用 GitHub 上的開放原始碼 emr-dynamodb-tool 匯出/匯入 DynamoDB 資料表。

使用這些方法時,請注意以下優點和缺點:

  • 優點:如果您是活躍的 Amazon EMR 使用者,並且熟悉 Hive 或 Spark,則使用這些方法可以比使用原生匯出至 S3 功能更好地管理組態。您也可以將現有叢集用於此用途。
  • **缺點:**這些方法需要您建立和維護 EMR 叢集。如果您使用 DynamoDBStorageHandler,那麼您必須熟悉 Hive 或 Spark。

AWS Glue

使用 AWS Glue 將您的資料表複製到 Amazon S3。如需詳細資訊,請參閱使用 AWS Glue 和 Amazon DynamoDB 匯出

  • **優點:**由於 AWS Glue 是無伺服器服務,因此您不需要建立和維護資源。您可以直接寫回 DynamoDB。匯出資料時,您可以為使用案例 (例如篩選和轉換) 新增自訂 ETL 邏輯。您也可以從 CSV、JSON、Parquet 或 ORC 中選擇您偏好的格式。如需詳細資訊,請參閱 AWS Glue 中輸入和輸出的資料格式選項
  • **缺點:**如果您選擇此選項,您必須知道如何使用 Spark。您也必須維護 AWS Glue ETL 任務的原始碼。如需詳細資訊,請參閱 "connectionType": "dynamodb"

若這些選項皆無法提供您所需的彈性,則可以使用 DynamoDB API 建立自己的解決方案。

相關資訊

在 DynamoDB 中請求匯出資料表

如何使用 AWS Step Functions 和 AWS Glue 將 Amazon DynamoDB 資料表匯出至 Amazon S3

AWS 官方
AWS 官方已更新 9 個月前