16P by xguru 1달전 | ★ favorite | 댓글과 토론
  • 데이터 관리 분야가 빠르게 변화 중이며, 클라우드 스토리지와 실시간 분석 수요 증가로 인해 Data Lakehouse 개념이 부상하고 있음
  • Apache Iceberg, Apache Hudi, Delta Lake 같은 프로젝트가 Lakehouse 아키텍처에 스키마 진화, ACID 트랜잭션, 효율적 업데이트 등 핵심 기능을 제공해 왔음
  • Google 내부 시스템 Napa는 현재 Lakehouse 솔루션보다 한층 발전된 접근을 제시함
  • 나아가 Apache Pinot 등 다른 시스템의 아이디어를 더해, Lakehouse의 차세대 형태인 LakeDB를 제안함

현재 Lakehouse 환경: Iceberg, Hudi, Delta Lake

  • Apache Iceberg
    • 정교한 메타데이터 관리로 스키마 진화, 시점 이동(time travel), 효율적 쿼리 플래닝을 지원함
    • 대규모 분석 데이터 집합을 위한 일관성 보장을 제공함
  • Apache Hudi
    • 로그 구조 기반 스토리지와 인덱싱을 활용해 upsert, delete, CDC(변경 데이터 캡처)를 효율적으로 처리함
    • 데이터 변이와 증분 처리를 강조함
  • Delta Lake
    • Spark와 빅데이터 워크로드를 위해 ACID 트랜잭션을 제공함
    • 스키마 검증, 시점 이동, 배치·스트리밍 통합 처리를 지원함
    • Delta Live Tables를 통해 선언적 파이프라인과 머티리얼라이즈드 뷰를 일부 제공함

Google의 Napa: 거시적 접근

  • 완전한 분석 데이터 관리 시스템으로, 대규모 데이터를 대상으로 낮은 지연 시간 쿼리와 연속적 데이터 적재를 지원함
  • LSM(Log-Structured Merge)-Tree 기반 적재
    • 높은 쓰기 처리량을 위해 LSM-tree 방식을 채택하며, 컴팩션을 통해 기존 데이터와 합치는 구조를 가짐
  • 머티리얼라이즈드 뷰 활용
    • 쿼리 가속을 위해 머티리얼라이즈드 뷰를 자동으로 유지·업데이트함
  • Queryable Timestamp(QT)
    • 시스템 전반의 일관된 시점 관리를 제공함
    • 데이터 최신성과 쿼리 성능 간 균형을 세밀하게 조절할 수 있음
  • F1 Query 통합
    • Google의 F1 Query 엔진을 활용해 복잡한 분석 쿼리를 효율적으로 처리함
  • 높은 구성 가능성
    • 사용자 요구에 맞춰 데이터 최신성, 성능, 비용 등을 조정 가능함

Napa, Iceberg, Hudi, Delta Lake 비교

  • Napa는 전체적인 분석 데이터 관리 시스템으로, LSM 기반의 머티리얼라이즈드 뷰를 통해 빠른 쿼리를 지원하고 Queryable Timestamp(QT)라는 기법으로 데이터 최신성을 세밀하게 조절함. 대규모 데이터를 빠르게 분석·보고하고 싶은 상황에서 유용하며, 높은 설정 유연성으로 비용과 성능, 최신성을 적절히 균형 있게 관리할 수 있게 해줌.
  • Iceberg는 테이블 포맷에 초점을 맞춘 프로젝트로, 메타데이터를 통해 대규모 데이터 파일을 관리하고 아토믹 업데이트(원자적 업데이트)와 같은 기능을 제공함. 주로 데이터 웨어하우징이나 스키마 진화, 시점 이동(time travel) 같은 기능을 필요로 하는 데이터 레이크 환경에서 활용되며, 구성 옵션은 주로 테이블 레이아웃이나 메타데이터에 집중되어 있음.
  • Hudi는 데이터 레이크에 데이터베이스와 유사한 기능을 접목한 플랫폼으로, 로그 구조 기반 스토리지와 인덱싱 기법을 통해 업서트(upsert)나 삭제 같은 데이터 변이 작업을 효율적으로 처리함. 실시간 적재나 변경 데이터 캡처(CDC), GDPR과 같은 규제 준수 요건에도 잘 대응하도록 설계되었으나, 머티리얼라이즈드 뷰 기능은 기본적으로 제공하지 않음.
  • Delta Lake는 ACID 트랜잭션을 지원하는 스토리지 계층으로, 배치와 스트리밍 작업을 통합적으로 처리하면서 스키마 enforcement(강제)와 시점 이동 기능도 제공함. 쿼리 성능 향상을 위해 Spark와 연동해 데이터 스키핑이나 캐싱을 활용하며, 별도의 Delta Live Tables를 통해 머티리얼라이즈드 뷰 같은 개념도 지원함. 다양한 데이터 레이크 환경에서 신뢰성과 트랜잭션 기능을 추가하고 싶을 때 사용하는 사례가 많음.

LakeDB에 대한 주장: Napa에서 영감을, 다른 곳에서 학습

  • Napa 및 Apache Pinot 등의 혁신적 아이디어를 결합해, 더 통합되고 유연한 LakeDB라는 개념을 제안함
  • LakeDB는 사용자 요구(최신성, 비용, 일관성, 인덱스 사용 등)를 선언적으로 표현하면, 시스템이 알아서 최적화해 주는 데이터 관리 솔루션을 지향함

1. 스토리지·적재·메타데이터·쿼리 처리 통합

  • 하나의 시스템 안에 스토리지, 적재, 메타데이터, 쿼리 처리가 모두 포함됨
  • 사용자는 데이터 최신성과 일관성만 지정하면, 자동으로 필요한 작업이 조정됨
  • Iceberg, Hudi, Delta Lake는 이 부분에서 별도 도구 연동이 필요해 복잡성이 증가함

2. 머티리얼라이즈드 뷰와 데이터 레이아웃의 지능형 최적화

  • CoW(Copy-on-Write)와 MoR(Merge-on-Read) 방식을 워크로드에 맞춰 자동으로 전환함
  • 사용자 정의 성능·비용 요구 사항에 따라 스냅샷 및 머티리얼라이즈드 뷰를 적절히 생성·관리함
  • Hudi, Delta Lake, Iceberg는 이 과정을 대부분 수동으로 설정해야 함

3. 세밀한 데이터 최신성 제어

  • Napa의 QT처럼 사용자가 원하는 최신성 수준을 지정하면, 시스템이 성능·비용 간 절충점을 찾음
  • 기존 시스템에서는 주기적 스냅샷과 모니터링에 의존해 실시간성을 보장하기 어려웠음

4. Apache Pinot에서 영감을 받은 고급 인덱싱과 파티셔닝

  • Star-Tree 같은 고도화된 인덱스 방식을 지원해 높은 카드inali티(차원 수가 많은) 분석도 처리 가능하게 함
  • Iceberg, Delta Lake의 단순 파티셔닝과 데이터 스키핑을 넘어서는 성능 향상을 추구함

5. 유연한 구성

  • 같은 테이블을 여러 소비자가 서로 다른 성능·비용·신선도 요구에 맞게 설정할 수 있음
  • 기존 시스템은 설정 범위가 제한적이어서, 다변화된 워크로드에 대응하기 위해 많은 수작업 튜닝이 필요함

6. ACID와 스키마 진화 지원

  • Iceberg, Delta Lake의 ACID 및 스키마 진화 기반을 계승·확장함
  • 분산 환경에서의 동시 스키마 변경이나 데이터 일관성 보장을 자동화하려 함

7. 개방성과 확장성

  • 오픈 스탠다드와 다양한 쿼리 엔진 연동을 지원하고, 필요에 따라 확장 가능함
  • 특정 벤더나 플랫폼에 종속되지 않고, 사용자 요구에 따라 기능을 유연하게 적용할 수 있게 함

LakeDB가 차세대 진화인 이유

  • 성능: 고급 인덱스, 머티리얼라이즈드 뷰, 동적 데이터 레이아웃 최적화를 통해 OLAP 수준의 속도에 근접함
  • 단순성: 하나의 시스템에서 관리 기능을 제공해, 사용자 요구(최신성, 성능 등)만 설정하면 자동으로 조정됨
  • 효율성: 자원 활용과 운영 부담을 줄여, 비용 측면에서도 이점을 기대할 수 있음
  • 유연성: 세밀한 데이터 최신성 제어와 풍부한 설정 옵션으로 다양한 워크로드에 대응 가능함
  • 실시간 분석: Apache Pinot의 인덱스 기법을 도입해 낮은 지연과 높은 처리량을 모두 추구함

결론

  • Apache Iceberg, Apache Hudi, Delta Lake는 Lakehouse 개념을 발전시키는 데 큰 역할을 했음
  • Google의 Napa 접근 방식과 Apache Pinot 등에서 나오는 아이디어를 결합하면 더 통합적이고 강력한 LakeDB 비전을 구상할 수 있음
  • LakeDB는 스토리지, 적재, 메타데이터, 쿼리 처리를 아우르는 완성도 높은 통합형 시스템으로, 차세대 데이터 관리 아키텍처가 될 가능성이 높음