End-to-End-Data-Pipeline

(โ˜… 137)

๐Ÿ“ˆ A scalable, production-ready data pipeline for real-time streaming & batch processing, integrating Kafka, Spark, Airflow, AWS, Kubernetes, and MLflow. Supports end-to-end data ingestion, transformation, storage, monitoring, and AI/ML serving with CI/CD automation using Terraform & GitHub Actions.

  • .dockerignore
  • .editorconfig
  • .env.example
  • .gitignore
  • .prettierignore
  • .prettierrc
  • api.sh
  • ARCHITECTURE.md
  • CITATION.cff
  • data_pipeline_setup.sh
  • DEPLOYMENT_STRATEGIES.md
  • docker-compose.ci.yaml
  • docker-compose.lite.yaml
  • docker-compose.yaml
  • End_to_End_Data_Pipeline.ipynb
  • index.html
  • LICENSE
  • Makefile
  • pyproject.toml
  • QUICK_START.md
  • README.md
  • requirements.txt
  • serve_wiki.py

# ์„ค์น˜ ๊ฐ€์ด๋“œ

1. ์ฝ”๋“œ ๋‚ด๋ ค๋ฐ›๊ธฐ
git clone https://github.com/hoangsonww/End-to-End-Data-Pipeline

๊นƒํ—ˆ๋ธŒ์—์„œ ํ”„๋กœ์ ํŠธ ์ฝ”๋“œ ์ „์ฒด๋ฅผ ๋‚ด ์ปดํ“จํ„ฐ๋กœ ๋‚ด๋ ค๋ฐ›์Šต๋‹ˆ๋‹ค.

cd End-to-End-Data-Pipeline

๋ฐฉ๊ธˆ ๋‚ด๋ ค๋ฐ›์€ ํ”„๋กœ์ ํŠธ ํด๋” ์•ˆ์œผ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

2. Docker

์‰ฌ์›€ ์ถ”์ฒœ
์‚ฌ์ „ ์ค€๋น„๋ฌผ
  • Git GitHub์—์„œ ํ”„๋กœ์ ํŠธ ์ฝ”๋“œ๋ฅผ ๋‚ด๋ ค๋ฐ›์œผ๋ ค๋ฉด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
  • Docker Desktop ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋นŒ๋“œํ•˜๊ณ  ์‹คํ–‰ํ•˜๋ ค๋ฉด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์„ค์น˜ ํ›„ ์‹คํ–‰ํ•ด์„œ ๋ฐฑ๊ทธ๋ผ์šด๋“œ์— ์ผœ๋‘์„ธ์š”.
DC[Docker Compose<br/>make deploy-local]

compose ์„ค์ • ํŒŒ์ผ์— ์ •์˜๋œ ์„œ๋น„์Šค๋“ค์„ ๋Œ€์ƒ์œผ๋กœ ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

DL[Docker Compose Lite<br/>make deploy-lite]

compose ์„ค์ • ํŒŒ์ผ์— ์ •์˜๋œ ์„œ๋น„์Šค๋“ค์„ ๋Œ€์ƒ์œผ๋กœ ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

โ”œโ”€โ”€ docker-compose.yaml # 20 services

compose ์„ค์ • ํŒŒ์ผ์— ์ •์˜๋œ ์„œ๋น„์Šค๋“ค์„ ๋Œ€์ƒ์œผ๋กœ ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

โ”œโ”€โ”€ docker-compose.ci.yaml # CI-specific compose

compose ์„ค์ • ํŒŒ์ผ์— ์ •์˜๋œ ์„œ๋น„์Šค๋“ค์„ ๋Œ€์ƒ์œผ๋กœ ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

โœ… ํ„ฐ๋ฏธ๋„์— docker compose ps ๋ฅผ ์ž…๋ ฅํ•ด ์ปจํ…Œ์ด๋„ˆ๋“ค์ด Up ์ƒํƒœ์ธ์ง€ ํ™•์ธํ•˜์„ธ์š”. README์— ํฌํŠธ ๋ฒˆํ˜ธ๊ฐ€ ์ ํ˜€์žˆ๋‹ค๋ฉด ๋ธŒ๋ผ์šฐ์ €์—์„œ http://localhost:ํฌํŠธ๋ฒˆํ˜ธ ๋กœ ์ ‘์†ํ•ด๋ณด์„ธ์š”.

์ด ๋ ˆํฌ์˜ README์— ์ ํžŒ ์‹ค์ œ ๋ช…๋ น์–ด๋ฅผ ๊ทธ๋Œ€๋กœ ๊ฐ€์ ธ์™”์Šต๋‹ˆ๋‹ค.

3. .NET

๋ณดํ†ต
์‚ฌ์ „ ์ค€๋น„๋ฌผ
  • Git GitHub์—์„œ ํ”„๋กœ์ ํŠธ ์ฝ”๋“œ๋ฅผ ๋‚ด๋ ค๋ฐ›์œผ๋ ค๋ฉด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
  • .NET SDK dotnet ๋ช…๋ น์–ด๋ฅผ ์“ฐ๊ธฐ ์œ„ํ•œ SDK์ž…๋‹ˆ๋‹ค.
โ”‚ โ””โ”€โ”€ templates/ # 8 templates (airflow, spark, dotnet-api, kafka-producer, configmap, secrets, namespace)

์ด ๋ช…๋ น์–ด๋ฅผ ํ„ฐ๋ฏธ๋„์— ๊ทธ๋Œ€๋กœ ์ž…๋ ฅํ•ด ์‹คํ–‰ํ•˜์„ธ์š”.

โœ… dotnet run ์‹คํ–‰ ํ›„ ํ„ฐ๋ฏธ๋„์— ๋‚˜ํƒ€๋‚˜๋Š” ์•ˆ๋‚ด ๋ฉ”์‹œ์ง€๋‚˜ ์ฃผ์†Œ๋ฅผ ํ™•์ธํ•˜์„ธ์š”.

์ด ๋ ˆํฌ์˜ README์— ์ ํžŒ ์‹ค์ œ ๋ช…๋ น์–ด๋ฅผ ๊ทธ๋Œ€๋กœ ๊ฐ€์ ธ์™”์Šต๋‹ˆ๋‹ค.

4. Python

์‰ฌ์›€
์‚ฌ์ „ ์ค€๋น„๋ฌผ
  • Git GitHub์—์„œ ํ”„๋กœ์ ํŠธ ์ฝ”๋“œ๋ฅผ ๋‚ด๋ ค๋ฐ›์œผ๋ ค๋ฉด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
  • Python 3 ์„ค์น˜ ์‹œ 'Add Python to PATH' ์˜ต์…˜์„ ๊ผญ ์ฒดํฌํ•˜์„ธ์š” (Windows).
pip install -r airflow/requirements.txt

requirements.txt ๋“ฑ์— ๋ช…์‹œ๋œ ํŒŒ์ด์ฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

jupyter notebook

๋ธŒ๋ผ์šฐ์ €์—์„œ ๋…ธํŠธ๋ถ(.ipynb) ํŒŒ์ผ๋“ค์„ ์—ด๋žŒํ•˜๊ณ  ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” Jupyter ํ™”๋ฉด์„ ์ผญ๋‹ˆ๋‹ค.

โœ… ์—๋Ÿฌ ๋ฉ”์‹œ์ง€ ์—†์ด ์‹คํ–‰๋˜๊ณ  ํ„ฐ๋ฏธ๋„์— ์•ˆ๋‚ด ๋ฌธ๊ตฌ๊ฐ€ ์ถœ๋ ฅ๋˜๋ฉด ์ •์ƒ์ž…๋‹ˆ๋‹ค.

5. Make

๋ณดํ†ต
์‚ฌ์ „ ์ค€๋น„๋ฌผ
  • Git GitHub์—์„œ ํ”„๋กœ์ ํŠธ ์ฝ”๋“œ๋ฅผ ๋‚ด๋ ค๋ฐ›์œผ๋ ค๋ฉด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
  • Make Linux/macOS๋Š” ๋ณดํ†ต ๊ธฐ๋ณธ ์„ค์น˜๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. Windows๋Š” ๋ณ„๋„ ์„ค์น˜(์˜ˆ: MSYS2, WSL)๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
make build

์ƒ์„ฑ๋œ ๋นŒ๋“œ ์„ค์ •์„ ๋ฐ”ํƒ•์œผ๋กœ ์‹ค์ œ ์ปดํŒŒ์ผ์„ ์ง„ํ–‰ํ•ด ์‹คํ–‰ ํŒŒ์ผ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

make up

์ƒ์„ฑ๋œ ๋นŒ๋“œ ์„ค์ •์„ ๋ฐ”ํƒ•์œผ๋กœ ์‹ค์ œ ์ปดํŒŒ์ผ์„ ์ง„ํ–‰ํ•ด ์‹คํ–‰ ํŒŒ์ผ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

make health

์ƒ์„ฑ๋œ ๋นŒ๋“œ ์„ค์ •์„ ๋ฐ”ํƒ•์œผ๋กœ ์‹ค์ œ ์ปดํŒŒ์ผ์„ ์ง„ํ–‰ํ•ด ์‹คํ–‰ ํŒŒ์ผ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

make urls

์ƒ์„ฑ๋œ ๋นŒ๋“œ ์„ค์ •์„ ๋ฐ”ํƒ•์œผ๋กœ ์‹ค์ œ ์ปดํŒŒ์ผ์„ ์ง„ํ–‰ํ•ด ์‹คํ–‰ ํŒŒ์ผ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

make trigger-batch

์ƒ์„ฑ๋œ ๋นŒ๋“œ ์„ค์ •์„ ๋ฐ”ํƒ•์œผ๋กœ ์‹ค์ œ ์ปดํŒŒ์ผ์„ ์ง„ํ–‰ํ•ด ์‹คํ–‰ ํŒŒ์ผ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

โœ… ์—๋Ÿฌ ์—†์ด ๋๋‚˜๋ฉด ์„ฑ๊ณต์ž…๋‹ˆ๋‹ค. ์ƒ์„ฑ๋œ ์‹คํ–‰ ํŒŒ์ผ์„ ์ง์ ‘ ์‹คํ–‰ํ•ด๋ณด์„ธ์š”.

์ด ๋ ˆํฌ์˜ README์— ์ ํžŒ ์‹ค์ œ ๋ช…๋ น์–ด๋ฅผ ๊ทธ๋Œ€๋กœ ๊ฐ€์ ธ์™”์Šต๋‹ˆ๋‹ค.

// repository documentation