2

レポートを生成するための UI を作成するためにドルイドを使用しています。スクリプトには、次のコードを使用しています。

        {
      "type" : "doubleSum",
      "name" : "impressions",
      "fieldName" : "impressions"
    },
    {
      "type" : "doubleSum",
      "name" : "clicks",
      "fieldName" : "clicks"
    },
    {
      "type" : "doubleSum",
      "name" : "pvconversions",
      "fieldName" : "pvconversions"
    },
    {
      "type" : "doubleSum",
      "name" : "pcconversions",
      "fieldName" : "pcconversions"
    }

さらに 2 つのフィールドが必要です。

Total Conversions = pvconversions+pcconversions
CTR = Clicks / Impressions

それらの書き方について、この問題に関して何も見つけることができませんでした。誰でも助けることができます。

ありがとう

4

4 に答える 4

5

以下のスニペットのように、集計と postAggregations を使用して問題を解決できます。

{
  "queryType":"timeseries",
  "dataSource":"data",
  "granularity":"hour",
  "descending":"false",
  "aggregations":[
    {"type":"doubleSum", "name":"sum-pvconversions", "fieldName":"pvconversions"},
    {"type":"doubleSum", "name":"sum-pcconversions", "fieldName":"pcconversions"},
    {"type":"doubleSum", "name":"sum-clicks", "fieldName":"clicks"},
    {"type":"doubleSum", "name":"sum-impressions", "fieldName":"impressions"}
    ],
  "postAggregations":[
    {
      "type":"arithmetic",
      "name":"Conversions",
      "fn":"+",
      "fields":[
        {"type":"fieldAccess", "name":"postAgg-proceed", "fieldName":"sum-pvconversions"},
        {"type":"fieldAccess", "name":"postAgg-numbers", "fieldName":"sum-pcconversions"}
        ]
    },
    {
      "type":"arithmetic",
      "name":"CTR",
      "fn":"/",
      "fields":[
        {"type":"fieldAccess", "name":"postAgg-click", "fieldName":"sum-clicks"},
        {"type":"fieldAccess", "name":"postAgg-impression", "fieldName":"sum-impressions"}
        ]
    }
    ],
  "intervals":["2016-08-22T01/2016-08-29T03"],
  "context":{
    "skipEmptyBuckets":"true"
  }
}
于 2016-09-05T11:47:45.127 に答える
0

クエリで投稿集計を使用する必要があります。ドルイドのドキュメントから

事後集計は、集計値が Druid から出力されるときに発生する処理の仕様です。クエリの一部として投稿集計を含める場合は、投稿集計に必要なすべての集計を必ず含めてください。

たとえば、CTR を計算するには、投稿の集計を次に示します。

"postAggregations" : [{
     "type"   : "arithmetic",
     "name"   : "average",
     "fn"     : "*",
    "fields" : [
       { "type"   : "arithmetic",
         "name"   : "CTR",
         "fn"     : "/",
         "fields" : [
           { "type" : "fieldAccess", "name" : "clicks", "fieldName" : "clicks" },
           { "type" : "fieldAccess", "name" : "impressions", "fieldName" : "impressions" }
         ]
       }
于 2016-08-21T12:18:02.157 に答える