데이터 레이크 vs 데이터 웨어하우스
데이터 웨어하우스 (Data Warehouse)
데이터 웨어하우스는 분석을 위해 여러 소스의 정형 데이터를 통합 저장하는 시스템입니다. 1990년대부터 기업 분석(Business Intelligence)의 핵심이었습니다.| 특성 | 내용 |
|---|---|
| 스키마 | Schema-on-Write: 데이터를 저장하기 전에 스키마를 정의 |
| 데이터 형태 | 정형 데이터 (SQL 테이블) |
| 처리 방식 | OLAP (Online Analytical Processing) |
| 저장 비용 | 높음 (전용 스토리지 + 컴퓨팅) |
| 성능 | SQL 분석에 최적화, 매우 빠름 |
| 유연성 | 낮음 (스키마 변경 어려움) |
| 대표 솔루션 | Teradata, Oracle, Snowflake, BigQuery, Redshift |
데이터 레이크 (Data Lake)
데이터 레이크는 정형, 반정형, 비정형 데이터를 원본 형태 그대로 저장하는 중앙 저장소입니다. 2010년대 Hadoop의 등장과 함께 대중화되었으며, 이후 클라우드 오브젝트 스토리지(S3, ADLS, GCS)가 그 역할을 대신하게 되었습니다.| 특성 | 내용 |
|---|---|
| 스키마 | Schema-on-Read: 데이터를 읽을 때 스키마를 적용 |
| 데이터 형태 | 정형 + 반정형 + 비정형 모두 가능 |
| 저장 포맷 | CSV, JSON, Parquet, Avro, 이미지, 동영상 등 |
| 저장 비용 | 낮음 (오브젝트 스토리지는 매우 저렴) |
| 성능 | 정형 데이터 쿼리는 웨어하우스보다 느릴 수 있음 |
| 유연성 | 높음 (어떤 데이터든 원본 그대로 저장) |
| 대표 솔루션 | AWS S3, Azure ADLS, Google GCS + Hadoop/Spark |
💡 데이터 늪(Data Swamp)이란? 레이크에 데이터를 마구 쌓기만 하고 거버넌스와 카탈로그가 부재하면, 어떤 데이터가 어디에 있는지, 신뢰할 수 있는 데이터인지 알 수 없게 됩니다. 많은 기업이 데이터 레이크 구축 후 “데이터는 많은데 쓸 수 있는 데이터는 없다”는 상황에 빠지는 원인입니다.
왜 레이크하우스 (Lakehouse)가 등장했는가
데이터 레이크와 데이터 웨어하우스는 각각 상충되는 장단점을 갖고 있습니다. 기업들은 두 가지를 모두 운영하는 경우가 많았는데, 이는 비용 중복, 데이터 복제, 동기화 지연 등의 문제를 야기했습니다.| 특성 | 데이터 웨어하우스 | 데이터 레이크 | 레이크하우스 |
|---|---|---|---|
| 저장 비용 | 높음 | 낮음 | 낮음 |
| ACID 트랜잭션 | 있음 | 없음 | 있음 |
| 스키마 강제 | 있음 | 없음 | 있음 (선택적) |
| 비정형 데이터 | 불가 | 가능 | 가능 |
| BI/SQL 성능 | 매우 빠름 | 느림 | 빠름 (Photon/최적화) |
| ML/AI 지원 | 제한적 | 가능 | 가능 |
| 데이터 복제 | 필요 | 원본 저장 | 원본 저장 |
테이블 포맷 전쟁 — Delta Lake vs Iceberg vs Hudi
왜 오픈 테이블 포맷이 필요한가
클라우드 오브젝트 스토리지(S3 등)에 데이터를 저장하면 비용이 낮지만, 기본적으로는 단순한 파일 저장소에 불과합니다. Parquet 파일을 S3에 저장하면:- ACID 없음: 두 작업이 동시에 파일을 수정하면 데이터 손상 가능
- 업데이트/삭제 불가: Parquet은 불변(Immutable) 파일 포맷
- 스키마 변경 어려움: 컬럼 추가/변경이 복잡
- 타임 트래블 없음: 과거 데이터 조회 불가
세 포맷 비교
| 특성 | Delta Lake | Apache Iceberg | Apache Hudi |
|---|---|---|---|
| 개발사 | Databricks (2019년 오픈소스화) | Netflix → Apache (2020년) | Uber → Apache (2020년) |
| ACID 트랜잭션 | 있음 | 있음 | 있음 |
| 스키마 진화 | 있음 | 있음 (더 유연함) | 있음 |
| 타임 트래블 | 있음 | 있음 | 있음 |
| 파티션 진화 | 제한적 | 매우 유연함 | 있음 |
| 엔진 지원 | Spark 중심, 타 엔진 점진적 지원 | 광범위 (Spark, Flink, Trino, Snowflake 등) | Spark, Flink 중심 |
| 강점 | Spark 생태계, 성숙도, Databricks 통합 | 엔진 독립성, 파티션 유연성 | 증분 처리(Incremental Processing) |
| 채택 현황 | Databricks, Microsoft Fabric | Snowflake, AWS, Google 지원 | Uber, 증분 처리 워크로드 |
- Transaction Log: 모든 변경 사항을 JSON으로 기록하여 ACID 보장
- Time Travel:
VERSION AS OF n또는TIMESTAMP AS OF 'date'구문으로 과거 스냅샷 조회 - MERGE INTO: Upsert (Insert + Update) 연산을 단일 명령으로 처리
- Z-Ordering: 자주 필터링하는 컬럼 기준으로 데이터를 클러스터링하여 쿼리 성능 향상
- Auto Optimize / VACUUM: 소규모 파일 자동 병합, 오래된 파일 정리
- Hidden Partitioning: 파티션 컬럼을 쿼리에 명시하지 않아도 자동으로 최적화
- Partition Evolution: 테이블 재작성 없이 파티션 전략 변경 가능
- 엔진 독립: Spark, Flink, Trino, Hive, Snowflake 등 다양한 엔진이 동일한 Iceberg 테이블을 읽고 쓸 수 있음
UniForm — 테이블 포맷의 수렴
포맷 전쟁의 최종 결론은 “공존”입니다. Databricks는 UniForm (Universal Format) 을 통해 Delta Lake 테이블을 Iceberg 또는 Hudi 형식으로도 읽을 수 있게 지원합니다.모던 데이터 스택 (Modern Data Stack)
개요
모던 데이터 스택 은 2010년대 후반 클라우드 네이티브 환경에서 부상한 데이터 파이프라인 아키텍처입니다. 핵심 원칙은 전문화 입니다. 하나의 대형 플랫폼 대신, 각 단계에서 최적의 도구를 조합(Best-of-Breed)합니다.ELT vs ETL
전통적인 데이터 파이프라인은 ETL (Extract → Transform → Load) 방식이었습니다. 소스에서 데이터를 추출하고, 별도의 변환 서버에서 처리한 뒤, 웨어하우스에 저장했습니다. 모던 데이터 스택에서는 ELT (Extract → Load → Transform) 가 표준입니다. 클라우드 웨어하우스의 처리 능력이 강력해지면서, 원본 데이터를 먼저 적재하고 웨어하우스 내부에서 SQL로 변환하는 방식이 더 효율적입니다.| 비교 | ETL | ELT |
|---|---|---|
| 변환 시점 | 적재 전 | 적재 후 |
| 변환 위치 | 별도 서버 | 웨어하우스 내부 |
| 도구 | SSIS, Informatica, Talend | dbt + Snowflake/BigQuery/Databricks |
| 유연성 | 낮음 (스키마 변경 어려움) | 높음 (원본 항상 보존) |
| 비용 | 변환 서버 별도 | 웨어하우스 컴퓨팅 비용 |
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의 오픈소스 대안입니다. 자체 호스팅이 가능하며, 커스텀 커넥터 개발도 지원합니다.| 비교 | Fivetran | Airbyte | Lakeflow Connect |
|---|---|---|---|
| 유형 | SaaS | 오픈소스 | Databricks 관리형 |
| 커넥터 수 | 400+ | 300+ | 주요 소스 집중 |
| 설치/운영 | 불필요 | 자체 관리 | 불필요 |
| 비용 | 행(row) 기준 | 오픈소스 무료 | Databricks에 포함 |
| 최적 용도 | SaaS 소스 수집 | 비용 절감, 커스텀 | Databricks 통합 환경 |