Select entries processor
출처: 문서
본문
Select entries 프로세서
select_entries 프로세서는 OpenSearch Data Prepper 이벤트에서 엔트리를 선택해요.
처리된 이벤트에는 선택된 엔트리만 남고, 다른 모든 엔트리는 제거돼요. 다만 이 프로세서가 Data Prepper 파이프라인에서 이벤트를 제거하지는 않아요.
설정
다음 옵션을 사용해서 select_entries 프로세서를 설정할 수 있어요.
| 옵션 | 필수 여부 | 설명 |
|---|---|---|
include_keys |
아니요 | 이벤트에서 선택할 키 목록이에요. |
include_keys_regex |
아니요 | 이벤트에서 선택할 키와 일치하는 정규식(regex) 패턴이에요. |
select_when |
아니요 | 프로세서가 이벤트에 실행될지 판단하기 위해 평가되는 조건식이에요. 예를 들어 /some-key == "test" 같은 조건식을 사용해요. 조건이 충족되지 않으면 이벤트는 원래 필드가 모두 남아 있는 상태로 수정 없이 파이프라인을 계속 통과해요. |
사용 방법
먼저 다음 pipeline.yaml 파일을 만들어요:
pipeline:
source:
...
....
processor:
- select_entries:
include_keys: [ "key1", "key2" ]
select_when: '/some_key == "test"'
sink:
{% include copy.html %}
예를 들어 소스에 다음과 같은 이벤트 레코드가 들어 있다면:
{
"message": "hello",
"key1" : "value1",
"key2" : "value2",
"some_key" : "test"
}
처리 후에는 include_keys에 나열된 키만 이벤트에 남고, 다른 모든 키는 제거돼요:
{"key1": "value1", "key2": "value2"}
정규식으로 키 선택하기
다음 예제는 pipeline.yaml 파일에서 include_keys_regex 필드를 설정하는 방법을 보여줘요:
pipeline:
source:
...
....
processor:
- select_entries:
include_keys: [ "key1", "key2" ]
include_keys_regex: ["^ran.*"]
select_when: '/some_key == "test"'
sink:
{% include copy.html %}
예를 들어 소스에 다음과 같은 이벤트 레코드가 들어 있다면:
{
"message": "hello",
"key1" : "value1",
"key2" : "value2",
"some_key" : "test",
"random1": "another",
"random2" : "set",
"random3": "of",
"random4": "values"
}
프로세서는 include_keys에 명시적으로 나열된 키와 include_keys_regex 패턴과 일치하는 키를 유지하고, 이벤트에서 다른 모든 키는 제거해요:
{"key1": "value1", "key2": "value2", "random1": "another", "random2" : "set", "random3": "of", "random4": "values"}
중첩된 필드 접근하기
중첩된 필드에 접근하려면 /를 사용해요.
예를 들어 소스에 다음과 같은 중첩 필드가 있는 이벤트가 들어 있다면:
{
"field1": "abc",
"field2": 123,
"field3": {
"name": "Alice",
"surname": "Smith"
},
"field4": {
"address": "123 Main St"
}
}
다음 문법을 사용해서 필드의 일부를 선택할 수 있어요:
pipeline:
source:
...
....
processor:
- select_entries:
include_keys:
- field1
- field2
- field3/name
select_when: '/field3/surname == "Smith"'
sink: