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:
'Elasticsearch' 카테고리의 다른 글
Elasticsearch: Hybrid Search Optimization Tips (0) | 2024.08.12 |
---|---|
Elasticsearch: kNN Search Performance Parameter (0) | 2024.08.05 |
Elasticsearch: Dense vector field type (0) | 2024.08.05 |
Elasticsearch: kNN Methods (0) | 2024.08.02 |
Elasticsearch: 벡터 유사도 메트릭(similarity metric) (0) | 2024.08.02 |