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