2

我需要使用 REST/JSON API 从我在 Druid 中的索引中获取一组不同的维度值。目前我正在使用以下聚合查询(尽管我不需要聚合),因为我找不到任何其他方法来获取不同的值,因为所有查询都需要聚合字段。

{
  "queryType": "groupBy",
  "dataSource": "ds1",
  "granularity": "all",
  "dimensions": ["level1","level2","level3", "val1", "val2"],
  "aggregations": [{"type": "count","name": "val2Count","fieldName": "val2"}],
  "intervals": ["2015-10-22T00:00:00.000/2015-12-22T23:00:00.000"]
}
  1. 我认为这是一个常见的场景。有没有办法在没有聚合的情况下获得不同的列集?

  2. 当我使用聚合进行操作时,如果有一个没有聚合的聚合,那么这个聚合对性能(额外计数数据的网络 IO 除外)的影响有多大?

4

2 回答 2

0

您可以使用元数据查询。此查询将为每个维度提供基数估计。 http://druid.io/docs/latest/querying/segmentmetadataquery.html 虽然如果你想列出维度1和维度2的所有不同组合,你必须在维度1和维度2上使用groupBy。添加计数聚合器不会真正影响性能。

于 2016-02-19T20:52:34.253 回答
-1

您可以使用选择查询来做同样的事情。 http://druid.io/docs/latest/querying/select-query.html

{
    "queryType": "select",
    "dataSource": "ds1",
    "granularity": "all",
    "descending": "true",
    "intervals": ["2016-05-01T00:00:00.000/2016-06-01T00:00:00.000"],
    "dimensions":["level1","level2","level3", "val1", "val2"],
    "pagingSpec":{"pagingIdentifiers": {}, "threshold":5}
}

如果您只有一个维度,那么您也可以使用 Lexicographic TopNMetricSpec。 http://druid.io/docs/latest/querying/topnmetricspec.html

于 2016-06-14T08:47:00.147 回答