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

KV processor

원문 보기 위키 갱신

출처: 문서

본문

이 문서는 OpenSearch 인제스트 파이프라인에서 kv 프로세서를 사용하는 방법을 설명해요. 사용 사례에 대규모 또는 복잡한 데이터 세트가 포함된 경우 OpenSearch 클러스터에서 실행되는 Data Prepper key_value 프로세서를 사용하는 것을 고려해 보세요. {: .note}

KV 프로세서

kv 프로세서는 key=value 형식의 특정 이벤트 필드나 메시지를 자동으로 추출해요. 이 구조화된 형식은 키와 값을 기준으로 데이터를 그룹화하여 데이터를 정리해요. 사용자 행동 분석, 성능 최적화, 보안 조사 등 데이터를 분석, 시각화, 활용하는 데 유용해요.

예시

다음은 kv 프로세서의 구문이에요.

{
  "kv": {
    "field": "message",
    "field_split": " ",
    "value_split": " "
  }
}

{% include copy.html %}

구성 파라미터

다음 표는 kv 프로세서의 필수 및 선택적 파라미터를 나열해요.

| 파라미터 | 필수/선택 | 설명 | | field | 필수 | 구문 분석할 데이터가 포함된 필드의 이름이에요. | | field_split | 필수 | 키-값 쌍 분할을 위한 정규식 패턴이에요. | | value_split | 필수 | 키-값 쌍 내에서 키와 값을 분할하기 위한 정규식 패턴이에요. 예를 들어 등호 = 또는 콜론 :이에요. | | exclude_keys | 선택 | 문서에서 제외할 키예요. 기본값은 null이에요. | | include_keys | 선택 | 필터링 및 삽입을 위한 키예요. 기본값은 모든 키를 포함하는 것이에요. | | prefix | 선택 | 추출된 키에 추가할 접두사예요. 기본값은 null이에요. | | strip_brackets | 선택 | true로 설정하면 추출된 값에서 괄호((), <>, [])와 따옴표(', ")를 제거해요. 기본값은 false예요. | | trim_key | 선택 | 추출된 키에서 제거할 문자 문자열이에요. | | trim value | 선택 | 추출된 값에서 제거할 문자 문자열이에요. | | description | 선택 | 프로세서에 대한 간단한 설명이에요. | | if | 선택 | 프로세서 실행 조건이에요. | | ignore_failure | 선택 | true로 설정하면 실패를 무시해요. 기본값은 false예요. | | on_failure | 선택 | 프로세서가 실패할 경우 실행할 프로세서 목록이에요. | | ignore_missing | 선택 | 프로세서가 지정된 필드를 포함하지 않는 문서를 무시할지 여부를 지정해요. 기본값은 false예요. | | tag | 선택 | 프로세서의 식별 태그예요. 동일한 유형의 프로세서를 구분하기 위해 디버깅에 유용해요. | | target_field | 선택 | 추출된 키를 삽입할 필드의 이름이에요. 기본값은 null이에요. |

프로세서 사용하기

파이프라인에서 프로세서를 사용하려면 다음 단계를 따라 해요.

1단계: 파이프라인 생성

다음 쿼리는 kv 프로세서를 사용하여 문서의 message 필드를 추출하는 kv-pipeline이라는 파이프라인을 생성해요.

PUT _ingest/pipeline/kv-pipeline
{
  "description" : "Pipeline that extracts user profile data",
  "processors" : [
    {
      "kv" : {
        "field" : "message",
        "field_split": " ",
        "value_split": "="
      }
    }
  ]
}

{% include copy-curl.html %}

2단계(선택 사항): 파이프라인 테스트

문서를 인제스트하기 전에 파이프라인을 테스트하는 것이 좋아요. {: .tip}

파이프라인을 테스트하려면 다음 쿼리를 실행해요.

POST _ingest/pipeline/kv-pipeline/_simulate
{  
  "docs": [  
    {  
      "_index": "testindex1",  
      "_id": "1",  
      "_source":{  
         "message": "goodbye=everybody hello=world"  
      }  
    }  
  ]  
}

{% include copy-curl.html %}

응답

다음 예시 응답은 원래 message 필드 외에도 문서에 키-값 쌍에서 생성된 필드가 포함되어 있음을 확인해요.

{  
  "docs": [  
    {  
      "doc": {  
        "_index": "testindex1",  
        "_id": "1",  
        "_source": {  
          "hello": "world",  
          "message": "goodbye=everybody hello=world",  
          "goodbye": "everybody"  
        },  
        "_ingest": {  
          "timestamp": "2023-12-06T09:59:21.823292Z"  
        }  
      }  
    }  
  ]  
}

3단계: 문서 인제스트

다음 쿼리는 testindex1이라는 인덱스에 문서를 인제스트해요.

PUT testindex1/_doc/1?pipeline=kv-pipeline
{  
  "message": "goodbye=everybody hello=world"  
}  

{% include copy-curl.html %}

4단계(선택 사항): 문서 검색

문서를 검색하려면 다음 쿼리를 실행해요.

GET testindex1/_doc/1

{% include copy-curl.html %}

더 알아보기 (Learn more)