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

如何在Splunk中查找并展示两个JSON对象间的唯一与缺失键

在Splunk中对比两组JSON的唯一键与缺失键并生成表格

需求说明

现有两组含唯一键的JSON对象:

第一组JSON

{ 
    "Sugar": {
        "prod_rate" : "50",
        "prod_qual" : "Good"
    },
    "Rice": {
        "prod_rate" : "80",
        "prod_qual" : "OK"
    },
   "Potato": {
        "prod_rate" : "87",
        "prod_qual" : "OK"
    }
}

第二组JSON

{ 
    "Sugar": {
        "prod_rate" : "50",
        "prod_qual" : "Good"
    },
    "Wheat": {
        "prod_rate" : "60",
        "prod_qual" : "Good"
    }
}

需要找出仅在某一组中存在的键,生成包含唯一键(仅第一组有)和缺失键(仅第二组有)两列的Splunk表格。

Splunk查询实现

以下是完整的查询语句,可直接在Splunk搜索栏执行:

| makeresults 
| eval json1="{ 
    \"Sugar\": {
        \"prod_rate\" : \"50\",
        \"prod_qual\" : \"Good\"
    },
    \"Rice\": {
        \"prod_rate\" : \"80\",
        \"prod_qual\" : \"OK\"
    },
   \"Potato\": {
        \"prod_rate\" : \"87\",
        \"prod_qual\" : \"OK\"
    }
}"
| spath input=json1 output=keys1 path={@keys}
| mvexpand keys1
| rename keys1 as key
| eval source="第一组JSON"
| append [
    | makeresults 
    | eval json2="{ 
        \"Sugar\": {
            \"prod_rate\" : \"50\",
            \"prod_qual\" : \"Good\"
        },
        \"Wheat\": {
            \"prod_rate\" : \"60\",
            \"prod_qual\" : \"Good\"
        }
    }"
    | spath input=json2 output=keys2 path={@keys}
    | mvexpand keys2
    | rename keys2 as key
    | eval source="第二组JSON"
]
| stats values(source) as sources by key
| where mvcount(sources)=1
| eval 唯一键=if(sources="第一组JSON", key, null()), 缺失键=if(sources="第二组JSON", key, null())
| stats list(唯一键) as 唯一键 list(缺失键) as 缺失键

查询说明

  1. 构造测试数据:用makeresults和eval生成两组JSON字符串
  2. 解析JSON键:通过spath提取JSON的所有顶级键,mvexpand将多值键拆分为单行数据
  3. 合并数据:用append把两组数据合并到同一结果集
  4. 筛选独有键:用stats统计每个键的来源,where mvcount(sources)=1筛选出仅在一组出现的键
  5. 生成目标表格:通过eval和stats整理出“唯一键”和“缺失键”列

预期结果

执行后会生成一行表格:

唯一键缺失键
Rice, PotatoWheat

内容的提问来源于stack exchange,提问作者A.G.Progm.Enthusiast

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 07:53:29