728x90

데이터 레이크를 운영하면서 가장 고민되는 부분 중 하나가 테이블 포맷 선택인데요.

현재 가장 많이 사용되는 Iceberg, Hudi, Delta Lake에 대해 비교해보려 합니다.


근데 잠깐, 데이터 레이크는 왜 등장했을까요?

출처: https://learn.microsoft.com/ko-kr/azure/architecture/data-guide/scenarios/data-lake

 

전통적인 데이터 웨어하우스는 정형 데이터를 저장하고 분석하는데 최적화되어 있었습니다. 하지만 빅데이터 시대가 도래하면서 비정형 데이터도 처리해야 하고, 더 유연하고 확장 가능한 저장소가 필요해졌죠.

 

그래서 등장한게 '데이터 레이크'입니다. 모든 종류의 데이터를 원본 형태로 저장할 수 있고, 비용도 저렴하죠. 하지만 데이터 레이크에도 문제가 있었습니다.

 

데이터 레이크의 한계

  1. 데이터 스왐프화: 통제되지 않은 데이터가 쌓이다 보니 데이터 품질이 떨어지고 관리가 어려워졌습니다.
  2. ACID 미지원: 동시성 제어나 트랜잭션 보장이 어려웠습니다.
  3. 성능: 파일 기반 쿼리의 한계로 웨어하우스만큼 빠른 성능을 내기 어려웠습니다.
  4. 데이터 거버넌스: 메타데이터 관리나 보안, 감사가 쉽지 않았습니다.

이런 문제를 해결하기 위해 등장한 것이 바로 '데이터 레이크하우스'입니다.

데이터 레이크하우스는 데이터 레이크의 유연성과 데이터 웨어하우스의 안정성, 성능을 모두 제공하려는 아키텍처죠.

 

그리고 이 데이터 레이크하우스를 구현하는 핵심 기술이 바로 테이블 포맷입니다.

테이블 포맷이 왜 필요한가요?

"그냥 파일만 있으면 되는거 아닌가요?" 라고 생각하실 수 있습니다.

 

하지만 데이터 레이크하우스에서 필요한:

  • ACID 트랜잭션
  • 시간 여행(Time Travel)
  • 스키마 관리
  • 효율적인 쿼리 성능 

이런 기능들을 제공하려면 테이블 포맷이 필수적입니다.

 

각 포맷별 특징을 살펴볼까요?

출처: https://www.onehouse.ai/blog/apache-hudi-vs-delta-lake-vs-apache-iceberg-lakehouse-feature-comparison

Apache Iceberg

장점

  1. 성능: 파티션 진화와 숨겨진 파티셔닝을 통해 뛰어난 쿼리 성능을 제공합니다.
  2. 스키마 진화: 스키마 변경이 자유롭고 하위 호환성이 보장됩니다.
  3. 확장성: 대규모 테이블도 효율적으로 처리할 수 있습니다.
  4. 넓은 생태계: Spark, Flink, Trino 등 다양한 엔진과 호환됩니다.
  5. 클라우드 지원: 특히 AWS에서 EMR, Athena, Redshift 등 다양한 서비스와의 통합을 제공합니다.

Apache Hudi

장점

  1. 실시간 처리: 스트리밍 데이터 처리에 최적화되어 있습니다.
  2. 업서트 지원: 레코드 수준의 업데이트와 삭제가 가능합니다.
  3. 증분 처리: 변경된 데이터만 효율적으로 처리할 수 있습니다.
  4. 풍부한 사용 사례: 우버에서 시작되어 실제 프로덕션 환경에서 검증되었습니다.

단점

  1. 복잡성: 설정이 복잡하고 최적화가 어려울 수 있습니다.
  2. 리소스 사용: 인덱싱과 업서트로 인해 리소스 사용량이 높을 수 있습니다.

Delta Lake

장점

  1. 안정성: Databricks의 지원으로 안정적인 운영이 가능합니다.
  2. 사용 편의성: 직관적인 API와 풍부한 문서를 제공합니다.
  3. 통합성: Databricks 환경에서 완벽하게 통합됩니다.
  4. 최적화: Z-ordering을 통한 쿼리 최적화를 제공합니다.

단점

  1. Databricks 종속성: 일부 고급 기능은 Databricks 환경에서만 사용 가능합니다.
  2. 제한된 엔진 지원: Spark 외 다른 엔진과의 호환성이 상대적으로 부족합니다.

어떤 것을 선택해야 할까요?

상황에 따라 다르지만, 개인적으로 제가 추천하는 기준은 이렇습니다:

  1. Databricks를 사용중이라면 -> Delta Lake
  2. 클라우드 중립적이고 다양한 엔진을 사용한다면(특히나 aws 라면!) -> Iceberg

결론

데이터 레이크하우스라는 새로운 패러다임과 함께 테이블 포맷도 계속 발전하고 있습니다.

세 포맷 모두 각자의 장단점이 있지만, 최근 추세를 보면 Iceberg의 성장세가 가파릅니다. 특히 클라우드 중립성과 다양한 엔진 지원은 멀티 클라우드 환경에서 큰 장점으로 작용하고 있죠.

하지만 무조건 트렌드를 따라가기보다는, 자신의 사용 사례와 환경에 맞는 포맷을 선택하는 것이 중요합니다.

728x90

+ Recent posts