개요

Athena에 Table Format으로 iceberg를 적용하기 위해 조사한 내용을 정리해둔다.

주요 특징

  • schema evolution
    • 스키마 add, drop, update, rename 가능
  • hidden partitioning
    • hive의 명시적 partitioning대비 데이터 볼륨, 쿼리 패턴에 따라 파티션을 자동으로 지정하고 진화하게 운영됨
    • 사견 : 데이터 볼륨에 따라 파티션이 자동 변경되는것은 장점일수도 있는데 검증이 필요할듯
  • partition layout evolution
    • 위와 이어지는 얘기인데 파티션이 데이터 크기, 쿼리 패턴에 의해 계속 바뀜,
    • 사용자는 write 쿼리를 재작성 할 필요는 없음, 특정 시점에 write split전략이 바뀌면 바꾸어 저장함
    • rewrite partition 기능을 통해 전체 데이터 rewrite없이 re-partitioning도 가능
    • sort order 또한 evolution됨
  • time travle
    • 특정 시점의 특정 스키마로 쿼리를 날릴수 있는 기능
    • 사견 : 필자는 별 필요성을 못 느낌

신뢰성과 성능

  • scanning planning
    • 쿼리에서 필요한 파일만 미리 찾는것
    • 메타데이터 pruning과 data filtering을 같이 진행함
  • advanced filtering
    • manifest filtering
      • manifest 파일 구조는 manifest file list와 manifest files로 구성됨
        • manifest file list : 각 파티션의 값 range별로 manifest 파일 리스트 관리, expire된 manifest 정보도 파악
        • manifest files : 파티션 데이터와 칼럼별 통계를 가짐
    • data filtering
      • manifelst file에서는 칼럼 레벨로 null count, lower bounds, upper bounds 등을 통해 쿼리에 필요한 파일을 선별한다.

참고자료