🧊 Apache Iceberg로 S3 비용 90% 줄이기

기존에 많이 사용되던 Apache Hive는 Hadoop 에코시스템이나 HDFS사용을 고려해서 디자인 되었었습니다. 요즘에는 클라우드를 많이 사용하고 AWS S3와 같은 스토리지를 많이 사용하는데 Hive는 이에 최적화되어있지는 않습니다. 그렇다보니 데이터 인프라에서는 새로운 data lake 테이블 포맷에 대한 관심이 점점 커지고 있습니다. 대표적으로는 Apache Hudi, Apache Iceberg, Delta Lake가 있고, ACID transaction, schema evolution, time travel 등의 기능을 제공함으로써 빅데이터를 다룰때 퍼포먼스나 비용적으로 효율적일 수 있게 해줍니다. 이 블로그 글은 Apache Iceberg의 기능들과 어떻게 비용을 절감했는지 공유해주고 있습니다. 💰 Apache Iceberg로 퍼포먼스를 올리고 비용을 줄일 수 있었던 이유 💰 - Metadata에 테이블 구조, 파티션, 테이블을 구성하는 데이터 파일들을 저장하고, Apache Iceberg는 snapshot방법을 사용해서 O(1)로 접근할 수 있게 해줍니다. - Iceberg로는 file size를 default로 512MB로 설정해서 작은 파일들이 많이 생성되는걸 막을 수 있었습니다. 이를 통해 S3에 쿼리하는 비용을 줄일 수 있었습니다. 또한, Spark Job들도 query planning을 할때 더 적은 파일 수를 읽을 수 있었기에 I/O의 수가 줄어들어서 EMR 비용도 줄일 수 있었습니다. - Apache Iceberg여서는 아니지만, 이 회사에서는 기존에 Apache ORC 파일 포맷과 Snappy 압축을 사용했다가 -> Apache Parquet 파일 포맷과 Zstandard 압축 방식으로 변경하면서 파일 용량을 더 줄일 수 있었습니다. 이 글은 Apache Iceberg로 비용 줄이는 것에 초점을 두고 있는데 나중에는 Apache Icerberg의 schema evolution이나 time travel같은 기능들에 소개나 활용에 대한 글들이 있다면 공유해보려고 합니다.

Apache Iceberg Reduced Our Amazon S3 Cost by 90%

Medium

Apache Iceberg Reduced Our Amazon S3 Cost by 90%

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2022년 10월 22일 오전 5:35

 • 

저장 25조회 8,379

댓글 0