InfluxDB在TOP函数上聚合并在Grafana中显示

时间:2019-03-07 15:01:50

标签: grafana influxdb

我是InfluxDB和Grafana的新手。我正在使用1.7.4版本,并在Spring Cloud Data Flow研讨会中浏览Grafana Twitter示例。基本上是这样的hashtags测量:

select * from hashtags limit 10
name: hashtags
time                       htag             value
----                       ----             -----
2019-03-07T07:46:59.096Z   現実見ろ           0    
2019-03-07T07:46:59.097Z   キズのしょち松さん   0    
2019-03-07T07:46:59.097Z   競馬              0    
2019-03-07T07:46:59.098Z   PerthTanapon     0    
2019-03-07T07:46:59.098Z   終活              0    
2019-03-07T07:46:59.106Z   capolavoro       0    
2019-03-07T07:46:59.108Z   Cenizas          0    
2019-03-07T07:46:59.108Z   design           0    
2019-03-07T07:46:59.108Z   hyungwon         0    
2019-03-07T07:46:59.108Z   ざわちん           0    

作者在example screencast中创建了一个饼图,该饼图应该显示Twitter上排名前10的标签。视频显示他创建了这样的查询:

SELECT sum("value") FROM "hashtags" GROUP BY "htag" SLIMIT 10

这里的问题是图表仅按字母顺序表示10个标签。我想要的是十大主题标签。现在InfluxDB在标签或字段上没有order by子句,因此我尝试提出自己的查询,尝试使用TOP()和子查询来解决我的问题:

select top("sum", "htag",10) from (SELECT sum("value") FROM "hashtags" GROUP BY "htag")会产生正确的结果:

name: hashtags
time                 top  htag
----                 ---  ----
1970-01-01T00:00:00Z 3172 TwoOfUs
1970-01-01T00:00:00Z 2301 BestCoverSong
1970-01-01T00:00:00Z 1480 เชงเม้ง
1970-01-01T00:00:00Z 1337 투모로우바이투게더
1970-01-01T00:00:00Z 1117 GOT7
1970-01-01T00:00:00Z 1106 MeMyselfAndI
1970-01-01T00:00:00Z 848  백현
1970-01-01T00:00:00Z 848  ยุบพรรค
1970-01-01T00:00:00Z 842  Jus2
1970-01-01T00:00:00Z 781  TOMORROW_X_TOGETHER

grafana的问题在于它无法在饼图中正确显示我的结果

enter image description here

我想念什么?我看到第一个查询有一个分组,所以查询结果看起来像这样:

name: hashtags
tags: htag=01JokowiAs1k
time                 sum
----                 ---
1970-01-01T00:00:00Z 0

name: hashtags
tags: htag=01JokowiLagi
time                 sum
----                 ---
1970-01-01T00:00:00Z 9

name: hashtags
tags: htag=01OptimisIndonesiaMaju
time                 sum
----                 ---
1970-01-01T00:00:00Z 7

如何在查询中实现该分组?

1 个答案:

答案 0 :(得分:0)

尝试其他GROUP BY "htag"

SELECT TOP("sum", "htag",10) FROM 
  (SELECT SUM("value") FROM "hashtags" GROUP BY "htag")
GROUP BY "htag"