Grafana(ClickHouse):变量转小写后查询仍无数据返回
问题原因
- 变量被单引号包裹后,ClickHouse会把它识别为固定字符串,而非数据表的列名。即便使用
LOWER('${var_name:raw}'),也只是将大写字符串转为小写字符串,并没有引用列的实际数据,因此查询无结果。 - 硬编码
wt01时未加引号,ClickHouse直接将其识别为列名,所以能正常返回对应数据。
解决建议
方法1:利用Grafana变量自带的小写转换
直接在变量后添加:lower修饰符,同时去掉单引号,让Grafana在替换变量时直接生成小写列名:
SELECT predictiondate, ${var_name:lower} as "ANN01: 48H" FROM aidb.${plant_name:raw}_table;
方法2:在ClickHouse中动态转换为列名
使用ClickHouse的identifier()函数,将处理后的字符串转为列名:
SELECT predictiondate, identifier(LOWER('${var_name:raw}')) as "ANN01: 48H" FROM aidb.${plant_name:raw}_table;
方法3:直接调整变量选项为小写
在Grafana变量设置页面,将变量的选项值改为小写的wt01,查询时直接使用${var_name:raw}即可:
SELECT predictiondate, ${var_name:raw} as "ANN01: 48H" FROM aidb.${plant_name:raw}_table;
内容的提问来源于stack exchange,提问作者Kaleraa
相关产品推荐
相关产品推荐

