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 %}