Агрегат InfluxDB для функции TOP и отображение в Grafana - PullRequest
0 голосов
/ 07 марта 2019

Я новичок в InfluxDB и Графане. Я использую версию 1.7.4 и играю на примере Grafana Twitter на семинаре Spring Cloud Data Flow. В основном есть 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    

В примере экрана автор создает круговую диаграмму, которая должна отображать 10 лучших хэштегов в Twitter. Видео показывает, что он создает запрос следующим образом:

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

Проблема здесь в том, что диаграмма представляет только 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

Проблема с графаной в том, что она не отображает мои результаты на круговой диаграмме должным образом

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 голосов
/ 07 марта 2019

Попробуйте дополнительно GROUP BY "htag":

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