Database DynamoDB:如何获得GSI分区键的唯一值?
在AWS DynamoDB中,我有一张桌子:Database DynamoDB:如何获得GSI分区键的唯一值?,database,duplicates,nosql,amazon-dynamodb,Database,Duplicates,Nosql,Amazon Dynamodb,在AWS DynamoDB中,我有一张桌子: ID (Partition key, GSI's Sort Key) OtherAttribute Name (GSI's Partition Key) 0 1/1/2020 Alice 1 2/1/2020 Bob 2
ID (Partition key, GSI's Sort Key) OtherAttribute Name (GSI's Partition Key)
0 1/1/2020 Alice
1 2/1/2020 Bob
2 3/1/2020 John
3 4/1/2020 Alice
4 5/1/2020 Bob
5 5/1/2020 Michael
而我的GSI将投影原始表的所有属性
现在我想最终得到一组数据结构{“Alice”,“Bob”,“John”,“Michael”}
我怎样才能做到这一点?似乎扫描操作本身不能选择唯一值,这意味着在我的情况下,扫描操作不能更快,对吗?然后,在我获得检索到的所有项目的列表之后,我需要对该列表进行操作,以提取列Name
的唯一值,这是唯一的方法吗
因此,我想我需要扫描整个表。这里有另一个问题,因为我的GSI项目的所有属性,将有任何区别扫描GSI或只是原始表?我的目标当然是尽快完成这项工作
有人能给点建议吗
谢谢 迪纳摩不支持这种操作 您可能需要重新考虑使用DDB 要在dynamo中高效地实现您想要的功能,唯一的方法是启用streams,并使用Lambda函数更新另一个DDB表或现有表中的另一组行 您只需使用类似于“DISTINCT_NAME”的分区键和排序键:NAME来存储记录
这与中使用的解决方案基本相同,谢谢您令人信服的回答!