我有一个同时具有 HashKey 和 RangeKey 的表。
该表包含许多发送到设备的不同消息。
HashKey 是每个设备唯一的 ID,RangeKey 是消息发送时间的时间戳。
消息的属性之一是表示消息类型的 INT。
我要查找的是所有具有特定消息类型的唯一设备 ID 都曾出现在表中。
例如,假设有 100 个设备,每个设备有 100 条消息;总共 10 000 条消息。消息类型 7 很少见,在这 10 000 条消息中,只有 50 条消息属于类型 7,而这 50 条消息可能只发送到 20 个不同的设备。
是否有一种简单(且快速)的方法来获取曾经有过类型 7 消息的每个唯一设备 ID?
我知道我可以扫描表格,过滤消息类型,然后跟踪结果中出现的唯一设备 ID。但这有两个问题,扫描整个表很慢,而且当我只需要知道它是否曾经以该消息类型出现时,结果中也会多次出现相同的唯一设备 ID。(在这个例子中,这不是什么大问题,但有数以千万计的消息,我想避免在扫描结果中一遍又一遍地检查相同的设备 ID)
我可以用我没有想到的查询或 GSI 做些什么吗?