Transform field types
출처: 문서
본문
필드 타입 변환
Migration Assistant는 메타데이터 마이그레이션 중에 흔히 발생하는 여러 필드 타입 호환성 문제를 자동으로 해결해 줘요. 다음 섹션에서는 기본 제공 변환으로 충분한 경우와 커스텀 트랜스포머가 필요한 경우를 설명해요.
기본 제공 변환
커스텀 로직을 만들기 전에, 마이그레이션이 이미 기본 제공 메타데이터 변환으로 커버되는지 먼저 확인해 보세요:
string을text와keyword로 변환flattened를flat_object로 변환dense_vector를knn_vector로 변환- 최신 OpenSearch 및 Serverless NextGen 대상을 위한 추가 벡터 호환성 조정
커스텀 필드 타입 트랜스포머
커스텀 트랜스포머는 다음 경우에만 사용하세요:
- 기본 제공 규칙이 대상 동작과 맞지 않을 때
- 애플리케이션이 특정 필드 재작성을 필요로 할 때
- 기본값이 커버하지 않는 방식으로 매핑 속성을 제거하거나 조정해야 할 때
커스텀 메타데이터 변환은 다음 메타데이터 마이그레이션 설정을 통해 구성해요:
transformerConfigtransformerConfigBase64transformerConfigFile
커스텀 트랜스포머를 구성하려면 샘플 구성을 로드한 다음 워크플로를 편집하세요:
workflow configure sample --load
workflow configure edit
{% include copy.html %}
transformerConfigFile을 구성하려면 추가 설정이 필요하고, 고급 사용 사례를 위한 기능이에요: 파일이 Migration Console 컨테이너 내부에서 접근 가능해야 해요. Kubernetes 볼륨으로 마운트하거나 커스텀 컨테이너 이미지에 포함할 수 있어요.
JavaScript 기반 트랜스포머
JsonJSTransformerProvider를 통해 JavaScript 기반 메타데이터 트랜스포머를 제공할 수 있어요. 대표적인 사용 사례는 다음과 같아요:
- 더 이상 사용되지 않는 필드 타입 교체
- 호환되지 않는 매핑 속성 제거
- 대상에 도달하기 전에 필드 정의 정규화
구성 예시
다음 예시는 JavaScript 파일을 참조하는 트랜스포머 디스크립터를 보여줘요:
[
{
"JsonJSTransformerProvider": {
"initializationScriptFile": "/shared-logs-output/field-type-converter.js",
"bindingsObject": "{}"
}
}
]
{% include copy.html %}
권장 순서
기본 제공 변환이 요구 사항을 커버하지 않는다는 것을 확인한 후에만 커스텀 트랜스포머를 사용하세요. 다음 순서를 따르세요:
- assessment를 실행해요.
- 기본 제공 변환 페이지를 살펴봐요.
- 파일럿 워크플로를 구성해요.
- 파일럿 워크플로 결과가 필요로 할 때만 커스텀 트랜스포머를 추가해요.
변환된 메타데이터 검증
메타데이터 단계가 실행된 후에는 대상 매핑을 확인하세요:
console clusters curl target /my-index/_mapping
workflow show
{% include copy.html %}
커스텀 트랜스포머가 필드 이름이나 의미를 변경한다면, 전체 백필(backfill) 또는 커트오버(cutover)로 진행하기 전에 애플리케이션 쿼리를 검증하세요.