CSV processor
출처: 문서
본문
이 문서는 OpenSearch 인제스트 파이프라인에서 csv 프로세서를 사용하는 방법을 설명해요. 대규모 또는 복잡한 데이터셋을 다루는 경우 OpenSearch 클러스터에서 실행되는 Data Prepper csv 프로세서를 사용하는 것을 고려해 보세요.
{: .note}
CSV 프로세서
csv 프로세서는 CSV를 파싱하여 문서의 개별 필드로 저장하는 데 사용돼요. 프로세서는 빈 필드를 무시해요.
구문
다음은 csv 프로세서의 구문이에요.
{
"csv": {
"field": "field_name",
"target_fields": ["field1, field2, ..."]
}
}
{% include copy.html %}
구성 매개변수
다음 표는 csv 프로세서의 필수 및 선택적 매개변수를 보여줘요.
| 매개변수 | 필수/선택 | 설명 |
|---|---|---|
field |
필수 | 변환할 데이터가 포함된 필드의 이름이에요. 템플릿 스니펫을 지원해요. |
target_fields |
필수 | 파싱된 데이터를 저장할 필드의 이름이에요. |
description |
선택 | 프로세서에 대한 간단한 설명이에요. |
empty_value |
선택 | 필수가 아니거나 적용되지 않는 선택적 매개변수를 나타내요. |
if |
선택 | 프로세서 실행 조건이에요. |
ignore_failure |
선택 | 프로세서가 오류를 만나도 계속 실행할지 여부를 지정해요. true로 설정하면 실패를 무시해요. 기본값은 false예요. |
ignore_missing |
선택 | 프로세서가 지정된 필드를 포함하지 않은 문서를 무시할지 여부를 지정해요. true로 설정하면 필드가 없거나 null인 경우 문서를 수정하지 않아요. 기본값은 false예요. |
on_failure |
선택 | 프로세서가 실패할 경우 실행할 프로세서 목록이에요. |
quote |
선택 | CSV 데이터에서 필드를 인용하는 데 사용되는 문자예요. 기본값은 "예요. |
separator |
선택 | CSV 데이터에서 필드를 구분하는 데 사용되는 구분자예요. 기본값은 ,예요. |
tag |
선택 | 프로세서의 식별 태그예요. 동일한 유형의 프로세서를 구분하기 위해 디버깅에 유용해요. |
trim |
선택 | true로 설정하면 프로세서가 텍스트의 앞뒤 공백을 제거해요. 기본값은 false예요. |
프로세서 사용하기
파이프라인에서 프로세서를 사용하려면 다음 단계를 따라 해요.
1단계: 파이프라인 생성하기
다음 쿼리는 resource_usage를 cpu_usage, memory_usage, disk_usage라는 세 개의 새 필드로 분할하는 csv-processor라는 파이프라인을 생성해요.
PUT _ingest/pipeline/csv-processor
{
"description": "Split resource usage into individual fields",
"processors": [
{
"csv": {
"field": "resource_usage",
"target_fields": ["cpu_usage", "memory_usage", "disk_usage"],
"separator": ","
}
}
]
}
{% include copy-curl.html %}
2단계(선택 사항): 파이프라인 테스트하기
문서를 인제스트하기 전에 파이프라인을 테스트하는 것이 좋아요. {: .tip}
파이프라인을 테스트하려면 다음 쿼리를 실행해요.
POST _ingest/pipeline/csv-processor/_simulate
{
"docs": [
{
"_index": "testindex1",
"_id": "1",
"_source": {
"resource_usage": "25,4096,10",
"memory_usage": "4096",
"disk_usage": "10",
"cpu_usage": "25"
}
}
]
}
{% include copy-curl.html %}
응답
다음 예시 응답은 파이프라인이 예상대로 작동하고 있음을 확인해 줘요.
{
"docs": [
{
"doc": {
"_index": "testindex1",
"_id": "1",
"_source": {
"memory_usage": "4096",
"disk_usage": "10",
"resource_usage": "25,4096,10",
"cpu_usage": "25"
},
"_ingest": {
"timestamp": "2023-08-22T16:40:45.024796379Z"
}
}
}
]
}
3단계: 문서 인제스트하기
다음 쿼리는 testindex1이라는 인덱스에 문서를 인제스트해요.
PUT testindex1/_doc/1?pipeline=csv-processor
{
"resource_usage": "25,4096,10"
}
{% include copy-curl.html %}
4단계(선택 사항): 문서 검색하기
문서를 검색하려면 다음 쿼리를 실행해요.
GET testindex1/_doc/1
{% include copy-curl.html %}