299. 데이터 레이크
핵심 인사이트 (3줄 요약)
- 본질: 데이터 레이크(Data Lake)는 정형(Structured), 반정형(Semi-structured), 비정형(Unstructured) 데이터를 원시(Raw) 형태로 저장하는 중앙 집중식 저장소로, 스키마 온 리드(Schema-on-Read) 방식으로 분석의 유연성을 제공하는 것이 핵심이다.
- 가치: 다양한 데이터 소스의 통합 저장, 비정형 데이터 포함 모든 유형 수용, 분석 전까지 데이터 가공 불필요, 데이터 과학(ML/AI) 워크로드 지원.
- 융합: 스키마 온 리드, 데이터 레이크하우스, HDFS, S3, Apache Spark, ETL/ELT, Data Catalog와 밀접하게 연관된다.
Ⅰ. 개요 및 필요성 (Context & Necessity)
개념 정의
데이터 레이크(Data Lake)는 기업 내 모든 데이터(정형, 반정형, 비정형)를 원시(Raw) 형태로 저장하는 중앙 집중식 대규모 저장소이다. 데이터 웨어하우스(DW)가 정형 데이터만을 대상으로 하고 분석 전에 스키마를 정의하는"스키마 온 라이트(Schema-on-Write)" 방식인 반면, 데이터 레이크는 데이터를 있는 그대로 저장하고, 분석 시점에 스키마를 적용하는"스키마 온 리드(Schema-on-Read)" 방식을採用한다. 이를 통해 다양한 소스에서 데이터를 빠르게 수집할 수 있고, 나중에 어떤 분석을 수행할지未定인 상황에서도 데이터를先保存할 수 있다.
필요성
현대 기업은 관계형 데이터베이스의 정형 데이터뿐만 아니라, SNS의 텍스트/이미지, IoT 센서 데이터, 로그 파일,音频/동영상 등 비정형 데이터를 기반으로洞見을 얻고자 한다. 데이터 웨어하우스는 이러한 다양한 유형의 데이터를 저장하기 어렵고, 분석 전에 변환 스키마를 정의해야 하므로 시간이 오래 걸린다. 데이터 레이크는 이러한 문제를 해결하기 위해 모든 유형의 데이터를 원시 형태로 빠르게 수집·저장하고, 필요할 때 원하는 형태로 변환하여 분석하는 유연성을 제공한다. 또한 Machine Learning과 AI 모델 훈련을 위한 대규모 데이터 저장소로 활용된다.
배경
"Data Lake"라는 용어는 2010년경 James Dixon이 블로그에서 "Data Warehouse가 정제된 주류라면, Data Lake는 원시 상태의 물이다"라고 표현하면서 보급되기 시작했다. 이후 하둡(Hadoop) 에코시스템의 HDFS(Hadoop Distributed File System)가 데이터 레이크의 기반 기술로 주목받았고, AWS S3, Azure Data Lake Storage, Google Cloud Storage 등이 클라우드 기반으로 데이터 레이크를 서비스로 제공한다. 최근에는 데이터 레이크의 단점(데이터 품질 관리 어려움, governance 부재 등)을 보완한 데이터 레이크하우스(Data Lakehouse) 개념이 부상하고 있다.
비유
데이터 레이크는큰 호수와 같다. 강물(데이터)이 어디서든 어떤 형태로든(정형/비정형) 호수로 흘러들어가고, 호수에는 물이 있는 그대로(원시 형태) 저장된다. 필요한 만큼의 물을 원하는 시점에 취수(Schema-on-Read)하여 사용할 수 있다. 반면 데이터 웨어하우스는 수도꼭지에 필터를 연결하여 물을 걸러서 정제한 후 저수조에 저장하는 것과 같다. 미리 정제하므로品質은 높지만, 취수할 수 있는 물의 형태가 제한되고, 필터 설치(스키마 정의)에 시간이 걸린다.
📢 섹션 요약: 데이터 레이크는 모든 유형의 데이터를 원시 형태로 저장하는 중앙 집중식 저장소로, 스키마 온 리드 방식을 통해 분석 유연성을 제공하는 것이 핵심이다.
Ⅱ. 아키텍처 및 핵심 원리 (Deep Dive)
데이터 레이크 아키텍처
┌─────────────────────────────────────────────────────────────────────────────┐
│ 데이터 레이크 아키텍처 │
├─────────────────────────────────────────────────────────────────────────────┤
│ │
│ [데이터 레이크 Zones] │
│ ───────────────────── │
│ │
│ ┌─────────────────────────────────────────────────────────────────────┐ │
│ │ 데이터 레이크 │ │
│ │ ─────────────────────────────────────────────────────────────────│ │
│ │ │ │
│ │ ┌───────────────────────────────────────────────────────────────┐ │ │
│ │ │ Raw Zone / Bronze Zone (원시 데이터) │ │ │
│ │ │ ───────────────────────────────────────────────────────────│ │ │
│ │ │ • 소스에서 추출한 그대로의 데이터 │ │ │
│ │ │ • 형식 변환 없이 원본 보존 │ │ │
│ │ │ • 예: CSV, JSON, Parquet, 이미지, 로그 파일 등 │ │ │
│ │ │ • 모든 downstream에서 활용 가능 │ │ │
│ │ └───────────────────────────────────────────────────────────────┘ │ │
│ │ │ │ │
│ │ ▼ │ │
│ │ ┌───────────────────────────────────────────────────────────────┐ │ │
│ │ │ Cleansed Zone / Silver Zone (정제된 데이터) │ │ │
│ │ │ ───────────────────────────────────────────────────────────│ │ │
│ │ │ • 기본 정제, 중복 제거, 형식 통일 │ │ │
│ │ │ • 분석에 적합한 형태로 변환 │ │ │
│ │ │ • 예: NULL 처리, 데이터 타입 통일, 컬럼명 정규화 │ │ │
│ │ └───────────────────────────────────────────────────────────────┘ │ │
│ │ │ │ │
│ │ ▼ │ │
│ │ ┌───────────────────────────────────────────────────────────────┐ │ │
│ │ │ Refined Zone / Gold Zone (집계/변환 데이터) │ │ │
│ │ │ ───────────────────────────────────────────────────────────│ │ │
│ │ │ • 비즈니스 룰 적용, 집계/ enrich │ │ │
│ │ │ • 분석/ML 모델링에 바로 활용 가능한 형태 │ │ │
│ │ │ • 예: 차원 모델, 피처 스토어, ML 훈련 데이터 │ │ │
│ │ └───────────────────────────────────────────────────────────────┘ │ │
│ │ │ │
│ └─────────────────────────────────────────────────────────────────────┘ │
│ │
│ [다양한 데이터 소스 → 데이터 레이크] │
│ │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ RDBMS │ │ SaaS │ │ IoT │ │
│ │ (OLTP) │ │ (CRM/ERP)│ │ Sensor │ │
│ └────┬─────┘ └────┬─────┘ └────┬─────┘ │
│ │ │ │ │
│ │ ┌──────────┼──────────┐ │ │
│ │ │ │ │ │ │
│ ▼ ▼ ▼ ▼ ▼ │
│ ┌─────────────────────────────────────────────┐ │
│ │ Ingestion Layer (수집 계층) │ │
│ │ CDC | ETL | Streaming | Batch Import │ │
│ └────────────────────┬────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────────────────────────────────┐ │
│ │ Data Lake Storage │ │
│ │ HDFS | AWS S3 | Azure Data Lake | GCS │ │
│ │ (Object Storage + Metadata Catalog) │ │
│ └────────────────────┬────────────────────────┘ │
│ │ │
│ ┌───────────────────┼───────────────────┐ │
│ ▼ ▼ ▼ │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ Analytics │ │ ML/AI │ │ Data Apps │ │
│ │ (BI, OLAP) │ │ (Training) │ │ (Apps) │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────────────┘
스키마 온 라이트 vs 스키마 온 리드
┌─────────────────────────────────────────────────────────────────────────────┐
│ 스키마 온 라이트 vs 스키마 온 리드 비교 │
├─────────────────────────────────────────────────────────────────────────────┤
│ │
│ ┌──────────────────┬────────────────────────┬────────────────────────┐ │
│ │ 특성 │ 스키마 온 라이트 │ 스키마 온 리드 │ │
│ │ │ (Schema-on-Write) │ (Schema-on-Read) │ │
│ ├──────────────────┼────────────────────────┼────────────────────────┤ │
│ │ 스키마 적용 시점 │ 데이터 저장 시점 │ 데이터 읽기 시점 │ │
│ │ │ (Write Time) │ (Read Time) │ │
│ ├──────────────────┼────────────────────────┼────────────────────────┤ │
│ │ 데이터 검증 │ 저장 시 미리 검증 │ 읽기 시 검증 │ │
│ │ │ (정확성 보장) │ (유연성 제공) │ │
│ ├──────────────────┼────────────────────────┼────────────────────────┤ │
│ │ 데이터 유형 │ 주로 정형 데이터 │ 정형/반정형/비정형 전부 │ │
│ │ │ (RDBMS, DW) │ (Raw 파일, 로그 등) │ │
│ ├──────────────────┼────────────────────────┼────────────────────────┤ │
│ │ 분석 준비 시간 │ 저장 전 사전 처리 필요 │ 분석 시점에 변환 │ │
│ │ │ (ETL 시간 소요) │ (Ad-hoc 분석 가능) │ │
│ ├──────────────────┼────────────────────────┼────────────────────────┤ │
│ │ 저장 형식 │ 고정 스키마 (테이블) │ 다양한 형식 (파일/객체) │ │
│ ├──────────────────┼────────────────────────┼────────────────────────┤ │
│ │ 데이터 품질 │ 사전 관리 (높은 품질) │ 사후 관리 (품질 주의) │ │
│ ├──────────────────┼────────────────────────┼────────────────────────┤ │
│ │ 적합场景 │ DW, 보고서, 규정 준수 │ 데이터 과학, ML, 탐색적 │ │
│ │ │ 분석 │ 분석 │ │
│ ├────────────────__┼________________________┼________________________┤ │
│ │ 데이터 소스 │ 소수의已知 소스 │ 다양한来源,未定 소스 │ │
│ └──────────────────┴────────────────────────┴────────────────────────┘ │
│ │
│ [시각적 비교] │
│ ──────────── │
│ │
│ 스키마 온 라이트: │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ Raw Data │───▶│ Define │───▶│ Transform│───▶│ DW/Tab │ │
│ │ │ │ Schema │ │ (ETL) │ │ │ │
│ │ │ │ (사전) │ │ │ │ (저장) │ │
│ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │
│ │ ▲ │
│ │ 분석 시 → 이미 처리된 데이터 읽기 │ │
│ └──────────────────────────────────────────────────────┘ │
│ │
│ 스키마 온 리드: │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ Raw Data │───▶│ Store │───▶│ Define │───▶│ Query/ │ │
│ │ │ │ (저장) │ │ Schema │ │ Analytics│ │
│ │ │ │ │ │ (사후) │ │ │ │
│ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │
│ │ ▲ │
│ │ 분석 시 → 필요한 스키마를 그때 정의 │ │
│ └──────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────────────┘
데이터 레이크 vs 데이터 웨어하우스
┌─────────────────────────────────────────────────────────────────────────────┐
│ 데이터 레이크 vs 데이터 웨어하우스 비교 │
├─────────────────────────────────────────────────────────────────────────────┤
│ │
│ ┌──────────────────┬────────────────────────┬────────────────────────┐ │
│ │ 특성 │ 데이터 레이크 │ 데이터 웨어하우스 │ │
│ │ │ (Data Lake) │ (Data Warehouse) │ │
│ ├──────────────────┼────────────────────────┼────────────────────────┤ │
│ │ 목적 │ 다양한 데이터 통합 저장 │ 분석/보고용 정형 데이터 │ │
│ │ │ (Raw 데이터 보존) │ 저장 │ │
│ ├──────────────────┼────────────────────────┼────────────────────────┤ │
│ │ 데이터 유형 │ 정형+반정형+비정형 │ 주로 정형 │ │
│ │ │ (모든 유형) │ (테이블) │ │
│ ├──────────────────┼────────────────────────┼────────────────────────┤ │
│ │ 스키마 접근 │ 스키마 온 리드 │ 스키마 온 라이트 │ │
│ ├──────────────────┼────────────────────────┼────────────────────────┤ │
│ │ 사용자 │ 데이터 scientist, ML Eng │ BI 사용자, 분석가, 경영진 │ │
│ │ │ │ │ │
│ ├──────────────────┼────────────────────────┼────────────────────────┤ │
│ │ 저장 기술 │ HDFS, Object Storage │ RDBMS, Columnar DB │ │
│ │ │ (Cheap Storage) │ (Expensive but Fast) │ │
│ ├──────────────────┼────────────────────────┼────────────────────────┤ │
│ │ 데이터量 │ 대규모 (TB~EB) │ 중간~대규모 (GB~PB) │ │
│ ├──────────────────┼────────────────────────┼────────────────────────┤ │
│ │ 분석 유형 │ Ad-hoc, ML/AI, 탐색적 │ 사전 정의된 보고서, OLAP │ │
│ ├──────────────────┼────────────────────────┼────────────────────────┤ │
│ │ 데이터 품질 │ 원시 (관리 어려움) │ 정제됨 (관리 용이) │ │
│ ├──────────────────┼────────────────────────┼────────────────────────┤ │
│ │ 비용 │ 낮음 (Cheap Storage) │ 높음 (Optimized Storage)│ │
│ ├────────────────__┼________________________┼________________________┤ │
│ │ 데이터 Governance│ 관리 어려움 (약한) │ 관리 용이 (강한) │ │
│ └──────────────────┴────────────────────────┴────────────────────────┘ │
│ │
│ ⚠️ 데이터 레이크의 단점 (Data Swamp 문제) │
│ ───────────────────────────────────────────── │
│ • 데이터가 아무렇게나 저장 → 찾는 것 자체가 어려움 │
│ • 메타데이터/카탈로그 부재 → 활용도 저하 │
│ • 품질 관리 부족 → 분석 결과 신뢰도 저하 │
│ • 보안/접근 관리薄弱 → 규정 준수 위험 │
│ │
│ → 이러한 단점을克服するためにデータレイクハウス (Data Lakehouse)概念诞生 │
│ │
└─────────────────────────────────────────────────────────────────────────────┘
[다이어그램 해설] 데이터 레이크는 스키마 온 리드 방식을 통해 데이터를 원시 형태로 저장하므로, 다양한 유형의 데이터를 빠르게 수집할 수 있고 분석 시점에 유연하게 스키마를 적용할 수 있다. 그러나 데이터 레이크만으로는 데이터 품질과 governance 관리가 어렵다는 단점이 있다. 이러한 문제를 해결하기 위해 등장한 것이 데이터 레이크하우스(Data Lakehouse) 개념으로, 데이터 레이크의 유연성과 DW의 데이터 관리 기능을 결합한 것이다.
📢 섹션 요약: 데이터 레이크는 원시 데이터를 저장하고 분석 시점에 스키마를 적용하는 스키마 온 리드 방식의 저장소로, 다양한 유형의 데이터를 수용하지만 데이터 품질과 governance 관리에 주의가 필요하다.
Ⅲ. 결론
데이터 레이크는 모든 유형의 데이터를 원시 형태로 저장하는 중앙 집중식 저장소로, 스키마 온 리드 방식을 통해 분석 유연성을 제공한다. 데이터 과학, 머신러닝, 탐색적 분석 등 다양한 workload를 지원하며, HDFS나 오브젝트 스토리지(S3, Azure Data Lake, GCS) 등을 활용하여 저렴하게 대규모 데이터를 저장할 수 있다. 그러나 데이터 품질 관리와 governance가薄弱하여"Data Swamp"로 전락할 위험이 있으므로, 메타데이터 카탈로그, 데이터 품질 관리, 보안 정책 등을 반드시 함께 수립해야 한다. 이러한 한계를 보완한 데이터 레이크하우스(Data Lakehouse)가 최근 대안으로 부상하고 있다.
📢 섹션 요약: 데이터 레이크는 원시 데이터 저장소로 분석 유연성을 제공하지만, 데이터 품질과 governance 관리가 핵심 과제이며, 이를 보완한 데이터 레이크하우스가 최근 주목받고 있다.
핵심 인사이트 ASCII 다이어그램 (Concept Map)
┌─────────────────────────────────────────────────────────────────────────────┐
│ Data Lake Concept Map │
│ │
│ ┌─────────────────────────────────┐ │
│ Data Lake │ │
│ (데이터 레이크) │ │
└───────────────┬─────────────────┘ │
│ │ │
│ ┌────────────────────┼────────────────────┐ │
│ ▼ ▼ ▼ │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ Schema-on- │ │ Raw Data │ │ Multi- │ │
│ │ Read │ │ (원시 형태) │ │ Format │ │
│ │ (스키마온리드)│ │ │ │ (다양한형식) │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ │
│ │ │ │ │
│ └────────────────────┼────────────────────┘ │
│ ▼ │
│ ┌─────────────────────┐ │
│ │ Data Lakehouse │ │
│ │ (보완된 형태) │ │
│ │ + Governance │ │
│ │ + Quality Mgmt │ │
│ └─────────────────────┘ │
│ │
│ 활용: ML/AI | Ad-hoc 분석 | Big Data 처리 │
│ 주의: Data Swamp 방지 위한 Catalog, Quality, Security 필수 │
│ │
└─────────────────────────────────────────────────────────────────────────────┘
참고
- 데이터 레이크는 정형/반정형/비정형 모든 데이터를 원시 형태로 저장한다.
- 스키마 온 리드 방식으로 분석 시점에 스키마를 적용한다.
- 데이터 과학, ML/AI 워크로드에 특히 적합하다.
- HDFS, S3, Azure Data Lake, GCS 등이 활용된다.
- 데이터 품질과 governance 관리가 핵심 과제이다.
- Data Swamp로 전락하지 않도록 메타데이터 카탈로그가 필수적이다.
- 데이터 레이크HOUSE는 데이터 레이크의 단점을 보완한 형태이다.