전자상거래 거래 데이터를 ETL 파이프라인으로 처리하고 Metabase를 통해 "360° Sales & Customer Insights" 대시보드를 구축했습니다. 매출, 고객, 상품 데이터를 자동으로 처리하고 시각화하여 데이터 기반 의사결정을 지원합니다.
- Apache Airflow: 워크플로우 관리 및 스케줄링
- Python & Pandas: 데이터 처리 및 분석
- SQLAlchemy: ORM을 통한 데이터베이스 연동
- chardet: 파일 인코딩 자동 감지
- Docker Compose: 컨테이너 기반 인프라 구축
- PostgreSQL: 데이터 저장 및 관리
- Metabase: 데이터 시각화 및 대시보드
project/
├── airflow/
│ ├── dags/
│ │ └── etl_pipeline_dag.py
│ └── scripts/
│ └── etl_pipeline.py
├── data/
│ └── data.csv
├── init-scripts/
│ └── init-db.sql
├── .env
├── docker-compose.yaml
└── README.md
[CSV Data] → [Airflow ETL] → [PostgreSQL] → [Metabase Dashboard]
↓ ↓ ↓ ↓
Raw Data Data Processing Storage "360° Sales Insights"
CREATE TABLE IF NOT EXISTS sales (
id SERIAL PRIMARY KEY,
invoice_no VARCHAR(50),
stock_code VARCHAR(50),
product_name VARCHAR(255),
quantity INTEGER,
date TIMESTAMP,
price DECIMAL(10,2),
customer_id INTEGER,
country VARCHAR(100),
total_amount DECIMAL(10,2)
);
CREATE TABLE IF NOT EXISTS customer_summary (
customer_id INTEGER PRIMARY KEY,
total_purchase_amount DECIMAL(10,2),
total_orders INTEGER,
total_items INTEGER
);
- CSV 파일 자동 인코딩 감지 및 데이터 추출
- 데이터 정제 및 표준화
- 고객별 구매 요약 데이터 생성
- 일별 매출 추이 (라인 차트)
- 국가별 매출 분포 (지도)
- 고객 세그먼트 분포 (도넛 차트)
- 시간대별 주문 패턴 (바 차트)
- 상위 판매 제품 (수평 바 차트)
- 월별 매출 및 성장률 (복합 차트)
- ETL 파이프라인 자동화 구현
- Docker 기반의 안정적인 실행 환경 구성
- PostgreSQL과 Metabase를 활용한 분석 환경 구축
- 데이터 파일 인코딩 문제 해결로 안정성 향상
- 실시간 데이터 모니터링 환경 구축
이 프로젝트를 통해 다음과 같은 기술을 실전에서 적용했습니다:
- ETL 파이프라인 설계 및 구현
- Docker를 활용한 컨테이너 기반 개발
- 데이터베이스 모델링 및 쿼리 작성
- 데이터 시각화 및 대시보드 구축
이 프로젝트를 통해 데이터 엔지니어링의 전체 프로세스를 경험할 수 있었습니다. 특히 파일 인코딩, 데이터베이스 연결, 권한 관리 등 실제 프로젝트에서 발생할 수 있는 다양한 문제들을 해결하면서 많은 것을 배웠습니다. 앞으로도 데이터 품질과 시스템 안정성을 고려한 데이터 파이프라인 구축에 대해 더 깊이 공부하고 싶습니다.
자세한 문제 해결 과정은 TROUBLESHOOTING.md를 참조하세요.