본문 바로가기
WIKI 기술 지식 베이스

Split event processor

원문 보기 위키 갱신

출처: 문서

본문

Split 이벤트 프로세서

split_event 프로세서는 구분자를 기준으로 이벤트를 분할하고, 사용자가 지정한 필드에서 여러 개의 이벤트를 생성하는 데 사용해요.

설정

다음 표는 split_event 프로세서의 설정 옵션을 설명해요.

옵션 타입 설명
field String 분할할 이벤트 필드예요.
delimiter_regex String 필드를 분할할 때 구분자로 사용되는 정규식이에요.
delimiter String 필드를 분할할 때 사용되는 구분자예요. 지정하지 않으면 기본 구분자가 사용돼요.
split_when String 프로세서를 이벤트에 적용할지 여부를 결정하는 조건식이에요. 조건이 false로 평가되면 이벤트는 변경되지 않은 채 유지돼요. 기본값은 null이에요(모든 이벤트가 처리돼요).

사용법

split_event 프로세서를 사용하려면 pipelines.yaml 파일에 다음을 추가해요:

split-event-pipeline:
  source:
    http:
  processor:
    - split_event:
        field: query
        delimiter: ' '    
  sink:
    - stdout:

{% include copy.html %}

이벤트에 다음과 같은 예시 입력이 들어 있다면:

{"query" : "open source", "some_other_field" : "abc" }

입력은 query 필드를 기준으로, 구분자를 공백으로 설정해서 다음 예시와 같이 여러 개의 이벤트로 분할돼요:

{"query" : "open", "some_other_field" : "abc" }
{"query" : "source", "some_other_field" : "abc" }

split_when을 사용한 조건부 분할

split_when을 사용하면 이벤트 내용을 기준으로 분할을 조건부로 적용할 수 있어요. 이는 특정 이벤트만 분할해야 하는 멀티 테넌트 파이프라인에서 유용해요. 다음 예시에서 split_event 프로세서는 body 필드에 줄바꿈 문자가 포함된 이벤트만 분할해요. 줄바꿈이 없는 이벤트는 변경되지 않은 채 유지돼요:

split-event-pipeline:
  source:
    http:
  processor:
    - split_event:
        field: body
        delimiter: "\n"
        split_when: 'contains(/body, "\n")'
  sink:
    - stdout:

{% include copy.html %}

더 알아보기 (Learn more)