多列的德鲁伊查询计数

druid query count for multiple columns

我有一个查询来计算列中的空值。我如何才能使它适应多列中空值的 return 计数?我尝试添加字段列表,例如['ip_address','user_agent'] 添加到维度字段,但这没有用。

{"intervals":["2019-05-26T00:00:00.000Z/2019-06-25T00:00:00.000Z"],
"granularity":"all",
"context":{"timeout":60000,
"queryId":"71fe66b2-e654-45dc-8a8c-38ed160e79f5"},
"queryType":"timeseries",
"dataSource":"dataset-tablename”,
"aggregations":[{"type":"count",
"name":"count"}],
"filter":{"type":"and",
"fields":[{"type":"selector",
"dimension":"ip_address",
"value":"null"}]}}

这return两列,

Timestamp | Count

2019-04-27T04:55:01.000Z | 246,933

这是时间范围内具有空值的 ip_address 条记录的计数。我怎样才能 return 其他附加字段的计数?

您可以使用过滤聚合器:

{"intervals":["2019-05-26T00:00:00.000Z/2019-06-25T00:00:00.000Z"],
"granularity":"all",
"context":{"timeout":60000, "queryId":"71fe66b2-e654-45dc-8a8c-38ed160e79f5"},
"queryType":"timeseries",
"dataSource":"dataset-tablename",
 "aggregations":[
     {"type":"filtered", "filter":{"type":"selector", "dimension":"ip_address", "value":"null"},
      "aggregator": {"type":"count", "name":"null_ip_address_count"}},
     {"type":"filtered", "filter":{"type":"selector", "dimension":"user_agent", "value":"null"},
      "aggregator": {"type":"count", "name":"null_user_agent_count"}}]
}

也就是说,不是将过滤器应用于整个查询,而是将过滤器应用于单个聚合器。