亚马逊推荐的在生产DynamoDB中更改大型表的架构的方法是什么?
想象一个假设的情况,我们有一个表Person,主哈希密钥SSN.该表可能包含1000万个项目.
现在的消息是,由于身份盗窃的关键数量,这个假设国家的政府引入了另一个个人身份:唯一个人身份识别码,即UPI.
我们必须添加一个UPI列并更改Person表的模式,以便现在主哈希键是UPI.我们想要支持使用SSN的当前系统和使用UPI的新系统的一段时间,因此我们需要这两个列在Person表中共存.
亚马逊推荐的这种架构更改方式是什么?
Ale*_*kis 22
有几种方法,但首先您必须了解您无法更改现有表的架构.要获得不同的架构,您必须创建一个新表.您可以重用现有表,但结果与创建不同表的结果相同.
Abh*_*han 14
DynamoDB流使我们能够在不停机的情况下迁移表.我这样做非常有效,我遵循的步骤是:
扫描在上一步(或整个表)中创建的GSI并使用以下过滤器:
FilterExpression ="attribute_not_exists(已迁移)"
使用migrate标志更新表中的每个项目(即:"Migrated":{"S":"0"},将其发送到DynamoDB Streams(使用UpdateItem API,以确保不会发生数据丢失).
注意:您可能希望在更新期间增加表中的写入容量单位.
遵循这些步骤应确保您没有数据丢失且没有停机时间.
我在我的博客上记录了这一点,并提供了协助代码:https: //www.abhayachauhan.com/2018/01/dynamodb-changing-table-schema/
| 归档时间: |
|
| 查看次数: |
17074 次 |
| 最近记录: |