Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database DynamoDB:如何获得GSI分区键的唯一值?_Database_Duplicates_Nosql_Amazon Dynamodb - Fatal编程技术网

Database DynamoDB:如何获得GSI分区键的唯一值?

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

在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                                       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来存储记录


这与

中使用的解决方案基本相同,谢谢您令人信服的回答!