Transform type mappings
출처: 문서
본문
타입 매핑 변환
오래된 Elasticsearch 데이터 세트는 다음 예시처럼 인덱스 하나에 여러 매핑 타입을 담고 있을 수 있어요.
{
"mappings": {
"book": {
"properties": {
"title": { "type": "text" }
}
},
"movie": {
"properties": {
"title": { "type": "text" }
}
}
}
}
최신 OpenSearch는 이 구조를 지원하지 않아요. 스냅샷에 멀티 타입 정의가 들어 있다면 metadataMigrationConfig.multiTypeBehavior 파라미터가 Migration Assistant가 이를 처리하는 방식을 결정해요. 다음 표에서 유효한 값을 설명해요.
| 옵션 | 동작 | 사용 시점 |
|---|---|---|
NONE |
멀티 타입 매핑을 만나면 마이그레이션을 실패 처리해요. | 진행하기 전에 멀티 타입 문제를 명시적으로 처리하고 싶을 때 사용해요. |
UNION |
모든 타입을 하나의 대상 인덱스에서 하나의 매핑으로 병합해요. | 타입들이 하나로 병합된 매핑 아래에서 공존할 수 있을 만큼 호환될 때 사용해요. |
SPLIT |
각 타입을 별도의 대상 인덱스로 라우팅해요. | 서로 다른 타입을 서로 다른 인덱스로 나눠야 하거나, 병합하면 필드 충돌이 생길 때 사용해요. |
멀티 타입 동작 구성하기
워크플로 구성에서 multiTypeBehavior를 적절한 값으로 설정한 뒤 파일럿 마이그레이션을 실행하고, 전체 데이터 세트를 마이그레이션하기 전에 결과로 나온 대상 매핑과 인덱스 레이아웃을 검증하세요. 워크플로 구성을 편집하려면 다음 명령어를 실행해요:
workflow configure sample --load
workflow configure edit
{% include copy.html %}
커스텀 타입 트랜스포머
내장된 multiTypeBehavior 옵션만으로는 부족하다면, 메타데이터 마이그레이션 설정을 통해 커스텀 트랜스포머 구성을 제공할 수 있어요.
이건 전문가용 경로예요. 다음 경우에 사용해요:
- 대상 인덱스 이름이 특정 패턴을 따라야 할 때
- 선택된 타입만 마이그레이션해야 할 때
- 내장된 워크플로 옵션과 다른 라우팅 로직이 필요할 때
결과 검증하기
파일럿 메타데이터 실행 후에는 다음 항목을 확인해요:
- 생성된 대상 인덱스 이름
- 병합으로 인해 발생한 필드 충돌
- alias와 템플릿 동작
- 특정 인덱스 레이아웃을 전제로 하는 애플리케이션 쿼리.
이 변환이 인덱스 이름이나 필드 의미를 바꾼다면, 클라이언트 구성도 함께 바꿔야 할 수 있어요.