如何解决结合 splunk 查询中 2 个索引的结果
我有一个索引 idx1 和另一个索引 idx2 以及一个需要对其进行匹配的公共列“A”。
我在合并两列中的数据时遇到了困难。 我必须以这样的方式组合数据,如果有重复,那么来自 idx1 的数据必须优先于来自 idx2 的数据;即基本上等同于集合操作 [a+(b-a)]。
我尝试了以下方法:
| set diff [ search index=idx2 sourcetype=src | dedup A ] [search index=idx1 sourcetype=src | dedup A ]
| stats count BY index A
| table index A
这里我总共得到了 10840 个统计数据,两列都被填满了。
但是当我想显示两个索引中的其他列时,我会得到空列。
执行时:
| set diff [ search index=1idx1 sourcetype=src | dedup A ] [search index=idx2 sourcetype=src | dedup A ]
| stats count BY index
我得到的输出为
索引计数 idx1 4791 idx2 6049
谁能帮我我该怎么做??
我什至尝试过这个,但不确定
index=idx1 sourcetype=src
| append [
| set diff [ search index=idx2 sourcetype=src | dedup A ] [search index=idx1 sourcetype=src | dedup A ]]
| stats count BY index A
| table index A
解决方法
如果两种事件类型都有共同的字段,那么您可以使用左连接来组合数据。这慢并且受到 50,000 个结果的限制。
index=1idx1 sourcetype=src | dedup A
| join type=outer A [search index=idx2 sourcetype=src | dedup A]
| ...
一种更高效的合并结果的方法是使用 stats
命令,但这不符合索引 A 胜过索引 B 的要求。
我尝试过这样的事情:
index=idx1 sourcetype=src
| append [search index=idx2 sourcetype=src ]
| dedup A| table A B C D
idx1 有 4791 个事件
idx2 有 6049 个事件
(idx1-idx2) 有 2590 个事件
(idx2-idx1) 有 3848 个事件
2个索引的并集有8639个事件
2个索引的交集有2201个事件
所以在执行上述查询后,我得到了 8639 个事件
2590+3848+2201=8639
我认为它是正确的...
欢迎任何建议
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。