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

Split ingest processor

원문 보기 위키 갱신

출처: 문서

본문

Split 수집 프로세서

split 프로세서는 지정된 구분자를 기준으로 문자열 필드를 부분 문자열 배열로 분할하는 데 사용해요.

다음은 split 프로세서의 구문이에요:

{
  "split": {
    "field": "field_to_split",
    "separator": "<delimiter>",
    "target_field": "split_field"
  }
}

{% include copy.html %}

구성 매개변수

다음 표는 split 프로세서의 필수 및 선택적 매개변수를 나열해요.

매개변수 필수/선택 설명
field 필수 분할할 문자열이 포함된 필드예요.
separator 필수 문자열을 분할하는 데 사용되는 구분자예요. 정규 표현식 패턴일 수 있어요.
preserve_trailing 선택 true로 설정하면 결과 배열에 빈 후행 필드(예: '')를 보존해요. false로 설정하면 결과 배열에서 빈 후행 필드가 제거돼요. 기본값은 false예요.
target_field 선택 부분 문자열 배열이 저장되는 필드예요. 지정하지 않으면 필드가 제자리에서 업데이트돼요.
ignore_missing 선택 프로세서가 지정된 필드를 포함하지 않는 문서를 무시할지 여부를 지정해요. true로 설정하면 프로세서가 필드의 누락된 값을 무시하고 target_field를 변경하지 않아요. 기본값은 false예요.
description 선택 프로세서에 대한 간단한 설명이에요.
if 선택 프로세서 실행을 위한 조건이에요.
ignore_failure 선택 프로세서가 오류를 만나도 계속 실행할지 여부를 지정해요. true로 설정하면 실패를 무시해요. 기본값은 false예요.
on_failure 선택 프로세서가 실패할 경우 실행할 프로세서 목록이에요.
tag 선택 프로세서의 식별 태그예요. 동일한 유형의 프로세서를 구별하기 위해 디버깅에 유용해요.

프로세서 사용하기

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

1단계: 파이프라인 생성

다음 쿼리는 split 프로세서를 사용하여 log_message 필드를 쉼표 문자로 분할하고 결과 배열을 log_parts 필드에 저장하는 split_pipeline이라는 파이프라인을 생성해요:

PUT _ingest/pipeline/split_pipeline
{
  "description": "Split log messages by comma",
  "processors": [
    {
      "split": {
        "field": "log_message",
        "separator": ",",
        "target_field": "log_parts"
      }
    }
  ]
}

{% include copy-curl.html %}

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

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

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

POST _ingest/pipeline/split_pipeline/_simulate
{
  "docs": [
    {
      "_source": {
        "log_message": "error,warning,info"
      }
    }
  ]
}

{% include copy-curl.html %}

응답

다음 예제 응답은 파이프라인이 예상대로 작동하고 있음을 확인해요:

{
  "docs": [
    {
      "doc": {
        "_index": "_index",
        "_id": "_id",
        "_source": {
          "log_message": "error,warning,info",
          "log_parts": [
            "error",
            "warning",
            "info"
          ]
        },
        "_ingest": {
          "timestamp": "2024-04-26T22:29:23.207849376Z"
        }
      }
    }
  ]
}

{% include copy-curl.html %}

3단계: 문서 수집

다음 쿼리는 testindex1이라는 인덱스에 문서를 수집해요:

PUT testindex1/_doc/1?pipeline=split_pipeline
{
  "log_message": "error,warning,info"
}

{% include copy-curl.html %}

응답

요청은 문서를 testindex1 인덱스에 인덱싱하고 인덱싱 전에 log_message 필드를 쉼표 구분자로 분할하며, 다음 응답과 같이 나타나요:

{
  "_index": "testindex1",
  "_id": "1",
  "_version": 70,
  "result": "updated",
  "_shards": {
    "total": 2,
    "successful": 1,
    "failed": 0
  },
  "_seq_no": 72,
  "_primary_term": 47
}

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

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

GET testindex1/_doc/1

{% include copy-curl.html %}

응답

응답은 log_message 필드가 쉼표 구분자로 분할된 값의 배열로 표시돼요:

{
  "_index": "testindex1",
  "_id": "1",
  "_version": 70,
  "_seq_no": 72,
  "_primary_term": 47,
  "found": true,
  "_source": {
    "log_message": "error,warning,info",
    "log_parts": [
      "error",
      "warning",
      "info"
    ]
  }
}

더 알아보기 (Learn more)