是否可以在创建表后修改Rangekey列.例如添加新列/属性并为表分配RangeKey.尝试搜索但无法找到有关更改范围或哈希键的任何文章
rpm*_*rtz 25
不,遗憾的是,在DynamoDB中创建表后,无法更改散列键,范围键或索引.DynamoDB UpdateItemAPI文档清楚地表明无法修改索引.我无法在文档中的任何位置找到明确指出表键无法修改的引用,但目前它们无法更改.
请注意,除了散列和范围键之外,DynamoDB是无模式的,您可以将其他属性添加到新项目中而不会出现任何问题.不幸的是,如果您需要修改哈希键或范围键,则必须创建一个新表并迁移数据.
编辑(2014年1月):DynamoDB现在支持动态全局二级索引
Abh*_*han 10
要更改或创建额外的排序键,您需要创建一个新表并迁移到该表,因为这两项操作都无法在现有表上完成。
DynamoDB 流使我们能够在不停机的情况下迁移表。我这样做非常有效,我遵循的步骤是:
扫描在上一步中创建的 GSI(或整个表)并使用以下过滤器:
FilterExpression = "attribute_not_exists(Migrated)"
使用迁移标志更新表中的每个项目(即:“迁移”:{“S”:“0”},将其发送到 DynamoDB 流(使用 UpdateItem API,以确保不会发生数据丢失)。
注意:您可能希望在更新期间增加表上的写入容量单位。
遵循这些步骤应确保您没有数据丢失和停机时间。
我已经在我的博客上记录了这一点,并附有帮助代码:https : //www.abhayachauhan.com/2018/01/dynamodb-changed-table-schema/
| 归档时间: |
|
| 查看次数: |
16521 次 |
| 最近记录: |