일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- Elasticsearch
- aggs
- zip 파일 암호화
- MySQL
- docker
- sort
- License
- 900gle
- Test
- aggregation
- TensorFlow
- plugin
- API
- Java
- Mac
- query
- 차트
- licence delete curl
- analyzer test
- 파이썬
- token filter test
- high level client
- license delete
- Python
- springboot
- zip 암호화
- Kafka
- flask
- ELASTIC
- matplotlib
Archives
- Today
- Total
개발잡부
글로벌 오디널(Global Ordinals)이란? 본문
반응형
Elasticsearch에서 eager_global_ordinals는 키워드와 같이 정렬, 집계 또는 필터링에 사용되는 필드의 고유 term들을 빠르게 참조하기 위해 내부적으로 생성하는 글로벌 오디널(Global Ordinals)을 인덱스 새로고침(refresh) 시점에 미리 계산하도록 지시하는 설정입니다.
글로벌 오디널(Global Ordinals)이란?
- 정의:
글로벌 오디널은 특정 필드의 모든 고유 term들을 정수 형태로 매핑한 데이터 구조로, 이를 통해 정렬, 집계, 필터링 등의 연산 시 문자열 비교 대신 정수 비교를 사용하여 성능을 개선할 수 있습니다. - 사용 목적:
키워드 필드와 같은 텍스트 데이터를 대상으로 빠른 집계 및 정렬을 가능하게 하며, 이러한 작업의 속도와 메모리 효율을 높이는 역할을 합니다.
eager_global_ordinals의 동작 원리
- 지연 계산(Lazy) vs. 선제 계산(Eager):
기본적으로 글로벌 오디널은 처음 필요할 때 계산되지만, eager_global_ordinals 설정을 활성화하면 인덱스가 새로고침될 때마다 즉시 계산됩니다. - 장점:
- 쿼리 실행 시 초기 오버헤드를 줄여 응답 속도를 향상시킵니다.
- 집계나 정렬 등의 연산을 수행할 때, 이미 계산된 오디널을 활용할 수 있습니다.
- 단점:
- 인덱스 새로고침(refresh) 시 추가적인 계산 부하가 발생할 수 있습니다.
- 자주 변경되지 않는 필드나 낮은 cardinality를 가진 필드에서는 반드시 필요하지 않을 수 있습니다.
설정 방법
필드 매핑 시, 해당 필드에 대해 eager_global_ordinals 옵션을 활성화할 수 있음.
PUT /my_index
{
"mappings": {
"properties": {
"my_keyword_field": {
"type": "keyword",
"eager_global_ordinals": true
}
}
}
}
언제 사용해야 할까
- 빈번한 집계 및 정렬:
다수의 집계(aggregations)나 정렬(sort) 쿼리가 해당 필드를 대상으로 이루어진다면 eager_global_ordinals를 활성화하여 쿼리 지연을 줄일 수 있습니다. - 높은 검색 성능 요구:
사용자 경험을 위해 빠른 응답이 필요한 서비스에서는 이 옵션을 고려해볼 수 있습니다. - 인덱스 갱신 빈도가 낮은 경우:
데이터 변경이 자주 일어나지 않는 경우, 새로고침 시 계산 부하가 크게 문제가 되지 않으므로 활성화하는 것이 유리합니다.
요약하면, eager_global_ordinals는 Elasticsearch가 글로벌 오디널을 미리 계산하여 쿼리 성능을 개선하는 기능으로, 필드에 대해 빠른 집계 및 정렬 성능을 필요로 하는 경우 유용하게 사용될 수 있습니다.
반응형
'ElasticStack > Elasticsearch' 카테고리의 다른 글
[es] top_hit (0) | 2024.10.15 |
---|---|
[es] Shard 구성 변경 (0) | 2024.08.13 |
[es] 샤드 구성 변경 테스트 (0) | 2024.08.08 |
[es] data node cpu 튀는 현상 (0) | 2024.07.31 |
[es] data node cpu 안정화 (1) | 2024.07.19 |
Comments