我在druid中有一个用例,实时数据的格式如下,
task{
taskno;
category;
}
这里的类别可以是“已分配”或“未分配”。假设有以下任务出现,
taskno:1,category:"assigned"
taskno:2,category:"unassigned"
taskno:3,category:"assigned"
taskno:4,category:"assigned"
在这里,如果我执行一个filter为“category”并带有count(*)的查询,我将得到如下结果:;
assigned:3
unassigned:1
现在一个新的事件随之而来
taskno:2,category:"assigned"
我想在这样的方式,查询结果
assigned:4
unassigned:0
有没有什么方法可以让我使用javascript udf或者druid中的其他东西来实现这一点?谢谢。
1条答案
按热度按时间qyuhtwio1#
您可以先筛选任务上的查询,然后筛选顺序为desc且限制为1的类别上的查询。它会给你想要的结果。
在得到结果的函数中,可以将计数相加,也可以在druid中编写一个post聚合函数来完成同样的操作。