[Review] Modeling data for fast aggregations - on Elastic's Blog

Elastic/Elasticsearch 2015. 10. 30. 11:43

elastic blog에 올라온 글에 대한 개인 리뷰 입니다.

그냥 정리 차원에서 작성해 보겠습니다.


[원문]

https://www.elastic.co/blog/modeling-data-for-fast-aggregations


글 제목이나 링크만 봐도 어떤 내용인지 감이 오실 겁니다.

"aggregation 성능을 올리기 위한 모델링"

딱 봐도 끌리는 제목이죠.


이 글에서 제시해 주는 건 단순 명료 합니다.

query와 aggregation 조건에 대한 attribute 를 각 문서에 미리 정의를 해 두는 것으로 aggregation operation 수를 줄여 주는 것입니다.

문서에서는 6번의 aggregation operations를 attribute 설정을 통해 2번의 aggregation operations 수행으로 줄어든 것을 확인 시켜 주고 있습니다.


당연히 색인시점에 query, aggregation 조건을 분리해서 문서에 대한 attribute 설정을 하고 색인을 해야 합니다.

즉, 여기서 단점이 바로 보이시죠.

문서에도 나와 있습니다.

조건이 변경 되면 reindexing 을 해야 한다는 것입니다.


잘 아시겠지만 모든 요건을 만족하는 그런 아키텍쳐도, 모델링도 저는 보지 못한 것 같습니다.

항상 그렇지만 연구하고 요건을 충족 시킬수 있는 구성과 모델이 뭔지 실험하고 적용해 보지 않고서는 답을 찾을 수 없지 않을까 생각 합니다.


정리하면,

pre-compute 를 통한 문서의 attribute 정보 추가로 aggregation 수를 줄여 수행 성능을 빠르게 할 수 있다는 것입니다.


: