我有一个用例,在这个用例中,我将从上游获取特定batchID的记录,以及批处理前期的一些元数据。例如,我被告知batchID=的“ABC”将有2000年的记录。在我开始获取服务中的记录之后,我做了一些处理,并将其保存在DB中,状态=“处理”。因此,我的用例是,一旦我获得了batchID的所有2000条记录,我就必须创建一个包含此批中所有记录(2000)的CSV文件,并将其发送到其他服务。另外,我将状态更新为“已发送”。
方法1(朴素):在batchID+status上运行复合GSI查询,并在每次请求时检查计数是否匹配。这个会很贵的。
方法2:使用DynamoDB的原子计数器,其中key = b