我正在尝试将以下druid sql查询转换为druid json查询,因为我拥有的其中一列是多值维度,因此druid不支持sql样式查询。
我的SQL查询:
SELECT date_dt, source, type_labels, COUNT(DISTINCT unique_p_hll)
FROM "test"
WHERE
type_labels = 'z' AND
(a_id IN ('a', 'b', 'c') OR b_id IN ('m', 'n', 'p'))
GROUP BY date_dt, source, type_labels;
unique_p_hll
是具有唯一性的hll列。
我想出的druid json查询如下:
{
"queryType": "groupBy",
"dataSource": "test",
"granularity": "day",
"dimensions": ["source", "type_labels"],
"limitSpec": {},
"filter": {
"type": "and",
"fields": [
{ "type": "selector", "dimension": "type_labels", "value": "z" },
{ "type": "or", "fields": [
{ "type": "in", "dimension": "a_id", "values": ["a", "b", "c"] },
{ "type": "in", "dimension": "b_id", "values": ["m", "n", "p"] }
]}
]
},
"aggregations": [
{ "type": "longSum", "name": "unique_p_hll", "fieldName": "p_id" }
],
"intervals": [ "2018-08-01/2018-08-02" ]
}
但是json查询似乎返回空结果集。
我可以在Pivot UI中正确看到输出。尽管数组列type_labels
的值显示为{"array_element": "z"}
而不是简单的"z"
。
答案 0 :(得分:0)
查询返回空字符串,还是返回零记录的格式化JSON?
如果是前者,我可以建议一些线索来调试此问题:
curl -X 'POST' -H 'Content-Type:application/json' -d @query-file.json http://<BROKER-IP>:<BROKER-PORT>/druid/v2?pretty