关于 Druid 中查询的用例
Posted
技术标签:
【中文标题】关于 Druid 中查询的用例【英文标题】:Regarding a use case on queries in Druid 【发布时间】:2018-06-25 08:13:21 【问题描述】:我在 druid 中有一个用例,其中实时数据采用以下格式,
task
taskno;
category;
这里的category可以是“assigned”也可以是“unassigned”。假设有下面的任务来了,
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 中的东西来做到这一点? 谢谢。
【问题讨论】:
如果“taskno:2”的两个事件的时间戳相同,则有一种方法可以覆盖以前的数据 哦,很高兴知道@mdeora,但不幸的是,在我的用例中两者的时间戳不同:(。如果时间戳不同,你知道该怎么办吗? 【参考方案1】:您可以先过滤您的任务查询,然后按顺序为 desc 和限制 1 的类别过滤它。它应该会给您想要的结果。
在您获得结果的函数中,您可以将计数相加,或者您可以编写一个后聚合函数在 druid 中执行相同的操作。
【讨论】:
以上是关于关于 Druid 中查询的用例的主要内容,如果未能解决你的问题,请参考以下文章