Skip to main content
이 문서는 선행 지식 섹션의 일부입니다.

데이터 레이크 vs 데이터 웨어하우스

데이터 웨어하우스 (Data Warehouse)

데이터 웨어하우스는 분석을 위해 여러 소스의 정형 데이터를 통합 저장하는 시스템입니다. 1990년대부터 기업 분석(Business Intelligence)의 핵심이었습니다. 장점: 높은 쿼리 성능, 강력한 거버넌스, ACID 트랜잭션, BI 도구와 완벽한 통합 단점: 비구조화 데이터 처리 불가, 높은 비용, 스키마 변경의 어려움

데이터 레이크 (Data Lake)

데이터 레이크는 정형, 반정형, 비정형 데이터를 원본 형태 그대로 저장하는 중앙 저장소입니다. 2010년대 Hadoop의 등장과 함께 대중화되었으며, 이후 클라우드 오브젝트 스토리지(S3, ADLS, GCS)가 그 역할을 대신하게 되었습니다. 장점: 유연성, 낮은 저장 비용, ML을 위한 비정형 데이터 지원, 오픈 포맷 단점: 데이터 품질 보장 어려움, ACID 없음, “데이터 늪(Data Swamp)” 위험
💡 데이터 늪(Data Swamp)이란? 레이크에 데이터를 마구 쌓기만 하고 거버넌스와 카탈로그가 부재하면, 어떤 데이터가 어디에 있는지, 신뢰할 수 있는 데이터인지 알 수 없게 됩니다. 많은 기업이 데이터 레이크 구축 후 “데이터는 많은데 쓸 수 있는 데이터는 없다”는 상황에 빠지는 원인입니다.

왜 레이크하우스 (Lakehouse)가 등장했는가

데이터 레이크와 데이터 웨어하우스는 각각 상충되는 장단점을 갖고 있습니다. 기업들은 두 가지를 모두 운영하는 경우가 많았는데, 이는 비용 중복, 데이터 복제, 동기화 지연 등의 문제를 야기했습니다.
레이크하우스 는 데이터 레이크의 저비용·유연성과 데이터 웨어하우스의 ACID 트랜잭션·성능·거버넌스를 단일 플랫폼에서 제공하는 개념입니다. Databricks가 2020년 논문과 함께 공식화했으며, Delta Lake가 핵심 기술입니다. 참고: Databricks: What is a Data Lakehouse? | 논문: Lakehouse: A New Generation of Open Platforms

테이블 포맷 전쟁 — Delta Lake vs Iceberg vs Hudi

왜 오픈 테이블 포맷이 필요한가

클라우드 오브젝트 스토리지(S3 등)에 데이터를 저장하면 비용이 낮지만, 기본적으로는 단순한 파일 저장소에 불과합니다. Parquet 파일을 S3에 저장하면:
  • ACID 없음: 두 작업이 동시에 파일을 수정하면 데이터 손상 가능
  • 업데이트/삭제 불가: Parquet은 불변(Immutable) 파일 포맷
  • 스키마 변경 어려움: 컬럼 추가/변경이 복잡
  • 타임 트래블 없음: 과거 데이터 조회 불가
오픈 테이블 포맷은 이런 문제를 해결하기 위해, Parquet 파일 위에 메타데이터 레이어 를 추가합니다. 실제 데이터는 Parquet으로 저장하되, 변경 이력, 스키마, 트랜잭션 로그를 별도로 관리합니다.

세 포맷 비교

Delta Lake의 핵심 기능
  • Transaction Log: 모든 변경 사항을 JSON으로 기록하여 ACID 보장
  • Time Travel: VERSION AS OF n 또는 TIMESTAMP AS OF 'date' 구문으로 과거 스냅샷 조회
  • MERGE INTO: Upsert (Insert + Update) 연산을 단일 명령으로 처리
  • Z-Ordering: 자주 필터링하는 컬럼 기준으로 데이터를 클러스터링하여 쿼리 성능 향상
  • Auto Optimize / VACUUM: 소규모 파일 자동 병합, 오래된 파일 정리
Iceberg의 차별점 Iceberg는 Netflix가 수만 개의 테이블, PB급 데이터를 관리하면서 필요한 기능을 설계했습니다.
  • Hidden Partitioning: 파티션 컬럼을 쿼리에 명시하지 않아도 자동으로 최적화
  • Partition Evolution: 테이블 재작성 없이 파티션 전략 변경 가능
  • 엔진 독립: Spark, Flink, Trino, Hive, Snowflake 등 다양한 엔진이 동일한 Iceberg 테이블을 읽고 쓸 수 있음

UniForm — 테이블 포맷의 수렴

포맷 전쟁의 최종 결론은 “공존”입니다. Databricks는 UniForm (Universal Format) 을 통해 Delta Lake 테이블을 Iceberg 또는 Hudi 형식으로도 읽을 수 있게 지원합니다.
이는 플랫폼 의존(Vendor Lock-in) 우려를 줄이고, 멀티 엔진 환경에서 동일한 데이터를 공유할 수 있게 합니다. 참고: Delta Lake 공식 문서 | Apache Iceberg 공식 문서 | Databricks: UniForm

모던 데이터 스택 (Modern Data Stack)

개요

모던 데이터 스택 은 2010년대 후반 클라우드 네이티브 환경에서 부상한 데이터 파이프라인 아키텍처입니다. 핵심 원칙은 전문화 입니다. 하나의 대형 플랫폼 대신, 각 단계에서 최적의 도구를 조합(Best-of-Breed)합니다.

ELT vs ETL

전통적인 데이터 파이프라인은 ETL (Extract → Transform → Load) 방식이었습니다. 소스에서 데이터를 추출하고, 별도의 변환 서버에서 처리한 뒤, 웨어하우스에 저장했습니다. 모던 데이터 스택에서는 ELT (Extract → Load → Transform) 가 표준입니다. 클라우드 웨어하우스의 처리 능력이 강력해지면서, 원본 데이터를 먼저 적재하고 웨어하우스 내부에서 SQL로 변환하는 방식이 더 효율적입니다.

dbt (data build tool)

dbt 는 ELT의 T(Transform) 단계를 담당하는 오픈소스 SQL 변환 프레임워크입니다. 2016년 Fishtown Analytics(현 dbt Labs)에서 만들었습니다. 핵심 개념:
  • SQL SELECT 문으로 데이터 변환 모델을 정의
  • 모델 간 의존성을 자동으로 해결하여 올바른 순서로 실행
  • 데이터 테스트(Not Null, Unique, Referential Integrity 등) 내장
  • 문서화 자동 생성, 데이터 리니지(Lineage) 시각화
💡 왜 dbt가 급성장했나? 기존에 데이터 변환은 Python이나 Spark를 잘 아는 엔지니어가 담당했습니다. dbt는 SQL을 아는 분석가도 직접 데이터 파이프라인을 관리할 수 있게 했고, Git 기반 버전 관리, 테스트, 문서화를 하나의 도구로 제공했습니다. “분석가의 소프트웨어 엔지니어링” 이라는 개념이 대중화된 것입니다.
참고: dbt 공식 문서 | dbt + Databricks 통합 가이드

Fivetran / Airbyte — 관리형 수집 도구

Fivetran 은 “EL(Extract-Load) as a Service”입니다. 400개 이상의 소스 커넥터를 제공하며, 스키마 변경 자동 감지, CDC(Change Data Capture), 데이터 정규화를 자동으로 처리합니다. Airbyte 는 Fivetran의 오픈소스 대안입니다. 자체 호스팅이 가능하며, 커스텀 커넥터 개발도 지원합니다.

오케스트레이션 — Apache Airflow

Apache Airflow 는 Airbnb에서 2014년 개발한 오픈소스 워크플로우 오케스트레이션 도구입니다. 데이터 파이프라인을 DAG (Directed Acyclic Graph) 으로 정의하고, 스케줄링, 의존성 관리, 재시도, 알림을 처리합니다.
현재는 Prefect, Dagster 같은 더 현대적인 대안도 많습니다. Databricks 환경에서는 Lakeflow Jobs 가 Airflow를 대체하거나 함께 사용됩니다.