我是否需要每天为AWS Dynamo DB设置备份数据管道?

时间:2014-02-07 02:01:43

标签: amazon-web-services amazon-dynamodb amazon-data-pipeline

我正在考虑将AWS DynamoDB用于我们正在构建的应用程序。据我所知,设置一个将数据从DynamoDB导出到S3的备份作业涉及一个带有EMR的数据管道。但我的问题是,我是否需要担心在第1天设置备份作业?数据丢失的可能性有多大?

4 个答案:

答案 0 :(得分:2)

这是非常主观的。 IMO你现在不应该担心它们。 您还可以使用更简单的解决方案other than pipleline。也许这将是一个很好的起点。

将DynamoDB作为我们的主要生产数据库运行了一年多之后,我可以说这是一次很棒的体验。没有数据丢失,也没有停机时间。我们唯一关心的事情是SDK有时会行为不端并调整预配置的吞吐量。

答案 1 :(得分:2)

在其他地方有多个用例DynamoDB表数据副本:

(1)每天在S3中创建备份,以便在意外删除数据或更糟糕的情况下恢复表(代码错误?)

(2)在S3中创建备份,成为分析工作流程的起点。在S3中备份此数据后,您可以将其与RDBMS系统(RDS或内部部署)或日志文件中的其他S3数据相结合。数据集成工作流可能涉及最终将EMR作业加载到Redshift(ETL)以进行BI查询。或直接将这些加载到Redshift中以执行更多的ELT样式 - 因此转换发生在Redshift

(3)将数据(整个集合或子集)从一个表复制到另一个表(在同一区域或另一个区域内) - 因此可以对旧表进行垃圾收集以实现受控增长和成本控制。这种表到表的副本也可以用作易于消费的备份表,例如区域特定的可用性问题。或者,使用此机制将数据从一个区域复制到另一个区域,以便从更靠近使用它的DynamoDB客户端应用程序的端点提供服务。

(4)从S3定期恢复数据。可能将后分析数据加载回DynamoDB,以便在具有高并发性,低延迟要求的在线应用程序中为其提供服务。

AWS Data Pipeline通过灵活的数据传输解决方案(使用下面的EMR)帮助安排所有这些方案。

使用这些解决方案时需要注意的是,这不是时间点备份:因此,备份期间发生的基础表的任何更改都可能不一致。

答案 2 :(得分:1)

答案 3 :(得分:0)

我建议设置一个数据管道,每天备份到一个S3存储桶 - 如果你想要真正安全。

Dynamo数据库本身可能非常可靠,但是没有人可以保护您免受意外删除(如果您或您的同事错误地从控制台删除了一个表,那该怎么办)。所以我建议每天设置一个备份 - 它没有任何成本这么多。

您可以告诉管道在备份过程中只消耗25%的容量,这样您的真实用户就不会看到任何延迟。每个备份都是“完整”(非增量),因此在某些定期间隔中,如果您担心存储,则可以删除一些旧备份。