💡 핵심 인사이트 데이터 레이크(Data Lake)는 "기업의 다양한 원시 데이터(Raw Data)를 정형, 반정형, 비정형 형태 그대로 스키마 온 리드(Schema-on-Read) 방식으로 저장하는" 대규모 데이터 중앙 저장소입니다. 데이터 웨어하우스가事前来定義된 스키마(Schema-on-Write)로 데이터를 정제하여 저장하는 반면, 데이터 레이크는 데이터를 있는 그대로 저장하여, 분석 시점에 필요한 스키마를 적용합니다. 이를 통해 "_다양한 데이터 소스로부터의 데이터 수집 속도와 유연성을 극대화"하면서, "AI/ML, ad-hoc 분석, 실시간 분석 등 다양한 용도로 활용"할 수 있습니다.
Ⅰ. 데이터 레이크의 탄생 배경:大数据의 도래
기업이 보유한 데이터는爆炸적으로 증가하고 있습니다. _SNS_posts, _웹 로그, _iot_传感器数据, 애플리케이션 로그, 사진, 동영상, 음성 등 비정형 데이터가 그 대부분을 차지합니다.
기존의 데이터 웨어하우스는 이러한 다양한 데이터 유형을 처리하는 데 한계가 있었습니다:
- 정형 데이터(테이블, 행/열)만 저장 가능
- Semi-structured(JSON, XML, Avro)나 Unstructured(텍스트, 이미지) 저장이 어려움
- 데이터 적재 전 스키마 설계가 필수적 (Schema-on-Write)
- 데이터 소스와 분석 방식이 미리 정의되어야 함
데이터 레이크는 이러한 제약에서 자유롭습니다. 데이터를 원본 그대로, 정의된 구조 없이 저장하고, 분석 시점에 비로소 **데이터를 읽고 해석(Schema-on-Read)**합니다.
[데이터 레이크 vs 데이터 웨어하우스: 근본적 차이]
데이터 웨어하우스 (Schema-on-Write):
┌─────────────┐
│ 데이터 소스 │
│ (CRM, ERP) │
└──────┬──────┘
│ ETL (Extract-Transform-Load)
│ - 데이터 추출
│ - 스키마 매핑/변환
│ - 정제/클렌징
▼
┌─────────────────────────────────────────┐
│ 사전 정의된 스키마 (데이터 적재 전 설계) │
│ ┌─────────────────────────────────────┐ │
│ │ 테이블A: 고객 (id, name, age...) │ │
│ │ 테이블B: 주문 (order_id, cust_id..│ │
│ │ 테이블C: 제품 (prod_id, name...) │ │
│ └─────────────────────────────────────┘ │
└─────────────────────────────────────────┘
→ 분석: 미리 정의된 테이블 JOIN/SUM 등
데이터 레이크 (Schema-on-Read):
┌─────────────┐
│ 데이터 소스 │
│ (다양한形式)│
└──────┬──────┘
│ 수집만 (Capture/Store as-is)
│ - 원본 그대로 저장
│ - 변환 없음 (또는 최소한도)
▼
┌─────────────────────────────────────────┐
│ 원시 데이터 Pool (형태 그대로) │
│ ┌─────────────────────────────────────┐ │
│ │ / Raw / CRM / customers_2024.csv │ │
│ │ / Raw / WEB / clickstream_2024.log│ │
│ │ / Raw / IOT / sensor_2024.json │ │
│ │ / Raw / SNS / posts_2024.parquet │ │
│ │ / Raw / Images/ product_*.jpg │ │
│ └─────────────────────────────────────┘ │
└─────────────────────────────────────────┘
→ 분석 시: 필요 데이터 선택 → 스키마 적용 → 분석
Ⅱ. 데이터 레이크의 데이터 저장 구조: 계층적 관리
데이터 레이크는 일반적으로 계층적 디렉터리 구조로 데이터를 조직합니다. 각 계층은 데이터의成熟도(Processing Level)에 따라 구분됩니다.
[데이터 레이크 계층 구조]
┌─────────────────────────────────────────────────────────────────┐
│ 데이터 레이크 저장소 │
├─────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ 1. Raw/Bronze Zone (원시 데이터) │ │
│ │ - 원본 그대로 보존 (최소한의 처리만) │ │
│ │ - 모든 데이터 소스로부터 수집된 1차 저장소 │ │
│ │ 예: /Raw/CRM/customers_raw.csv │ │
│ │ /Raw/ERP/orders_2024.json │ │
│ │ /Raw/WEB/server_logs_2024.log │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ 2. Refined/Silver Zone (정제 데이터) │ │
│ │ - 데이터 품질 검증 및 기본 정제 완료 │ │
│ │ - 공통 스키마로 변환 (Parquet, ORC 등) │ │
│ │ 예: /Refined/customers_silver.parquet │ │
│ │ /Refined/orders_silver.parquet │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ 3. Curated/Gold Zone (앙상블/집계 데이터) │ │
│ │ - 분석-ready 상태, 사전 집계 완료 │ │
│ │ - 데이터 마트 또는 피처 스토어로 제공 │ │
│ │ 예: /Curated/daily_sales_summary.parquet │ │
│ │ /Curated/customer_segmentation.csv │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ 4. Playground/Sandbox Zone (실험/Ad-hoc) │ │
│ │ - 데이터 과학가를 위한 탐색 환경 │ │
│ │ - 새로운 분석 아이디어 테스트 │ │
│ │ 예: /Sandbox/ml_model_training_data/ │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────┘
Raw Zone (Bronze): 최종적인 원본 데이터. 감사(Audit) 목적으로 원본을 반드시 보존해야 합니다. 어떤 처리가 이루어졌든 Raw 데이터는 그대로 유지하여,出现问题时 재처리가 가능해야 합니다.
Refined Zone (Silver): 데이터 품질 검증, 타입 변환, 기본적인 클렌징이 완료된 데이터. 분석가와 데이터 엔지니어가 주류로 사용하는 영역입니다.
Curated Zone (Gold): 비즈니스 도메인에 특화된, 분석 준비 완료된 데이터. 사전 집계, Feature Engineering 등이 완료되어 곧바로 ML 모델이나 대시보드에 사용할 수 있습니다.
Ⅲ. 데이터 레이크의 기술 구성 요소
데이터 레이크는 여러 기술组件으로 구성됩니다.
저장 계층:
- object storage: AWS S3, Azure Blob Storage, Google Cloud Storage 등. 거의 무제한의 저장 용량과 낮은 비용.
- 분산 파일 시스템_: Hadoop HDFS (온프레미스 구축 시)
처리 계층:
- 일괄 처리_: Apache Spark, Hadoop MapReduce, AWS Glue
- 실시간 처리_: Apache Kafka, Apache Flink, Spark Streaming
메타데이터/카탈로그:
- AWS Glue Data Catalog, Apache Hive Metastore, DataHub 등. 데이터 레이크 내 데이터资产的搜索과 이해를 지원합니다.
[데이터 레이크 기술 스택 예시]
┌─────────────────────────────────────────────────────────────────┐
│ 데이터 레이크 기술 스택 │
├─────────────────────────────────────────────────────────────────┤
│ │
│ 사용자/애플리케이션 │
│ │ │
│ ▼ │
│ ┌─────────────────┐ │
│ │ 분석 도구 │ Jupyter, Tableau, PowerBI, Looker │
│ └────────┬────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────┐ │
│ │ 데이터 처리 │ Spark, Flink, Kafka, AWS Glue │
│ └────────┬────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────┐ │
│ │ 메타데이터/카탈로그 │ Hive Metastore, Glue Catalog, DataHub │
│ └────────┬────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────┐ │
│ │ 객체 스토리지 │ AWS S3, Azure Blob, GCS, MinIO │
│ │ (분산 파일 시스템) │ │
│ └─────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────┘
Ⅳ. 데이터 레이크의 장점과 단점
장점:
1. 다양한 데이터 유형 지원 정형, 반정형(JSON, XML, Avro, Parquet), 비정형(텍스트, 이미지, 오디오, 비디오) 데이터를 모두 동일한 저장소에 원본 그대로 저장할 수 있습니다.
2. 높은 유연성 분석 전에 데이터를 Transform할 필요가 없습니다. Schema-on-Read 덕분에 분석 시점에 필요한 구조를 유연하게 적용할 수 있습니다. 새로운 데이터 소스 추가도非常简单.
3.低成本 저장 객체 스토리지의 경우 GB당 매우 낮은 비용으로 데이터를 저장할 수 있습니다. "데이터를 먼,我先保管하고 나중에 활용"하는 접근이 가능합니다.
4. AI/ML에 최적화 ML 모델 훈련에는 원시 Feature 데이터가 필요한 경우가 많습니다. 데이터 레이크는 다양한 원시 데이터를 저장하여 ML 파이프라인에 최적화된 환경을 제공합니다.
단점:
1. 데이터 정제 부족으로 인한 分析 곤란 "스키마 없는 저장"은 "데이터가 아무렇게나 쌓일 수 있음"을 의미합니다. 데이터 품질 관리 없이는 **"데이터 늪(Data Swamp)"**이 될 위험이 있습니다.
2. 데이터 거버넌스 복잡성 어떤 데이터가 있는지, 누구가 접근할 수 있는지, 어떤形式で保存된 데이터의スキーマ가 무엇인지** 관리하기 어려워집니다.
3. 성능 최적화 어려움 미리 집계되거나 최적화된 형태로 저장되지 않으므로, 분석 시 매번 Full Scan이 필요할 수 있습니다.
Ⅴ. 데이터 레이크의 실제 적용과 📢 비유
数据湖와 数据仓库의协同: современные 企业 采用 "데이터 레이크 + 데이터 웨어하우스" 의 병행 아키텍처를 채택하는 경우가 많습니다.
- 데이터 레이크: 다양한 원시 데이터 수집 및 ML/AI용
- 데이터 웨어하우스: 정형 데이터 기반의 사전 정의된 분석용
이는 "레크리에이션 용으로 사용할 호수旁边에 drinking water 저수조를 별도로建设하는" 것과 같습니다. 레이크에서는 recreational activities(ML 분석 등)를, 저수조에서는 drinking water(정형 분석 보고서 등)를 분리하여 관리합니다.
Data Lakehouse의 출현: 이러한 이중 관리 부담을 해결하기 위해 데이터 레이크하우스(Data Lakehouse) 개념이 등장했습니다. Databricks의 Delta Lake, Apache Iceberg, Apache Hudi 등이 이 접근법을 구현합니다. 이는 데이터 레이크에 ** ACID 트랜잭션,高效的 데이터 액세스, 스키마 관리** 등의 데이터 웨어하우스 특성을 추가합니다.
📢 섹션 요약 비유: 데이터 레이크는 **"종합 수족관에 비유"**할 수 있습니다. 데이터 웨어하우스가 "정화된 어항 속의 특정 종류의 물고기만 선별적으로 키우는" 것이라면, 데이터 레이크는 "바다, 강, 호수에서 다양한 종의 물고기를 물론이고, 해조류, 조개, 심지어 물 자체도 함께 키워우는" 것입니다. 모든 것을 한꺼번에 보관하여 나중에 "이 물은 drinking water로, 저 어류는食用으로, 이 해조류는 연구용으로" 선별하여 활용할 수 있습니다. 다만, 수족관 관리자(데이터 거버넌스)가 없으면 역류나病気が蔓延하여 모든 것이 무질서해질 수 있습니다.