我对influxdb非常陌生。
我有一个像这样的数据集; (每个行/点都是一个连接)
time dest_ip source_ip
---- ------- ---------
2018-08-10T11:42:38.848793088Z 211.158.223.252 10.10.10.227
2018-08-10T11:42:38.87115392Z 211.158.223.252 10.10.10.59
2018-08-10T11:42:38.875289088Z 244.181.55.139 10.10.10.59
2018-08-10T11:42:38.880222208Z 138.63.15.221 10.10.10.59
2018-08-10T11:42:38.886027008Z 229.108.28.201 10.10.10.227
2018-08-10T11:42:38.892329728Z 229.108.28.201 10.10.10.181
2018-08-10T11:42:38.896943104Z 229.108.28.201 10.10.10.59
2018-08-10T11:42:38.904005376Z 22.202.67.174 10.10.10.227
2018-08-10T11:42:38.908818688Z 138.63.15.221 10.10.10.181
2018-08-10T11:42:38.913192192Z 138.63.15.221 10.10.10.181
dest_ip和source_ip是字段,而不是标签。
是否可以通过dest_ip对所有连接记录进行分组并获得计数最高的10条记录?
是否可以将dest_ip和source_ip分组在一起,并获得计数最高的10条记录?
还是任何其他解决方案,可以根据连接数将前10个source_ip与dest_ip关系建立起来?
答案 0 :(得分:0)
当前,InfluxDB仅在my text
子句中支持标签和时间间隔。如您所见,group by子句的语法(有关更多信息,请参考InfluxDB documention):
GROUP BY
但是,如果您插入SELECT <function>(<field_key>) FROM_clause WHERE <time_range> GROUP BY time(<time_interval>),[tag_key]
和dest_ip
作为标签而不是字段,则可以使用InfluxQL查询语言实现您提到的所有愿望。