【问题标题】:Azure DocumentDB - Group By AggregatesAzure DocumentDB - 按聚合分组
【发布时间】:2017-03-01 13:28:15
【问题描述】:

我在 Elastic Search 中有一个集合,我们在其中存储事件,并在报告中汇总这些事件,例如:

  • 上周每天的事件数
  • 过去 24 小时内/小时的事件数

我们想迁移到 DocumentDB,但不支持 GROUPING,如果不进行 7+24 查询,我不知道如何实现它。有什么想法吗?

谢谢

【问题讨论】:

    标签: azure-cosmosdb


    【解决方案1】:

    有关信息,DocumentDB 现在支持聚合(截至 2017 年 3 月 8 日),用于以下操作:

    SUMAVG 用于数值,COUNTMINMAX 用于数字、字符串、布尔值和空值。

    微软官方文档已经更新,可以在here找到。

    请注意,聚合函数尚未添加分组支持;已打开一个用户语音问题以请求此功能,并且可以在here 上投票。

    【讨论】:

    • 这是一个改进,但仍然不能解决分组问题。
    • @MichaelMunsey - 好点,我已将其添加到我的答案中,并带有指向此功能的用户语音请求的链接。
    【解决方案2】:

    根据我的理解,您希望将事件数据作为集合中的文档移动到 DocumentDb。正如您所说,DocumentDb 现在不支持聚合操作,但正如官方网站所说,将来会支持该功能。但是,根据我的经验,您可以使用 DocumentDb 的存储过程来实现您的需求,并自动计算每个时间段的事件文档数,因为您希望将其存储为新集合的新文档,每天/小时通过数据库触发,请参考官方教程DocumentDB server-side programming: Stored procedures, database triggers, and UDFs了解。

    同时,我发现了一个 SO 线程 Grouping by a field in DocumentDB,这对您很有帮助。回答者写了一个基于DocumentDb存储过程的库documentdb-lumenize,你可以试试。

    【讨论】:

      猜你喜欢
      • 2014-05-29
      • 1970-01-01
      • 1970-01-01
      • 2015-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-19
      相关资源
      最近更新 更多