You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kusto查询需求:按源IP分组去重展示多端口网络连接

Kusto查询修正:获取源IP分组下的唯一连接记录(总连接数超2)

原查询的问题在于,make_list会保留所有重复的连接条目,导致结果里出现重复记录。以下是修正后的查询,能实现按源IP分组、展示唯一连接记录,且仅保留总连接数超过2的分组:

datatable(SrcIp:string, DstIP:string, DstPort:string)[         
'192.168.1.1', '10.0.0.1','80',
'192.168.1.1', '10.0.0.2','8080',
'192.168.1.1', '10.0.0.1','443',
'192.168.1.1', '10.0.0.1','443',
'192.168.1.2', '10.0.0.1','80',
'192.168.1.2', '10.0.0.1','80',]
// 统计每个源IP的总原始连接数,同时生成去重后的连接记录集合
| summarize total_records = count(),
            unique_connections = make_set(pack("Source IP", SrcIp, "Destination IP", DstIP, "Destination Port", DstPort))
by SrcIp
// 筛选总连接数大于2的源IP分组
| where total_records > 2
// 将集合展开为单独的行
| mv-expand unique_connections
// 整理列名,匹配预期输出格式
| project 
    Source_IP = unique_connections["Source IP"],
    Destination_IP = unique_connections["Destination IP"],
    Destination_Port = unique_connections["Destination Port"]

修正说明

  1. 用make_set替代make_list:make_set会自动对(目的IP+目的端口)的组合去重,确保每条连接记录唯一
  2. 保留总连接数统计:count()统计的是该源IP的原始连接记录总数,用于筛选出总连接数超2的分组
  3. 展开集合为行:通过mv-expand将去重后的连接集合拆分为单独的行,和预期的输出结构一致

预期输出

Source_IPDestination_IPDestination_Port
192.168.1.110.0.0.180
192.168.1.110.0.0.28080
192.168.1.110.0.0.1443

内容的提问来源于stack exchange,提问作者Miguel Cuba

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 15:30:54