Indexing 如何使用BatchGetItem为DynamoDB中的多个键每次获取一组10条记录?

Indexing 如何使用BatchGetItem为DynamoDB中的多个键每次获取一组10条记录?,indexing,amazon-dynamodb,Indexing,Amazon Dynamodb,用例:我收到来自不同客户端的多个请求。因此,我需要将这些请求存储在一个数据库(最好是DynamoDB)中,按照传入时间的顺序对它们进行排序,并在同一时刻为所有客户端获取10个请求集 例如:如果有5个客户机:C1、C2、C3、C4、C5,并且所有客户机都在一个时间点发送50个请求,我将它们存储在数据库中,并带有时间戳。现在,我只需要按照时间戳的顺序从所有客户端获取10个请求对象,而不是获取所有请求对象。因此,首先传入的请求需要首先处理 如何使用DynamoDB GSI和BatchGetItem A

用例:我收到来自不同客户端的多个请求。因此,我需要将这些请求存储在一个数据库(最好是DynamoDB)中,按照传入时间的顺序对它们进行排序,并在同一时刻为所有客户端获取10个请求集

例如:如果有5个客户机:C1、C2、C3、C4、C5,并且所有客户机都在一个时间点发送50个请求,我将它们存储在数据库中,并带有时间戳。现在,我只需要按照时间戳的顺序从所有客户端获取10个请求对象,而不是获取所有请求对象。因此,首先传入的请求需要首先处理

如何使用DynamoDB GSI和BatchGetItem API实现这一点?
或者有其他方法可以实现这一点吗?

这是SQS FIFO队列的完美用例。这似乎是你最好的选择


如果您确实必须使用DynamoDB,那么您将不会使用
BatchGetItem
,而是使用
Query
BatchGetItem
用于在一个请求中检索多个项目,前提是您知道所需记录的键。通过查询,可以指定分区键和可选的排序键,或者为排序键指定函数。使用DynamoDB的最大问题是,您需要确保只获取一次记录,因此您必须采取措施删除记录或以不会再次被查询的方式更新记录。这一切都是可行的,但同样,SQS更适合这种情况。

您是否建议为多个客户端使用多个SQS队列?在这种情况下,每当有新的客户机进入服务器时,我就必须创建一个新的SQS队列。