我在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的顺序按类别过滤查询。它应会为您提供所需的结果。
在获得结果的函数中,您可以将计数加起来,也可以编写后聚合函数以在德鲁伊中执行相同的操作。