微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在json中发布聚合示例查询Druid

如何解决在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 举报,一经查实,本站将立刻删除。