0

我有一个索引 idx1 和另一个索引 idx2 以及一个需要进行匹配的公共列“A”。

我在合并两列数据时遇到了困难。我必须以这样的方式组合数据,如果有重复,那么来自 idx1 的数据必须优先于来自 idx2 的数据;即基本上相当于集合操作[a+(ba)]。

我尝试了以下方法:

| 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
4

2 回答 2

0

我试过这样的事情:

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

我认为它是正确的...

欢迎任何建议

于 2021-02-13T06:58:13.350 回答
0

如果有两种事件类型共有的字段,那么您可以使用左连接来组合数据。这很,并且受到 50,000 个结果的限制。

index=1idx1 sourcetype=src | dedup A 
| join type=outer A [search index=idx2 sourcetype=src | dedup A]
| ...

合并结果的一种更高效的方法是使用stats命令,但这不符合索引 A 胜过索引 B 的要求。

于 2021-02-12T20:01:35.307 回答