关于 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 中查询的用例的主要内容,如果未能解决你的问题,请参考以下文章

Linux文件系统的用例建模

HttpRunner 跳过用例录制生成用例用例分层机制

pytest 用例编写规则命令行执行用例用例执行的先后顺序

关于Vue.js 中 vm.appendTo 的用例不太清楚,能给予解答吗

设计模式 用例图之二

外部表的用例?