목표는 Data Warehouse, Data Lake, Lake House 구축 후 간단한 실습까지 진행해보는 것
모든 것을 진행할 환경은 minikube로.. 클라우드나 온프레미스 서버를 장만하기엔 너무 거창하니 간단하게 진행할 예정
chat GPT와 이것저것 이야기한 결과, 최종 개발 로드맵은 아래와 같다.
🧪 데이터 아키텍처 실습 플랜: DW → DL → Lakehouse (Minikube 기반)
✅ 전체 개요
- 목표: Minikube 환경에서 Data Warehouse → Data Lake → Lakehouse 아키텍처를 직접 구축하고 흐름을 이해함
- 도구:
- Kubernetes (Minikube)
- Helm
- Apache Airflow
- Apache Spark
- MinIO (S3 호환)
- PostgreSQL / MariaDB
- Trino
- Superset
- Apache Iceberg (or Delta Lake)
- Kafka (옵션)
- code-server (개발 IDE)
1️⃣ 실습 1단계: Data Warehouse (DW)
🧱 구성
- PostgreSQL
- Superset
- Airflow
🛠️ 실습 흐름
- 공공 CSV 데이터 수집 (서울시 교통량 등)
- Airflow DAG으로 PostgreSQL에 적재
- Superset에서 PostgreSQL 연결 후 시각화
🎯 학습 포인트
- 정형 데이터 분석 환경 구조 익히기
- SQL 분석 흐름 이해하기
2️⃣ 실습 2단계: Data Lake (DL)
🧱 구성
- MinIO (S3 호환 객체 저장소)
- Spark
- Airflow
🛠️ 실습 흐름
- CSV/JSON 데이터를 MinIO에 업로드 (Airflow로 DAG 자동화)
- Spark로 MinIO에서 데이터 읽기 → 정제 → 다시 MinIO에 저장
- (선택) 결과를 PostgreSQL로 적재
🎯 학습 포인트
- Raw 데이터를 유연하게 저장/정제하는 DL 개념
- Spark + S3 연동 처리 실습
3️⃣ 실습 3단계: Lakehouse
🧱 구성
- MinIO
- Apache Iceberg (또는 Delta Lake)
- Spark
- Trino
- Superset
- Hive Metastore (PostgreSQL)
🛠️ 실습 흐름
- Spark로 MinIO에 저장된 CSV를 Iceberg 테이블로 변환
- PostgreSQL 기반 Metastore에 Iceberg 테이블 등록
- Trino로 Iceberg 테이블 SQL 분석
- Superset → Trino 연결 후 시각화
🎯 학습 포인트
- Lake + Warehouse 개념 통합
- Iceberg 또는 Delta Lake 구조 이해
- SQL Query 엔진과의 연동 이해
💡 추가 실습 아이디어
- Kafka Producer → MinIO / PostgreSQL → 실시간 수집 파이프라인
- code-server에서 DAG/Spark 코드 작성 → Git으로 버전 관리
- Airflow → SparkSubmitOperator → Iceberg 쿼리 자동화
- Superset Dashboard 자동 생성 스크립트
✅ 실습 환경 요구사항 (Minikube 기준)
- minikube start --cpus=6 --memory=12g
- Ingress 활성화: minikube addons enable ingress
- Helm 3.x 이상
Airflow DAG코드 수정을 간편하게 하기 위해 code-server를 사용할거고,
모니터링 툴하고 superset과 같은 BI쪽은 시간되면 할텐데 일단 데이터 엔지니어링 쪽에 집중하려고 한다!
목표는 아래와 같다.
* spark 공부 및 실습
* hadoop 공부 및 실습
* Data Lake, Lake House 공부 및 실습
Data Warehouse는 이미 회사에서 사용하고 있고, 실제 MinIO를 이용하여 DW에 전달하는 ELT도 하고 있기는 한데..
ELT 부분을 spark보다는 python에 의존하는 경향이 있어서 업무에 적용도 할겸 공부를 해보려고 한다.
진행하려는 부분만 보면 데엔보단 플랫폼 엔지니어 쪽에 가깝긴하지만, 위 과정을 겪으며 Data Warehouse, Data Lake, Lake House의 차이, 왜 발전하게 되었는지, 어떤 상황에서 주로 사용하는지.. 뭐 이런거를 알면 더 좋지 않을까 생각이 든다.
실제 나와 같은 데이터 엔지니어 직무 주니어 라던지,, 이 직무를 준비하는 취준생에게도 어느 정도 가이드맵이 되었으면 좋겠다 :)