Ingest Pipelines의 목적:

  • 데이터를 인덱싱하기 전에 일반적인 변환 작업을 수행할 수 있게 해줍니다.
  • 예를 들어, 필드 제거, 텍스트에서 값 추출, 데이터 보강 등의 작업을 할 수 있습니다.
  • 인덱싱은 ES 의 인덱스에 데이터를 추가하는 걸 말함.

 

Ingest Pipleine 은 ES 의 인덱스에서 다른 인덱스로 데이터를 변환해서 넣는건가?

  • 데이터 소스 -> Ingest Pipeline -> Elasticsearch 인덱스 순으로 들어감. 먼저 인덱스에 넣는게 아님.

 

Ingest Pipeline 예시:

  • 다음과 같이 데이터를 ES 에 넣을 때 ingest pipleine 에 먼저 넣어줘야함. 그러면 pipeline 을 통해서 target index 에 데이터를 넣어줄거다.
PUT my-index/_doc/1?pipeline=my-pipeline
{
  "field": "value"
}

 

 

파이프라인의 구성:

  • 일련의 구성 가능한 작업인 '프로세서'로 구성됩니다.
  • 각 프로세서는 순차적으로 실행되며, 들어오는 문서에 특정 변경을 가합니다.

 

처리 과정:

  • 프로세서들이 실행을 마치면, Elasticsearch는 변환된 문서를 데이터 스트림이나 인덱스에 추가합니다.

 

파이프라인 관리:

  • Kibana의 Ingest Pipelines 기능이나 ingest API를 사용하여 생성하고 관리할 수 있습니다.
  • Elasticsearch는 이 파이프라인들을 클러스터 상태에 저장합니다

 

 

Create and manage pipelinesedit

Kibana를 통한 Pipeline 관리:

  • Kibana의 Stack Management > Ingest Pipelines에서 접근할 수 있습니다.
  • 이 곳에서 다음 작업을 수행할 수 있습니다:
    • Pipeline 목록 보기 및 세부 정보 확인
    • 기존 Pipeline 편집 또는 복제
    • Pipeline 삭제

 

Pipeline 생성 방법:

  • "Create pipeline > New pipeline" 버튼을 클릭하여 새로운 Pipeline을 생성할 수 있습니다.

 

API를 통한 Pipeline 관리:

  • Ingest API를 사용하여 Pipeline을 생성하고 관리할 수도 있습니다.
  • 예시로 제시된 API 요청은 두 개의 set 프로세서와 하나의 lowercase 프로세서를 포함하는 Pipeline을 생성합니다.
  • 프로세서들은 지정된 순서대로 순차적으로 실행됩니다.
PUT _ingest/pipeline/my-pipeline
{
  "description": "My optional pipeline description",
  "processors": [
    {
      "set": {
        "description": "My optional processor description",
        "field": "my-long-field",
        "value": 10
      }
    },
    {
      "set": {
        "description": "Set 'my-boolean-field' to true",
        "field": "my-boolean-field",
        "value": true
      }
    },
    {
      "lowercase": {
        "field": "my-keyword-field"
      }
    }
  ]
}

 

 

References:

+ Recent posts