Bis*_*alG 1 amazon-web-services nosql amazon-dynamodb
我正在设计一个 DynamoDB 数据库表。例如test_table,在一张表中,我定义了一个组合键,其中包含一个分区键(比如)partition_id和一个排序键(比如)sort_id。双方partition_id并sort_id可能在他们的条目一些重复的值,但两者的结合partition_id,并sort_id一起将永远是独一无二的。
我想知道,如何有效的是具有一些共有的记录检索partition_id,说partition_id = x?
您的实际问题的答案是……非常低效。
不同于RDBMS,DDB不具有COUNT或任何其他聚合函数......所以得到一个计数的唯一办法是Query()或Scan()您的数据,该数据返回到您的应用程序和计算自己的行。
如果您需要聚合,最佳实践是启用 DDB Streams,并将 Lambda 绑定到它来计算和存储您感兴趣的聚合(计数)。
所以在你问的情况下,
partition_id = x
您可以向表中添加另一行(pk=X, sk="COUNT"),每次pk=x插入或删除记录时,lambda 都会更新该行。
然后你可以用一个简单的方法有效地得到计数 GetItem(pk=X, sk="COUNT")
使用全局二级索引进行物化聚合查询文档中的更多信息
| 归档时间: |
|
| 查看次数: |
1993 次 |
| 最近记录: |