德鲁伊 - 一组列的不同值

时间:2015-12-16 11:40:27

标签: druid

我需要使用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以获取额外的计数数据)多少?

    < / LI>

2 个答案:

答案 0 :(得分:0)

您可以使用select query执行相同操作。 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

答案 1 :(得分:-1)

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