druid groupBy query - json syntax - intervals



我正在尝试创建这个查询(正如我所希望的那样(

SELECT userAgent,COUNT(*(FROM page_hour GROUP BY userAgent order BY 2 desc limit 10

作为json。我试过这个:

{
"queryType": "groupBy",
"dataSource": "page_hour",
"granularity": "hour",
"dimensions": ["userAgent"],
"aggregations": [
{ "type": "count", "name": "total", "fieldName": "userAgent" }
],
"intervals": [ "2020-02-25T00:00:00.000/2020-03-25T00:00:00.000" ],
"limitSpec": { "type": "default", "limit": 50, "columns": ["userAgent"] },
"orderBy": {
"dimension" : "total",
"direction" : "descending"
}
} 

但是,它似乎没有在整个范围内进行聚合,而是选择了一个任意的时间跨度(EG 2020-03-19T14:00:00Z(

如果希望将整个间隔的结果组合到每个用户代理的单个结果条目中,请在查询中将granularity设置为all

关于Druid查询的几个注意事项:

您可以通过在管理控制台中输入SQL语句并通过运行按钮从三点菜单中选择解释/计划菜单选项来生成本机查询。

值得确认的是,count查询时间聚合器将返回数据库行数(而不是摄入的事件数(。这可能是结果数字小于预期的原因。

allgranularity将阻止按小时对结果进行分组。

count聚合器中的fieldName规范?我不知道可以为此定义什么行为,所以我会删除此属性。文件:

  • 请参阅:https://druid.apache.org/docs/latest/querying/aggregations.html#count-聚合器

最新更新