Druid原生查询如何按非时间戳列排序?Scan查询自定义排序实现方法
Druid Scan查询自定义排序实现方案
核心修改逻辑如下:
- 关闭Legacy模式:原生Scan查询的Legacy模式仅支持按时间戳默认排序,无法自定义排序规则,需要将原配置中的
legacy参数从true改为false - 新增过滤规则:对应SQL中
WHERE value > 200的条件,添加filter配置项实现数值过滤 - 新增排序规则:添加
orderBys配置项,指定按value字段的升/降序排序 - 全列返回:如果需要返回表中所有列,无需配置
columns参数即可默认返回全列,也可手动指定列名控制返回范围
完整的Scan查询配置示例如下:
{ "queryType": "scan", "dataSource": "Data", "intervals": "1000/2000", "limit": 10, "legacy": false, "filter": { "type": "greater", "column": "value", "value": 200 }, "orderBys": [ { "column": "value", "order": "ascending" } ] }
如果可以使用Druid SQL查询,直接执行如下SQL即可达到效果(你示例中的SQL默认按第一列__time排序,已调整为按value字段排序):
SELECT __time, value, company, count FROM shares WHERE value > 200 ORDER BY value ASC
内容的提问来源于stack exchange,提问作者MarcinW
相关产品推荐
相关产品推荐

