我在druid中有一个用例,其中实时数据的格式如下:

           task{
               taskno;
               category;
             }


这里的类别可以是“已分配”或“未分配”。假设出现以下任务,

           taskno:1,category:"assigned"
           taskno:2,category:"unassigned"
           taskno:3,category:"assigned"
           taskno:4,category:"assigned"


在这里,如果我对带有count(*)的过滤器作为“类别”执行过滤器查询,则结果将为:

            assigned:3
            unassigned:1


现在有一个新事件

           taskno:2,category:"assigned"


我想要查询结果的方式

            assigned:4
            unassigned:0


有什么办法可以使用Javascript UDF或Druid中的方法做到这一点?
谢谢。

最佳答案

您可以先按任务过滤查询,然后按按desc和限制1的顺序按类别过滤查询。它应会为您提供所需的结果。

在获得结果的函数中,您可以将计数加起来,也可以编写后聚合函数以在德鲁伊中执行相同的操作。

07-24 15:58