집계 시 Composite aggregation
과 Sub Aggregation
둘 중 뭘 사용해야 할까 라는 고민을 했다.
상황에 맞춰서 쓰자 인데, 차이가 많이 나지 않는 경우에는 Compostie Aggregation을 쓰기로 했다.
예를 들어서 A
, B
라는 속성이 있을 때
Compostie aggregation에서는 term 조건으로 A, B를 주면 key 값을 A-B로 쌍으로 bucket을 생성함.
Sub Aggregation으로 term 하위 term 조건을 주면 A bucket들 하위에 B bucket들이 생성됨.
RDBMS로 치면 Group By 키가 2개 이상+엄청난 버켓이 생성되는 것이 아니라면 Composite Aggregation 사용하면 될 듯.
항상 조심 해야 될 건 데이터 많을 때는 항상 성능 테스트 해야함.
search-after
이용해서 버킷 페이징도 조금 더 효과적으로 할 수 있기 때문에 compostie Aggregation이 좀 더 효과적이라는 결론을 내렸다.