본문 바로가기
Bigdata/Splunk

Splunk - Streaming 와 Transforming Commands 이해

by 올엠 2022. 5. 25.
반응형

Splunk에는 데이터 검색과 처리에 사용할 수 있는 SPL(Search Processing Language)이 존재한다. 그중에 가장 많이 사용되는 Streaming과 Transforming Command에 대해서 알아 보도록 하자.

아래와 같은 명령이 있다고 가정하자.

action=purchase | stats count by status | rename count as “events”

위 명령애서 action=purchase 는 Streaming Command이고, stats rename 은 Transforming Command이다.

이렇게 명령어의 타입이 구분되는 이유는, 동작 환경과 조건이 다르기 때문에 시스템 사용 리소스등을 고려할 때 유용핟.

그리고 명령어를 보다 최적화해서 사용할 수 있는데 도움이 될 것이다.

먼저 Streaming 명령을 이해해 보자.

Streaming Command

Streaming Command는 우리가 흔히 사용하는 검색 명령어가 여기에 포함된다.

우리가 검색을 하면 각 인덱서는 검색을 각자 시작하고, 결과를 Search Head로 전달하게 된다. 이때 먼저 보여진 값이 결과에 보여지게 된다.

Splunk에서 검색을 하다보면, 진행바가 표시되면서 이벤트가 계속 추가되는것을 볼 수 있는데, Streaming Command이기 때문이다.

검색을 동시에 수행

그렇다면 Streaming Command는 어떤 종류가 있을까? 대표적으로 search, lookup, where, eval, rename이 있다.

즉 실제 데이터를 조회하는 명령어로써 우리가 명령을 내리면, 아래 그림과 같이 각 인덱서에서 동작을 하게된다.

그리고 병렬로 실행될 수 있는데 이유는 인덱서마다 가지고 있는 인덱스에서 데이터를 검색하게 된다.

Streaming 커맨드는 인덱서에서 실행

하지만 Streaming Command에는 Non-Streaming Command와 Streaming Command로 또 구분된다.

Streaming Command 기본적으로 데이터를 중앙으로 수

 

sort, sort, dedup, stats, top

 

그리고 검색된 결과를 Search Head로 보내게 되고 Search Head는 이를 Data Set으로 만들어 검색을 요청한 사용자에게 보여주는데, 만약 Transforming Command가 있다면, 이 Data Set의 후처리 작업을 거치게 된다.

Transforming Command

Transforming Command 는 Search Head로 생성된 Data Set의 후처리를 담당하는 명령이라고 할 수 있다.

이 명령은 Data set이 만들어지기를 기다리게 된다. 만역 Transforming Command가 SPL에 들어가 있다면, 모든 결과가 완료되었을 때 화면에 표시되게 된다.

모든 Data Set의 정렬한다거나 통계를 내는 등의 작업을 진행하게 된다.

Transforming Command 는 대표적으로 다음과 같은 명령이 있다.

chart, timechart, stats, top, rare, contingency

Ref

Types of commands - Splunk Documentation

반응형

댓글0