-
엘라스틱서치 템플릿공부하기/엘라스틱서치 2024. 2. 13. 15:38
-> 인덱스를 생성할 때마다 매번 설정값을 지정하는 수고를 덜 수 있다.
-> 템플릿을 사전에 정의해두면 인덱스 생성 시 정의한 템플릿 설정대로 인덱스가 생성된다.
인덱스 템플릿
- index_petterns 필드를 통해 인덱스 패턴을 지정
- 새로 생성되는 인덱스의 이름이 패턴과 부합하면 템플릿에 맞춰 인덱스가 생성된다.
- priority 필드 값을 이용하여 템플릿간 우선순위를 조정할 수 있다.
문법
PUT _index_template/템플릿이름 { "index_pattern": [...], "priority": 원하는값, "template": { "settings": { ... } }, ... }
-> 실습
컴포넌트 템플릿
- 템플릿에서 중복되는 작은 영역을 컴포넌트화하여 사용
문법
PUT _component_template/컴포넌트템플릿이름 { "tempalte": { // mappings, settings 등등 ... } } // 다른 템플릿에서 컴포넌트 템플릿을 사용할 경우 { ... "composed_of": [ "컴포넌트템플릿이름", ... ] }
-> 실습
레거시 템플릿
- 엘라스틱서치 7.8.0버전 이전 버전에서 주로 사용
- 컴포넌트 템플릿을 사용할 수 없다는 점을 제외하고는 인덱스 템플릿과 동일한 기능
- 우선순위가 낮은 템플릿
- 엘라스틱서치는 인덱스가 생성되면 인덱스 템플릿을 먼저 확인한다.
- 매칭되는 인덱스 템플릿이 존재하지 않는 경우 레거시 템플릿을 확인한다.
문법
PUT _template/템플릿이름 { "index_patterns": [...], "template": { "settings": { ... }, "mappings": { ... } } }
동적 템플릿
- 인덱스에 새로 들어온 필드의 매핑을 사전에 정의한대로 동적으로 생성
- 인덱스를 생성할 때, 인덱스 템플릿을 생성할 때 함께 지정한다.
문법
{ ... "mappings": { "dynamic_templates": [ { "동적템플릿이름": { ... match conditions ... "mapping": { ... } } }, ... ] } }
* match conditions
- match_mapping_type : 새로 들어오는 데이터의 타입을 JSON 파서를 이용해 확인
- boolean, double, long, string, object, date
- match / unmatch : 필드의 이름이 지정된 패턴과 일치하는지 확인
* 동적 템플릿 - mappings.type을 통해 저장되는 필드의 타입을 매핑할 수 있음
-> 실습
빌트인 인덱스 템플릿
- 엘라스틱서치 7.9.0 이상 버전은 비트인 인덱스 템플릿을 제공한다.
- 로그, 메트릭 관련 빌트인 인덱스 패턴이 존재하고 priority는 100으로 설정되어 있음
- metrics-*-*
- logs-*-*
- 내장된 템플릿과 동일한 패턴을 사용하고 싶은 경우 priority값을 100보다 크게 설정하여야한다.
'공부하기 > 엘라스틱서치' 카테고리의 다른 글
엘라스틱서치 색인 API ( PUT | POST ) (0) 2024.02.25 엘라스틱서치 라우팅 (2) 2024.02.13 엘라스틱서치 애널라이저, 토크나이저, 노멀라이저 (0) 2024.02.13 엘라스틱서치 text, keyword 타입 (2) 2024.02.12 엘라스틱 서치와 루씬 요약 (2) 2024.02.12