德鲁伊查询-数据草图(访问过产品A和B的用户的销售)

时间:2019-09-20 09:52:07

标签: druid

我正在浏览https://druid.apache.org/docs/latest/development/extensions-core/datasketches-theta.html中提到的一些数据草图示例 在其中一个示例中,我们有:
-有多少唯一用户访问了产品A和产品B?
-数据集包含(时间戳,产品,用户ID)
查询是:

{
  "queryType": "groupBy",
  "dataSource": "test_datasource",
  "granularity": "ALL",
  "dimensions": [],
  "filter": {
    "type": "or",
    "fields": [
      {"type": "selector", "dimension": "product", "value": "A"},
      {"type": "selector", "dimension": "product", "value": "B"}
    ]
  },
  "aggregations": [
    {
      "type" : "filtered",
      "filter" : {
        "type" : "selector",
        "dimension" : "product",
        "value" : "A"
      },
      "aggregator" :     {
        "type": "thetaSketch", "name": "A_unique_users", "fieldName": "user_id_sketch"
      }
    },
    {
      "type" : "filtered",
      "filter" : {
        "type" : "selector",
        "dimension" : "product",
        "value" : "B"
      },
      "aggregator" :     {
        "type": "thetaSketch", "name": "B_unique_users", "fieldName": "user_id_sketch"
      }
    }
  ],
  "postAggregations": [
    {
      "type": "thetaSketchEstimate",
      "name": "final_unique_users",
      "field":
      {
        "type": "thetaSketchSetOp",
        "name": "final_unique_users_sketch",
        "func": "INTERSECT",
        "fields": [
          {
            "type": "fieldAccess",
            "fieldName": "A_unique_users"
          },
          {
            "type": "fieldAccess",
            "fieldName": "B_unique_users"
          }
        ]
      }
    }
  ],
  "intervals": [
    "2014-10-19T00:00:00.000Z/2014-10-22T00:00:00.000Z"
  ]
}

我的要求与此非常相似:
-我的数据集包含(时间戳,产品,user_id,销售)。销售额是一个指标。 我想回答的问题是:
既访问了产品A又访问了产品B的用户的销售? 我很难弄清楚该查询。我唯一的限制是我不能使用子查询。

0 个答案:

没有答案