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

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:

더 알아보기 (Learn more)