본문 바로가기
Bigdata

Splunk - Streaming 와 Transforming Commands 이해

by 올엠 2024. 8. 12.
반응형

 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 기본적으로 데이터를 중앙으로 수집하는 역활을 하는데 아래 명령들은 Non-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

 

참조

Types of commands - Splunk Documentation

 

 

 

반응형