德鲁伊 - 获取按时间排序的顶级X记录,按一组维度分组?

时间:2017-04-25 02:07:29

标签: druid

是否有可能获得按时间排序的前X个记录,这些记录按一组维度分组?

实施例

这是一个虚构的例子,其意思是简单地说明问题。

鉴于以下格式的数据来源,我如何才能让最近10个人进行购买,以及他们最近的购买金额和购买金额。产品名称?

因此,结果是10个独特的人,以及他们最近的购买金额&产品名称。

数据源架构:

purchases
-----------------------------------------------------------------
timestamp   first_name    last_name   customer_id  product_name  purchase_amount

我尝试过的事情:

选择查询

这不会进行任何分组,但会按时间对10条最新记录进行排序。问题是他们不是唯一的。

{
  "context": {
    "timeout": 8000
  },
  "queryType": "select",
  "dataSource": "purchases",
  "granularity": "all",
  "intervals": [ "2017-04-01T00:00:00.000Z/2017-04-23T00:00:00.000Z" ],
  "descending": "true",
  "pagingSpec": { "pageIdentifiers": {}, "threshold": 10 }
}

groupBy query

按所有维度和指标进行分组,而不是仅对first_name,last_name,customer_id进行分组,然后使用最新的product_name和purchase_amount。

所以你将有10条记录,但它们不会是10个独特的人。只有10个独特的指标和组合组合。列出的尺寸。

它也没有按时间排序。

{
  "queryType": "groupBy",
  "dataSource": "purchases",
  "granularity": "all",
  "intervals": [ "2017-04-01T00:00:00.000Z/2017-04-23T00:00:00.000Z" ],
  "dimensions": [
    "first_name",
    "last_name",
    "customer_id",
    "product_name"
  ],
  "metrics": [
    "purchase_amount"
  ],
  "limitSpec": { 
    "type": "default", 
    "limit": 10
  }
}

0 个答案:

没有答案