如何解决在json中发布聚合示例查询Druid
我正在尝试使用后期汇总。我已经使用聚合来计算与给定过滤器匹配的行数。以下是聚合后查询:
$income = 0;
foreach (json_decode($read_one_vehicle_response,true)["ticket"] as $ticket) {
$total_fare = (float) $ticket{"total_fare"};
$income += $total_fare;
}
echo "Total: $income";
如果我删除后聚合部分,它将返回以下结果:
{
"queryType": "groupBy","dataSource": "datasrc1","intervals": ["2020-09-16T21:15/2020-09-16T22:30"],"pagingSpec":{ "threshold":100},"dimensions": ["city","zip_code","country"],"filter": {
"fields": [
{
"type": "selector","dimension": "bankId","value": "<bank id>"
}
]
},"granularity": "all","aggregations": [
{ "type": "count","name": "row"}
],"postAggregations": [
{ "type": "arithmetic","name": "sum_rows","fn": "+","fields": [
{ "type": "fieldAccess","fieldName": "row" }
]
}
]
}
如果添加后聚合部分,则会出现解析器异常:
[ {
"version" : "v1","timestamp" : "2020-09-16T21:15:00.000Z","event" : {
"city": "Sunnyvale","zip_code": "94085","country": "US","row" : 1
}
},{
"version" : "v1","zip_code": "94080","row" : 1
}
}
我想在聚合查询得到的响应中添加所有行(列“ row”);并将输出放在“ sum_rows”中。
我不明白我在post_aggregations中缺少什么。任何帮助表示赞赏。
解决方法
确信我将大部分时间都用在SQL API上,而不是用在本机API(!!)上,但是我认为,您的问题是您只向后聚合器提供一个字段。请参阅以下示例:
https://druid.apache.org/docs/latest/querying/post-aggregations.html#example-usage
如果您需要行总和,也许您需要一个普通的聚合器来对行数求和?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。