3

我们正在寻找一种解决方案,它使用 DynamoDB 表的最小读/写单元来执行完整备份、增量备份和恢复操作。备份应存储在 AWS S3 中(对其他替代方案开放)。我们想到了几个选项,例如:

1) 使用 python 多处理和 boto 模块,我们能够执行完整的备份和恢复操作,它运行良好,但需要更多的 DynamoDB 读/写单元。

2) 使用 AWS Data Pipeline 服务,我们能够执行完整备份和还原操作。

3) 使用 Dynamo Streams 和 kinesis Adapter/Dynamo Streams 和 Lambda 函数,我们能够执行增量备份。

完整备份、增量备份和还原操作是否还有其他替代方法。主要限制/需要是通过利用 DynamoDb 表的最小读/写单元来获得可扩展的解决方案。

4

2 回答 2

1

选项 #1 和 #2 几乎相同 - 都Scan在 DynamoDB 表上执行操作,从而消耗最大数量。的 RCU。

选项 #3 将保存 RCU,但恢复成为一项挑战。如果一条记录多次更新,您将在 S3 备份中拥有它的多个副本,因为记录更新将在 DynamoDB 流中出现两次。因此,在恢复时,您需要选择最新的记录。您还需要正确处理已删除的记录。

如果还原频率较低,则应选择选项 #3,在这种情况下,您可以在需要时对增量备份运行 EMR 作业。否则,您应该选择#1 或#2。

于 2017-02-02T18:42:51.160 回答
0

按需备份是 DynamoDB 服务中内置的一项功能(可以像往常一样通过 API、AWS 管理控制台和 CLI 访问),它允许您在某个时间点对表进行完整备份。

此任务对您的表的性能或可用性没有影响。所有备份都会自动加密、编目、易于发现和保留,直到您明确删除它们。

此外,您可以随时将这些备份还原到新表。

除数据外,备份中还包括以下内容:

Global secondary indexes (GSIs)
Local secondary indexes (LSIs)
Streams
Provisioned read and write capacity

备份中不包括以下内容:

Auto scaling policies
AWS Identity and Access Management (IAM) policies
Amazon CloudWatch metrics and alarms
Tags
Stream settings
Time To Live (TTL) settings

我在这里写了更多信息和演练:https ://www.abhayachauhan.com/2017/12/dynamodb-scheduling-on-demand-backups/

于 2017-12-04T12:52:55.400 回答