ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 레이크 하우스란
    공부/데이터 2025. 6. 3. 22:16

    레이크 하우스는 데이터 레이크의 유연성과 비용 효율성에 데이터 웨어하우스의 데이터 관리 기능과 신뢰성을 결합한 형태입니다.

    전통적으로 기업들은 다음과 같은 두 가지 주요 시스템을 별도로 운영하는 경우가 많았습니다.

    1. 데이터 레이크: 다양한 형태(정형, 반정형, 비정형)의 원시 데이터를 원래 형식 그대로 대량으로 저장하는 비용 효율적인 저장소입니다. 주로 데이터 과학, 머신러닝, 탐색적 분석에 활용되지만 데이터의 품질, 일관성, 거버넌스 관리가 어렵다는 단점이 있었습니다.
    2. 데이터 웨어하우스: 주로 정형 데이터를 중심으로, 분석 및 보고를 위해 잘 정제되고 구조화된 데이터를 저장하는 시스템입니다. ACID 트랜잭션, 스키마 강제, 우수한 쿼리 성능, 데이터 품질 및 거버넌스 기능을 제공하지만 데이터 로딩 전 ETL 과정이 필요하고 데이터 레이크에 비해 비용이 높으며 머신러닝 등 다양한 워크로드 지원에 한계가 있을 수 있습니다.

    이러한 두 계층 아키텍처는 데이터 중복, 데이터 이동을 위한 복잡한 ETL 파이프라인, 시스템 간 데이터 불일치, 높은 총 소유 비용 등의 문제를 야기했습니다. 레이크하우스는 이러한 문제점을 해결하고 단일 플랫폼에서 다양한 데이터 워크로드를 지원하기 위해 등장했습니다.

    핵심 기술

    레이크하우스를 가능하게 하는 핵심 기술은 데이터 레이크 위에 트랜잭션 및 데이터 관리 기능을 제공하는 오픈 테이블 포맷입니다.

    오픈 테이블 포맷은 다음과 같이 3개가 가장 유명합니다.

    • Apache Delta Lake: Databricks가 주도적으로 개발하여 오픈소스화. ACID 트랜잭션, 스키마 관리, 시간 여행(Time Travel), DML 지원하며 Spark와 매우 잘 통합됨
    • Apache Iceberg: Netflix에서 개발하여 오픈소스화. 강력한 스키마 진화, 파티션 진화, 숨겨진 파티셔닝, 스냅샷 격리 등이 특징. 다양한 엔진(Spark, Trino, Flink 등) 지원
    • Apache Hudi: Uber에서 개발하여 오픈소스화. 증분 데이터 처리, Upsert, 다양한 테이블 타입(CoW, MoR) 지원. 스트리밍 및 CDC 데이터 처리에 강점
    • Apache paimon: Apache Paimon(과거 Flink Table Store)은 실시간 레이크하우스를 위한 통합 스트리밍 데이터 레이크 스토리지. 대용량 데이터가 저장되는 데이터 레이크 환경에서 스트리밍 데이터와 배치 데이터를 하나의 테이블에서 통합적으로 관리하고 매우 빠른 실시간 분석을 가능하게 해줌

    이러한 테이블 포맷들은 데이터 레이크의 파일(주로 Parquet) 위에 메타데이터 및 트랜잭션 로그 계층을 추가하여 데이터베이스 테이블과 유사한 기능을 제공합니다.

    Apache paimon과 다른 레이크하우스의 차별점

    다른 레이크하우스도 실시간으로 적재하고 조회가 가능한데 Apache paimon이 왜 스트리밍 데이터에 강점이 있는지를 조사한 내용입니다.

    1. 스트리밍에 최적화된 LSM Tree 아키텍처

    다른 레이크하우스 포맷들이 주로 사용하는 방식은 크게 'Copy-on-Write'와 'Merge-on-Read'로 나뉩니다. 이 방식들은 배치 분석에 더 최적화되어 시작했고 스트리밍 지원을 추가하는 과정에서 작은 파일 문제나 쓰기/읽기 지연에 대한 트레이드오프가 존재합니다. 반면, Paimon은 내부적으로 LSM Tree (Log-structured merge-tree) 아키텍처를 기반으로 설계되었습니다.

    💡LSM Tree는 데이터베이스나 key-value 저장소에서 매우 빠른 쓰기 성능을 보장하기 위해 사용되는 구조입니다. 새로운 데이터나 변경 사항을 일단 메모리와 작은 파일에 빠르게 append하고 나중에 백그라운드에서 이 작은 파일들을 효율적으로 병합(compaction)합니다.

    즉, 다른 레이크하우스와 대비하여 Paimon은 스트리밍 데이터처럼 작고 빈번한 쓰기 요청이 계속 들어와도 LSM Tree 구조 덕분에 지연 없이 매우 빠르게 데이터를 수집할 수 있습니다. 또한 지속적인 백그라운드 병합(compaction)을 통해 작은 파일들을 자동으로 병합하고 관리하므로 스트리밍 환경에서 고질적으로 발생하는 작은 파일 문제를 효과적으로 제어합니다. 다시 말해, 다른 포맷들이 문서를 수정할 때마다 새 복사본을 만드는 방식(Copy-on-Write)이라면 Paimon은 변경 사항을 작은 메모지에 계속 빠르게 적어두고 나중에 시간이 날 때 큰 노트에 깔끔하게 정리하는 방식과 같습니다. 실시간으로 계속 메모를 남겨야 하는 상황에서는 Paimon의 방식이 훨씬 효율적입니다.

    2. 효율적인 Primary Key 기반의 데이터 업데이트

    Paimon은 Primary Key 모델을 매우 중요하게 다루며 이를 통해 레코드 레벨의 변경(업데이트/삭제)을 매우 효율적으로 처리합니다. 테이블의 전체 레코드를 다시 쓰는 대신 변경된 컬럼만 업데이트할 수 있어 I/O와 비용을 크게 줄입니다. 또한 데이터가 들어올 때마다 미리 정의된 집계(예: SUM, COUNT, MAX)를 수행하여 저장할 수 있습니다. 이를 통해 사용자는 항상 최신 집계 결과를 바로 조회할 수 있어 실시간 대시보드 구성에 장점이 있습니다. 또한 PK를 기준으로 데이터가 정렬되어 저장되므로 특정 키를 조회하는 속도(point lookups)가 매우 빠릅니다.

    paimon 또한 다른 레이크하우스와 동일하게 열 기반 구조로 저장하면서 위와 같은 이점이 있는 형태입니다. 상황에 따라 다를 순 있지만 배치 또한 다른 레이크하우스와 비슷한 성능을 보여줍니다.

    3. Flink와의 네이티브하고 깊은 통합

    Paimon은 Flink Table Store라는 이름으로 Apache Flink 프로젝트에서 시작되었습니다. 즉, 태생부터 Flink 스트리밍 엔진과 한 몸처럼 동작하도록 설계되었습니다. Flink 스트리밍 작업의 상태를 저장하는 백엔드로 Paimon을 사용할 수 있습니다. 이를 통해 Flink의 체크포인트 메커니즘과 완벽하게 연동되어 장애 발생 시에도 데이터 손실이나 중복 없이 정확히 한 번만 처리(exactly-once semantics)하는 것을 강력하게 보장합니다. Flink를 사용하면 데이터 소스에서 데이터를 읽어 변환하고 Paimon에 쓰는 일련의 스트리밍 ETL 파이프라인을 매우 간결하고 안정적으로 구축할 수 있습니다.

    아래는 레이크하우스와 파이몬을 비교한 요약 표입니다.

    구분 Apache Paimon Delta Lake / Iceberg / Hudi
    핵심 철학 Streaming-First Batch-First (배치 우선, 스트리밍 기능 추가)
    핵심 아키텍처 LSM Tree (잦고 빠른 쓰기에 최적화) Copy-on-Write / Merge-on-Read (배치 분석에 유리)
    데이터 업데이트 PK 기반의 고효율 업데이트 (부분 업데이트, 집계 등) 효율적이지만, 쓰기 증폭이나 읽기 지연 등의 트레이드오프 존재
    주요 생태계 Apache Flink와 네이티브 수준의 깊은 통합 Apache Spark (Delta/Hudi), 또는 범용성 (Iceberg)

    주요 특징 및 장점

    1. 데이터 레이크 위에서 직접적인 데이터 관리: 데이터 웨어하우스와 유사한 ACID 트랜잭션, 스키마 강제 및 진화, 데이터 버전 관리(시간 여행) 기능을 데이터 레이크에 저장된 개방형 파일 포맷(Parquet 등) 위에서 직접 제공합니다.
    2. 통합된 아키텍처: 데이터 레이크와 데이터 웨어하우스를 별도로 운영할 필요성이 줄어들어 데이터 사일로를 해소하고 데이터 이동을 위한 ETL 복잡성 및 데이터 중복을 크게 감소시킵니다.
    3. 다양한 데이터 타입 지원: 정형, 반정형, 비정형(테이블 포맷 외의 파일들) 데이터를 모두 한 곳에서 관리할 수 있습니다.
    4. 다양한 워크로드 직접 지원
      • BI 및 SQL 분석: 데이터 웨어하우스처럼 SQL로 데이터 분석 가능
      • 데이터 과학 및 머신러닝: 별도의 데이터 마트로 데이터를 복사할 필요 없이 데이터 레이크의 최신 데이터에 직접 접근하여 모델 학습 및 개발 가능
      • 실시간 스트리밍 처리: 스트리밍 데이터와 배치 데이터를 동일한 테이블에서 통합적으로 처리
    5. 개방성 및 유연성
      • 데이터는 Parquet과 같은 개방형 파일 포맷으로 저장
      • Delta Lake, Iceberg, Hudi와 같은 테이블 포맷 자체도 오픈소스
      • 다양한 오픈소스 쿼리 엔진 및 처리 프레임워크를 선택하여 사용할 수 있어 특정 벤더에 대한 종속성을 줄일 수 있음
    6. 비용 효율성: 저렴한 클라우드 객체 스토리지를 활용하고 컴퓨팅 자원과 스토리지를 분리하여 필요에 따라 독립적으로 확장/축소할 수 있어 비용을 최적화할 수 있음
    7. 향상된 데이터 거버넌스: 중앙 집중식 메타데이터 관리 시스템(예: Unity Catalog, HMS, Jessie)을 통해 데이터 레이크하우스 전체에 걸쳐 일관된 보안 정책, 접근 제어, 데이터 리니지 추적, 감사 등을 적용하기 용이

    댓글