【问题标题】:How can one get count, with a where condition in DynamoDB如何在 DynamoDB 中使用 where 条件获得计数
【发布时间】:2019-10-09 06:10:07
【问题描述】:

假设,我们有一种情况,不是获取表中的总计数,而是获取具有特定状态的记录计数。 我们知道 DynamoDb 是无模式的,并且仍然必须对每条记录逐一计数才能获得总计数。 然而,我们如何使用 dynamoDb 查询来利用上述需求?

【问题讨论】:

    标签: amazon-dynamodb dynamodb-queries


    【解决方案1】:

    虽然“查询”或“扫描”请求通常会返回所有匹配项,但您可以传递 Select=COUNT 参数并要求仅检索匹配项的数量,而不是实际项。但在你开始之前,你应该知道一些事情:

    1. DynamoDB 仍会读取 - 您将仍需支付 - 所有数据,即使只是用于计数。使用过滤器进行“扫描”几乎在所有情况下都是不可能的,因为它每次都会读取整个数据集。使用“查询”,您可以要求仅读取一个分区,或一个分区中的一系列连续排序键,在某些情况下这可能是足够合理的(但请在您的用例中考虑是否如此)。

    2. 1234563计数,并要求您提交另一个请求以恢复扫描。您的 DynamoDB 库可能有办法自动执行此恢复操作,例如,它可以运行数千个或任何所需数量的查询,直到最终完成扫描并计算总和。
    3. 在某些情况下,在数据之外维护一个计数器可能是有意义的。写入会更昂贵(例如,每次写入都会添加数据并增加计数器),但需要此计数器的读取会非常便宜 - 因此这完全取决于您的每个工作负载需要多少。

    【讨论】:

      猜你喜欢
      • 2015-10-17
      • 1970-01-01
      • 1970-01-01
      • 2022-01-22
      • 2022-11-10
      • 1970-01-01
      • 2021-03-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多