如何将 DynamoDB 表备份到 Amazon S3?

上次更新时间:2020 年 6 月 16 日

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

简短描述

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

这两种方法都使用 Amazon S3。但是,您无法访问用于这些备份的 S3 存储桶。要创建可以下载到本地或在另一个 AWS 服务中使用的备份,请使用 AWS Data Pipeline、Amazon EMR 或 AWS Glue。

解决方法

Data Pipeline

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

  • 优点:这是最简单的方法。当您想使用尽可能少的 AWS 资源进行一次性备份时,请选择此方法。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 方法更多的控制。
  • 缺点:如果您刚开始使用 Amazon EMR,则这些方法不是最佳实践。如果您未使用 Amazon EMR 但希望使用连续、可自定义的解决方案,AWS Glue 方法是最佳实践——即使您不熟悉 AWS Glue。

AWS Glue

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

  • 优点:如果您希望还可以在另一个服务(例如 Amazon Athena)中使用自动、连续备份,此方法为最佳实践。
  • 缺点:如果您不熟悉 AWS Glue,此方法可能会非常困难,但可能不会像 Amazon EMR 方法一样具有挑战性。此方法通常比 Data Pipeline 方法贵。

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


这篇文章对您有帮助吗?

我们可以改进什么?


需要更多帮助?