我已经建立了一个 Druid 从中摄取实时数据的群集 Kafka .问题做 Druid 支持获取按 timestamp ? 例如,假设我需要从数据源x中检索最新的10个条目。我可以用一个 LimitSpec (在 Query JSON )包括时间戳字段?或者有没有其他更好的选择 Druid ?提前谢谢。
Druid
Kafka
timestamp
LimitSpec
Query JSON
wlsrxk511#
获取未聚合的行要获取未聚合的行,可以使用 "queryType: "select" .当需要分页时,select查询也很有用—它们允许您设置页面大小,并自动返回分页标识符,以便在将来的查询中使用。在这个例子中,如果我们只需要前10行,我们可以传入 "pagingSpec": { "pageIdentifiers": {}, "threshold": 10 } .按时间戳排序要按“时间戳”对这些行进行排序,可以传入 "descending": "true" . 看起来大多数druid查询类型都支持 descending 财产。查询示例:
"queryType: "select"
"pagingSpec": { "pageIdentifiers": {}, "threshold": 10 }
"descending": "true"
descending
{ "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 } }
“选择”类型查询上的文档
lvjbypge2#
您可以使用groupby查询来完成此操作,因此groupby\u time作为一个提取函数,然后将granularity设置为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" ] }
2条答案
按热度按时间wlsrxk511#
获取未聚合的行
要获取未聚合的行,可以使用
"queryType: "select"
.当需要分页时,select查询也很有用—它们允许您设置页面大小,并自动返回分页标识符,以便在将来的查询中使用。
在这个例子中,如果我们只需要前10行,我们可以传入
"pagingSpec": { "pageIdentifiers": {}, "threshold": 10 }
.按时间戳排序
要按“时间戳”对这些行进行排序,可以传入
"descending": "true"
. 看起来大多数druid查询类型都支持descending
财产。查询示例:
“选择”类型查询上的文档
lvjbypge2#
您可以使用groupby查询来完成此操作,因此groupby\u time作为一个提取函数,然后将granularity设置为all,并使用limitspec来排序/限制将起作用的内容。现在,如果您想使用timeseries查询,那么获取最新的10则更为棘手。一种方法是将粒度设置为所需的一个,比如说一小时,然后从最近的时间点开始将间隔设置为10小时。这听起来说起来容易做起来难。除非你有重大的表现问题,否则我会走第一条路。