공부/Splunk
[Splunk] eventstats
잠수함토끼
2020. 4. 13. 20:55
1. 목표
모든 행에 전체을 merge하는 결과를 라인별로 붙이고 싶을때 사용한다.
col | col1 | 원하는 형태 |
a | 1,2,3 | 1,23;1,2;1,2,3,4,5 |
b | 1,2 | 1,23;1,2;1,2,3,4,5 |
c | 1,2,3,4,5 | 1,23;1,2;1,2,3,4,5 |
SPL
| makeresults
| eval col="a", col1="1,2,3,4,5"
| append [| makeresults | eval col="b", col1="1,2,4,5"] `comment("sample 추가")`
| append [| makeresults | eval col="c", col1="1,2,3,4,5"] `comment("sample 추가")`
| table col, col1
| streamstats count as cnt `comment("라인 번호 먹이기")`
| eval order = cnt/1000000 `comment("큰수를 나누는 이유는 문자로 결합할때 sort에 영향을 받지 않기 위해서다.")`
| strcat order "/" col1 col2 `comment("order + col1 → col2 ")`
| eventstats values(col2) as combo `comment("col2 내용을 모두 하나로 묶는다. ")`
| rex field=combo "\/(?<mynum>[\-\.0-9,]*)" `comment("숫자만와 comma를 빼는 regex를 사용함 ")`
| eval mynum = mvjoin(mynum,";") `comment("내가 원하는 결과는 mynum에 넣는다.")`
결과
