如何将 DynamoDB 表备份到 Amazon S3?

上次更新日期:2020 年 12 月 17 日

如何使用 Amazon Simple Storage Service (Amazon S3) 备份 Amazon DynamoDB 表?

简短描述

DynamoDB 提供两种内置备份方法:

这两种方法都使用 Amazon S3。但是,您无法访问用于这些备份的 S3 存储桶。DynamoDB 导出到 S3 功能是最简单的备份创建方法。您可以将备份下载到本地,或在其他 AWS 服务中使用备份。如果您需要进一步定制,请改用 AWS Data Pipeline、Amazon EMR 或者 AWS Glue。

解决方法

DynamoDB 导出到 S3 功能

有关导出到 S3 功能的使用方式示例,请参阅将 Amazon DynamoDB 表数据导出到 Amazon S3 中的数据湖,无需编写代码

  • 优点:这是最简单的方法。借助此功能,您可以跨 AWS 区域和账户导出数据,无需构建自定义应用程序或编写代码。导出操作不会影响生产表的读取容量或可用性。您还可以设置自动导出,以确保定期备份数据。
  • 缺点:此功能只能以 DynamoDB JSON 或 Amazon Ion 格式导出表数据。如果您要以其他格式导出表数据,请改用以下任一方法。

Data Pipeline

使用 AWS Data Pipeline 可将表导出到处于相同账户或不同账户的 S3 存储桶。有关更多信息,请参阅使用 AWS Data Pipeline 导入和导出 DynamoDB 数据

  • 优点:Data Pipeline 使用 Amazon EMR 创建备份,并且为您完成脚本编写。您无需学习 Apache Hive 或 Apache Spark 就可以完成此任务。
  • 缺点:此方法不像其他方法一样可定制。如果您希望创建连续备份至 Amazon S3,请选择任一其他方法。此外,如果您想要在其他 AWS 服务中使用备份,这也不是最佳方法。

Amazon EMR

使用 Hive 将数据导出到 S3 存储桶。有关更多信息,请参阅从 DynamoDB 导出数据。或者,使用开源 emr-dynamodb-connector 在 Spark 或 Hive 中管理您自己的自定义备份方法。

  • 优点:如果您是活跃的 Amazon EMR 用户,并且习惯使用 Hive 或 Spark,则与 Data Pipeline 和导出到 S3 方法相比,这些方法可让您拥有更多控制权。
  • 缺点:如果您刚开始使用 Amazon EMR,则这些方法不是最佳实践。如果您未使用 Amazon EMR,但希望使用连续、可自定义的解决方案,则即使您不熟悉 AWS Glue,AWS Glue 方法也是最佳实践。

AWS Glue

使用 AWS Glue 将您的表复制到 Amazon S3。有关更多信息,请参阅如何使用 AWS Step Functions 和 AWS Glue 将 Amazon DynamoDB 表导出到 Amazon S3

  • 优点:如果您想要不使用 Amazon EMR 的持续、可定制的解决方案,这是最佳实践。
  • 缺点:如果您不熟悉 AWS Glue,此方法可能会非常困难,但可能不会像 Amazon EMR 方法一样具有挑战性。此方法通常比 Data Pipeline 方法贵。

如果这些选项都不能提供您想要的灵活性,请使用 DynamoDB API 创建您自己的解决方案。


这篇文章对您有帮助吗?


您是否需要账单或技术支持?