InfluxDB 按字段分组(不是标签)并获得前 10 名
InfluxDB Group By Field (Not Tag) and Get Top 10
我对 influxdb 很陌生。
我有这样一个数据集; (每个row/point是一个连接)
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 关系的任何其他解决方案?
目前InfluxDB仅支持GROUP BY
子句中的标签和时间间隔;正如您所见的 group by 子句的语法(有关更多信息,请参阅 InfluxDB documention):
SELECT <function>(<field_key>) FROM_clause WHERE <time_range> GROUP BY time(<time_interval>),[tag_key]
但是如果您插入 dest_ip
和 source_ip
作为标签而不是字段,您可以使用 InfluxQL 查询语言实现您提到的所有愿望。
我对 influxdb 很陌生。
我有这样一个数据集; (每个row/point是一个连接)
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 关系的任何其他解决方案?
目前InfluxDB仅支持GROUP BY
子句中的标签和时间间隔;正如您所见的 group by 子句的语法(有关更多信息,请参阅 InfluxDB documention):
SELECT <function>(<field_key>) FROM_clause WHERE <time_range> GROUP BY time(<time_interval>),[tag_key]
但是如果您插入 dest_ip
和 source_ip
作为标签而不是字段,您可以使用 InfluxQL 查询语言实现您提到的所有愿望。