티스토리 뷰
RDMS vs Elasticsearch
MySQL => 데이터베이스 => 테이블 => 열 / 행
Elasticsearch => Indices => Types => 문서
Type : 7.x버전 이상에서 사용되지 않음
인덱스 관리
인덱스는 한 개 혹은 여러 개의 샤드로 구성(샤드는 루씬 인덱스)
다량의 인덱스와 샤드는 Elasticsearch의 클러스터 스테이트 업데이트 작업을 느리게 하는 원인이 될 수 있다.
각 샤드에는 메모리에 보관하고 힙 공간을 차지하는 데이터가 있음 => 세그먼트
세그먼트가 샤드에 크기에 비례하지는 않는다 => 작은 샤드 여러개 보다 큰 샤드 하나가 좋다
(기존 6.x버전에서 기본값으로 5였던 샤드의 개수가 7.x 버전 부터는 1로 변경된 것과 관련이 있는거 같음)
샤드의 크기를 20GB ~ 40GB 정도의 사이즈로 관리하는 것이 좋다
1개 샤드의 권장하는 최대 크기를 넘지 않는 선이라면, 작은 크기의 여러 샤드보다는 큰 크기의 적은 샤드가 더 효율적
인덱스 관리방법 중 Index lifecycle management(ILM)
인덱스 생명주기 정책 만들기
시간 및 인덱스 크기에 따라 rollover 정책 설정 가능
삭제 설정, 검색 설정 등의 다양한 설정 가능
정책 적용하기
인덱스 템플릿에 정책을 적용해서 생성되는 인덱스 관리 별칭(aliases) 필수
웬만하면 키바나로 관리하는게 매우 편하다
PUT _template/test
{
"index_patterns": ["test*"],
"settings": {
"lifecycle": {
"name": "logstash-policy",
"rollover_alias": "test"
},
"number_of_shards": 1,
"number_of_replicas": 0
}
}
참고 문서
www.elastic.co/kr/blog/how-many-shards-should-i-have-in-my-elasticsearch-cluster
www.elastic.co/kr/blog/what-is-an-elasticsearch-index
'Elastic Stack' 카테고리의 다른 글
Logstash 로그 수집(1) (0) | 2021.01.12 |
---|---|
Elasticsearch + Docker + TLS (1) | 2021.01.11 |
댓글