더북(TheBook)

먼저 프로젝션 푸시다운projection pushdown은 요청된 열만 읽습니다. 다음으로 조건자 푸시다운predicate pushdown은 필터가 제외시킬 행을 역직렬화하지 않습니다. 마지막으로 부분 집계 및 함수/표현식 평가를 푸시다운해서 중간 형태 데이터를 구체화materialize되지 않게 합니다. 추상화를 다음 질문처럼 정의할 수 있습니다. 어떤 열이 필요한가요? 어떻게 행을 필터링할 건가요? 어떤 표현식을 데이터에 적용하고 싶나요?

다양한 스토리지 특성이 푸시다운 성능에 영향을 미칩니다. 열 기반 레이아웃(예를 들어 아파치 파케이Apache Parquet)을 사용하면 프로젝션 푸시다운이 가능해지고 인코딩과 압축을 더 잘할 수 있습니다. 최솟값이나 최댓값 같은 다양한 세부 수준 통계가 있다면 조건자 푸시다운을 사용할 수 있습니다. 이를테면 행 그룹의 최댓값이 항상 필터 조건을 만족하는 값보다 작다면, 행 그룹을 읽거나 역직렬화할 필요가 전혀 없습니다. 데이터 정렬과 파티셔닝, 어쩌면 아파치 아이스버그Apache Iceberg1가 가능하게 만든, 서로 다른 열 기준의 정렬과 파티셔닝을 통해 압축과 조건자 푸시다운의 효율성이 올라갑니다. 통계를 적용하여 데이터에서 읽을 범위를 더 정확하게 좁힐 수 있기 때문입니다.

 

 


1 역주 아이스버그가 지원하는 기능에 대해서는 공식 문서 https://iceberg.apache.org/spec/를 참고하세요.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.