Amazon dynamodb 亚马逊DynamoDB GSI';如果主表中的属性用作GSI中的键,是否删除GSI行?

Amazon dynamodb 亚马逊DynamoDB GSI';如果主表中的属性用作GSI中的键,是否删除GSI行?,amazon-dynamodb,Amazon Dynamodb,假设我在DynamoDB中有一个表,如果我的GSI的键基于一个属性,但是我删除或更改了该属性,那么GSI表的行为是什么?它会删除并更改GSI表中的键吗 表格名称:表格 分区键:名称 属性1:NumberOfLegs 属性1:哺乳动物大小 GSI名称:NumberOfLegsGSI PartitionKey:NumberOfLegs 排序键:哺乳动物大小 现在假设我有这样的表数据: 哺乳动物名称:人类,哺乳动物腿数:2,哺乳动物大小:5 哺乳动物名称:狗,哺乳动物腿数:4,哺乳动物大小:1 这

假设我在DynamoDB中有一个表,如果我的GSI的键基于一个属性,但是我删除或更改了该属性,那么GSI表的行为是什么?它会删除并更改GSI表中的键吗

表格名称:表格
分区键:名称
属性1:NumberOfLegs
属性1:哺乳动物大小


GSI名称:NumberOfLegsGSI
PartitionKey:NumberOfLegs
排序键:哺乳动物大小


现在假设我有这样的表数据:

哺乳动物名称:人类,哺乳动物腿数:2,哺乳动物大小:5
哺乳动物名称:狗,哺乳动物腿数:4,哺乳动物大小:1

这意味着我的GSI表现在

哺乳动物数量腿:2只,哺乳动物大小:5只
哺乳动物数量腿:4只,哺乳动物大小:1只

如果我将人类的哺乳动物大小更改为2,这是否意味着我的GSIs中会有这个

哺乳动物数量腿:2只,哺乳动物大小:2只
哺乳动物数量腿:4只,哺乳动物大小:1只

还是加在上面就可以了

哺乳动物数量腿:2只,哺乳动物大小:5只
哺乳动物数量腿:2只,哺乳动物大小:2只
哺乳动物数量腿:4只,哺乳动物大小:1只


我认为这个问题也可以表述为,GSI的映射是否与原始表在行的基础上正好是1-1,或者是否存在GSI创建额外行而不是删除/修改现有行的情况?

全局二级索引由DynamoDB使用最终一致的模型异步更新。这意味着,即使主表上的数据被更新,它也不会立即反映在GSI中。然而,对GSI的更新是一个两步过程,将有一个写入操作来删除以前的项,另一个写入新项。所以最后我们将以


DemanualNumberOfLegs:2,DemanualSize:2,DemanualNumberOfLegs:4,DemanualSize:1

全局二级索引由DynamoDB使用最终一致的模型异步更新。这意味着,即使主表上的数据被更新,它也不会立即反映在GSI中。然而,对GSI的更新是一个两步过程,将有一个写入操作来删除以前的项,另一个写入新项。最后我们将得到哺乳动物NumberOfLegs:2,哺乳动物大小:2,哺乳动物NumberOfLegs:4,哺乳动物大小:1