Time series Druid-按时间戳列排序的数据
我已经建立了一个Time series Druid-按时间戳列排序的数据,time-series,apache-kafka,druid,Time Series,Apache Kafka,Druid,我已经建立了一个Druid集群,从Kafka获取实时数据 问题 Druid是否支持获取按时间戳排序的数据?例如,假设我需要从数据源X检索最新的10个条目。我可以使用包含时间戳字段的LimitSpec(在Query JSON中)来实现这一点吗?或者有没有其他更好的选项支持Druid 提前感谢。您可以使用group by查询来完成此操作,因此,请将group by uu time设置为all粒度,并使用limitSpec对其进行排序/限制。现在,如果您想使用timeseries查询,则获取最新的10
Druid
集群,从Kafka
获取实时数据
问题
Druid
是否支持获取按时间戳排序的数据?例如,假设我需要从数据源X检索最新的10个条目。我可以使用包含时间戳字段的LimitSpec
(在Query JSON
中)来实现这一点吗?或者有没有其他更好的选项支持Druid
提前感谢。您可以使用group by查询来完成此操作,因此,请将group by uu time设置为all粒度,并使用limitSpec对其进行排序/限制。现在,如果您想使用timeseries查询,则获取最新的10个更为棘手。一种方法是将粒度设置为所需的一个小时,然后从最近的时间点开始将间隔设置为10小时。这听起来说起来容易做起来难。我会走第一条路,除非你有重大的性能问题
{
"queryType": "groupBy",
"dataSource": "wikiticker",
"granularity": "all",
"dimensions": [
{
"type": "extraction",
"dimension": "__time",
"outputName": "extract_time",
"extractionFn": {
"type": "timeFormat"
}
},
],
"limitSpec": {
"type": "default",
"limit": 10,
"columns": [
{
"dimension": "extract_time",
"direction": "descending"
}
]
},
"aggregations": [
{
"type": "count",
"name": "$f2"
},
{
"type": "longMax",
"name": "$f3",
"fieldName": "added"
}
],
"intervals": [
"1900-01-01T00:00:00.000/3000-01-01T00:00:00.000"
]
}
获取未聚合的行 要获取未聚合的行,可以使用
查询类型:“选择”
当需要分页时,Select查询也很有用——它们允许您设置页面大小,并自动返回分页标识符,以便在将来的查询中使用
在本例中,如果我们只需要前10行,我们可以传入“pagingSpec”:{“pageIdentifiers”:{},“threshold”:10}
按时间戳排序
要按“时间戳”对这些行进行排序,可以传入“降序”:“true”
。
看起来大多数Druid查询类型都支持降序属性
查询示例:
{
"queryType": "select",
"dataSource": "my_data_source",
"granularity": "all",
"intervals": [ "2017-01-01T00:00:00.000Z/2017-12-30T00:00:00.000Z" ],
"descending": "true",
"pagingSpec": { "pageIdentifiers": {}, "threshold": 10 }
}
Slim您能写一个示例查询吗?