【问题标题】:Azure cosmosdb doesnt show proper value for select count(1) if count is more than 30k. Or if total count is more than 100k.如果 count 超过 30k,Azure cosmos db 不会为 select count(1) 显示正确的值。或者,如果总计数超过 100k。
【发布时间】:2018-08-08 05:32:23
【问题描述】:

如果 count 超过 30k,Azure cosmosdb 不会为 select count(1) 显示正确的值。或者,如果总计数超过 100k。这是没有分区的。有什么办法可以让我得到正确的计数吗?我尝试使用 max() 和这个,没有运气。

【问题讨论】:

  • 我刚刚对其进行了测试,它似乎工作正常,如您所见here。你怎么查询的?

标签: azure count azure-cosmosdb aggregation


【解决方案1】:

根据我的经验,您的错误是由于 RU 设置的瓶颈造成的。 count 查询受分配给您的集合的 RU 数量的限制。您将收到的结果将有一个延续令牌(即使在门户上)。

您可能有两种解决方案:

1.当然,你可以提高 RUs 设置。

2.您可以通过延续令牌继续寻找下一组结果并继续添加它,以便您获得总数。(可能在sdk中)

我将 30k 文档导入到我的数据库中。然后我尝试运行查询

select value count(1) from c 在查询资源管理器中。事实证明,每页只有部分文件。所以我需要通过点击Next Page按钮来添加它们。

当然,您可以通过延续令牌在 sdk 代码中执行此查询。

希望对你有帮助。

【讨论】:

  • 感谢 Jay Gong,这是 RU/s 设置较少的问题。现在我保持了更高的 RU,我可以在不分页的情况下看到正确的结果。此外,只有在查询资源管理器中,我们才能看到正确的结果,单击下一步。我通常使用数据资源管理器查询窗口来编写查询,该选项不可用。 MS 在查询资源管理器中给出一条消息,不要使用它并继续使用数据资源管理器!!!
  • @DeveloperArchitect 是的,但是它可能会导致更多的成本。所以也许在 sdk 中查询繁重的文档更经济。无论如何,如果您认为它有用,请在论坛上标记我的答案以供其他人参考。谢谢。
  • @DeveloperArchitect 如果你采纳我的答案,你可以标记我的答案。谢谢。
  • 不是每次我们有时间查询sdk,否则我们需要为自己创建一个客户端应用程序。 RU/s 对于计划是固定的,我们没有利用整个吞吐量。增加了它以利用其全部容量并解决了这个问题。感谢您的帮助!
猜你喜欢
  • 2013-01-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-28
  • 2016-09-05
相关资源
最近更新 更多