如何在 inputlookup 文件中仅检索每行的第一个或最后一个事件?

问题描述 投票:0回答:1

在 splunk 中,我正在运行以下查询:

考虑到我已经关注

20230922_id.csv 

中的数据
id_
123
234
345
456
index=1234 application_name="app_name_xyz" app_region=apac "Total time to process request" 
| search [| inputlookup 20230922_id.csv 
  | rename id_ as search 
  | format ]

上面的查询变成了下面的查询(我期望基于 splunk 指南)

index=1234 application_name="app_name_xyz" app_region=apac "Total time to process request" 
| search 123 or 234 or 345 or 456

目前,对于 CSV 文件中的上述每一行,都有

3 events
。因此,事件总数为
12
,这是正确的。

有什么方法可以让行(

123,234,345,456
)中的每个数据只返回 1 个事件吗?这样总事件就只剩下 4 个了。

我尝试了以下一些解决方案,但不起作用:

index=1234 application_name="app_name_xyz" app_region=apac "Total time to process request" 
| search [| inputlookup 20230922_id.csv 
  | rename id_ as search 
  | head 1 
  | format ]

下面的一个很明显,它只会返回 1 个事件,因为我正在执行完整的查询。

index=1234 application_name="app_name_xyz" app_region=apac "Total time to process request" 
| search [| inputlookup 20230922_id.csv 
  | rename id_ as search  
  | format ] 
|head 1

您能否告诉我是否有任何语法可以解决我的上述问题?

如果没有办法从每个匹配行获取第一个/最后一个,有什么方法可以获取如下信息?

id_
123 2
234 3
345 4
456 2
splunk lookup-tables splunk-query
1个回答
0
投票

您尝试过重复数据删除吗?

| dedup id_

这只会为您提供每个 id_ 的最新条目。导致每个 id_ 产生一个结果,如果我正确理解你的问题,这就是你所追求的。

© www.soinside.com 2019 - 2024. All rights reserved.