Developers Haven

(DH)블로그는 개발자들이 기술 정보를 찾아볼 수 있는 안식처가 되고 싶음을 희망하여 시작하게 되었습니다. 공부한 내용과 성장 과정을 기록해두었으니 편히 둘러보시길 바랍니다.

Welcome to DH's Blog

[기술공부]/Data

Apache Iceberg vs Apache Hive 차이점 - (1)

DH’s Blog 2023. 11. 3. 14:32
반응형

 

여러 시간에 걸쳐 Apache Iceberg의 구조와 특징에 대해서 하나씩 살펴보았다. 공부를 하다보니 문득 'Iceberg가 Hive 대비 어떤 장점을 가지고 나온 것일까'하는 궁금증이 생겼다. 그래서 이번 시간에는 Iceberg와 Hive의 기술적 차이점에 대해서 알아보겠다.

 

 

 

먼저, Hive와 Iceberg에 대해서 간단히 살펴보자.

Apache Hive

  • 2007년 Facebook에 의해 개발되어 2008년부터 오픈소스로 공개되었다.
  • Hadoop ecosystem의 하나로 데이터를 모델링하고 프로세싱하는 '데이터 웨어하우징 솔루션'이다.
  • SQL과 유사한 HiveQL를 이용하여 데이터 분석을 쉽게 하도록 만들어주고, HiveQL를 실행하면 내부에서 자동으로 MapReduce Job으로 변환하여 실행해준다.

 

Apache Iceberg

  • Netflix에서 개발한 오픈 소스 테이블 포맷이다.
  • 클라우드, 스토리지, 컴퓨팅 엔진 등의 종류와 상관없이 페타바이트(Pb) 규모의 대용량 데이터를 다룰 수 있다.
  • metadata를 파일로 관리(=트리 구조)해서 데이터를 더 빠르게 조회하고 사용할 수 있다.

 

 

 

그럼, Hive와 Iceberg 간의 주요 차이점을 살펴보자.

 

  Hive Iceberg
Schema 변경 스키마 구조를 변경하면 전체 데이터 파일을 rewrite 해야해서 시간이 많이 소요된다. 스키마 구조를 변경하면 메타데이터만 변경되고, 실제 데이터 파일은 rewrite 하지 않아도 된다.
Storage Overhead (병목현상) 메타데이터를 RDB(MetaStore)에 저장하는데, 데이터가 쌓이면 스토리지 과부하로 RDB 성능 문제가 발생한다. 메타데이터를 file로 관리하여 스토리지 과부하 문제를 방지할 수 있다.
Hidden Partition 파티션을 직접 명시하여 컬럼 처럼 사용한다. 파티션을 직접 명시하지 않고도 파티션 기능을 사용할 수 있다.
Process 주기적으로 대량의 데이터를 모아서 일괄로 한번에 처리하는 배치 프로세스에 적합하다. 데이터의 발생과 동시에 처리하는 실시간 처리에 적합하다.
Performance 열 기반의 파일 포맷(orc, parquet)을 사용해서 disk로부터 읽는 데이터 범위를 줄여 성능을 높일 수 있다. snapshot, hidden partition, metadata file 등을 이용해서 빠른 데이터 조회와 사용이 가능하다.

 

(참고) 트랜잭션 ACID

트랜잭션은 쿼리 작업 단위를 의미하며, 트랜잭션 ACID는 데이터베이스 내에서 발생하는 트랜잭션의 안정성을 보장할 수 있는 성질을 의미한다.

  • Atomicity : 한 트랜잭션 내의 작업이 모두 성공하거나 실패해야 한다. (일부만 성공할 수는 없다)
  • Consistency : 트랜잭션이 성공하면 전체 데이터베이스 시스템에 반영되어야 한다.
  • Isolation : 트랜잭션은 서로 독립적으로 실행되며 다른 사용자의 작업에 영향을 주지 않는다.
  • Durability : 트랜잭션 작업이 완료되면 시스템 에러나 장애가 발생해도 상태를 유지해야 한다.

 

 

 

 

 

 

단순히 차이점만 비교해보면 Iceberg가 성능이 더 좋아 보일 수 있다. 하지만 본인이 사용하는 데이터 처리 프로세스와 쿼리 방식에 따라 Hive가 더 나은 성능을 보일 수도 있다. 또한, Iceberg는 계속 업그레이드되는 중이어서 Hive에 비해 오류 해결을 위한 커뮤니티가 많이 활성화되어 있지 않다. 그렇기 때문에 각 장단점을 통해 본인에게 적합한 것이 무엇인지 생각해보길 추천한다.

 

위의 내용을 정리하다보니 글이 길어져서, 다음장에 이어서 설명해보도록 하겠다.

 

참고사이트 - https://www.linkedin.com/pulse/hive-vs-iceberg-choosing-right-big-data-technology-your-pottammal/

 

 

반응형