2024년 11월 16일
출처: 엘라스틱서치실무가이드
<aside>
📖 [LIST]
</aside>
집계 - 190p
집계(Aggregation)는 데이터를 그룹화하고 통계를 구하는 기능
엘라스틱서치가 집계에 사용하는 기술
- 캐시 - DB에서는 View 테이블 사용 - 리소스가 굉장함
- 집계 쿼리로 값을 조회하면 엘라스틱서치의 마스터 노드가 여러 노드에 있는 데이터를 집계해 질의에 답변한다. 데이터의 양이 클수록 집계에는 많은 양의 CPU와 메모리 자원이 소모된다. 질의에 응답하는 데 걸리는 시간 또한 길어진다. 이런 문제는 노드의 하드웨어 성능을 높여 해결할 수 있지만 하드웨어 업그레이드에는 막대한 비용이 들기 때문에 올바른 해결책이라 하기 어렵다.
- 가장 현실적이고 비용 효율적인 해결책은 엘라스틱서치의 ‘캐시’를 이용하는 것이다. 캐시는 질의의 결과를 임시 버퍼(캐시)에 둔다. 이후 처리해야 하는 같은 질의에 대해 매번 결과를 계산하는 게 아니라 버퍼에 보관된 결과를 반환한다.
- Node query Cache
- 노드의 모든 샤드가 공유하는 LRULeast-Recently-Used 캐시
Aggregation API
- 버킷 집계: 쿼리 결과로 도출된 도큐먼트 집합에 대해 특정 기준으로 나눈 다음 나눠진 도큐먼트들에 대한 산술 연산을 수행한다. 이때 나눠진 도큐먼트들의 모음들이 각 버킷에 해당된다.
- 메트릭 집계: 쿼리 결과로 도출된 도큐먼트 집합에서 필드의 값을 더하거나 평균을 내는 등의 산술 연산을 수행한다.
- 파이프라인 집계: 다른 집계 또는 관련 메트릭 연산의 결과를 집계한다.
- 행렬 집계: 버킷 대상이 되는 도큐먼트의 여러 필드에서 추출한 값으로 행렬 연산을 수행한다. 이를 토대로 다양한 통계정보를 제공하고 있으나 아직은 공식적인 집계 연산으로 제공되지 않고 실험적인 기능으로 제공되기 때문에 사용할 때 주의해야 한다. → 스펙 아웃
file이 flunted로 추가된다.
도커 내부에 flunted 드라이버가 추가되어있음 - ELFK