在 Dynamodb 中获取聚合计数

Get Aggregated Counts in Dynamodb

我有一个 Dynamodb Table,它存储计划的作业数据及其 ID 和状态值(已启动、已启动、进行中、已完成、失败)。现在我想查询总作业计数以及每个状态值的计数等数据。从 Dynamodb Table 获取此数据的最佳方法是什么?

与 RDBMS 不同,DDB 没有 COUNT 或任何其他聚合函数...因此获得计数的唯一方法是 Query() 或 Scan() 您的数据,然后将该数据返回给您的申请并自己计算行数。

如果您需要聚合,最佳做法是将 DDB 流配置为 lambda,该 lambda 将使用记录计数和您要跟踪的任何其他汇总信息。如 Using Global Secondary Indexes for Materialized Aggregation Queries.

中所述,GSI 在这里通常很有用

我能够使用 Dynamodb Streams 和 lambda 实现计数。