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

如何在Splunk中删除两个Lookup的共同数据并获取表格唯一数据

在Splunk中获取两个Lookup表的唯一数据(差集)

你需要从Misili_OA_Daily(对应look1)中排除与Misili_OA_Changes(对应look2)ip和host同时匹配的记录,获取仅在look1中存在的唯一数据,以下是几种可行的方法:

方法一:优化子查询的匹配条件

你的原查询问题在于默认format会把字段用OR连接,导致误排除单独ip或host匹配的记录。调整子查询的格式,确保ip和host同时匹配才被排除:

| inputlookup Misili_OA_Daily
| search NOT [
    | inputlookup Misili_OA_Changes
    | fields ip host  # 只保留用于匹配的字段
    | format type=subquery  # 生成(ip="xxx" AND host="yyy")的匹配条件
  ]

方法二:通过左连接过滤匹配记录

用join做左连接,标记匹配项后过滤掉:

| inputlookup Misili_OA_Daily
| join type=left ip host [
    | inputlookup Misili_OA_Changes
    | fields ip host
    | eval matched=1  # 给匹配到的记录打标记
  ]
| where isnull(matched)  # 只保留未匹配的记录
| fields - matched  # 移除标记字段

方法三:使用set diff直接求差集

Splunk的set diff命令专门用于获取两个数据集的差集,仅保留第一个数据集中独有的记录:

| set diff 
    [| inputlookup Misili_OA_Daily] 
    [| inputlookup Misili_OA_Changes | fields ip host]

注:set diff会基于两个数据集的共同字段(ip、host)进行匹配,第二个数据集只需保留匹配用的字段即可。

内容的提问来源于stack exchange,提问作者meisam azizi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 12:50:20