ETL Project Sample repository! This project demonstrates the process of Extracting, Transforming, and Loading data, providing a foundational framework for any ETL tasks.
سلام! به مخزن پروژه نمونه ETL خوش اومدید. این پروژه یه نمونه کامل از فرآیند استخراج، تغییر شکل و بارگذاری دادهها رو نشون میده که میتونید ازش برای یادگیری و پیادهسازی استفاده کنید.
توی این مخزن، یه خط لوله ETL داریم که دادههای فروش رو استخراج میکنه، به فرمت قابل استفاده تبدیل میکنه و توی یه دیتابیس برای تحلیل بارگذاری میکنه. این پروژه یه شروع عالی برای کساییه که میخوان با فرآیندهای ETL آشنا بشن.
etl-project-sample/
│
├── data/
│ └── products.csv # فایل نمونه دادهها
│
├── scripts/
│ └── etl.py # اسکریپت ETL
│
├── dags/
│ └── etl_dag.py # تعریف DAG برای Apache Airflow
│
├── requirements.txt # وابستگیهای پروژه
└── README.md # مستندات پروژه
برای راهاندازی پروژه روی کامپیوتر خودتون، مراحل زیر رو دنبال کنید.
git clone https://github.com/YOUR_USERNAME/etl-project-sample.git
cd etl-project-sample
مطمئن بشید که پایتون نصب شده، سپس پکیجهای مورد نیاز رو نصب کنید:
pip install -r requirements.txt
اسکریپت ETL رو برای پردازش دادهها اجرا کنید:
python scripts/etl.py
برای خودکارسازی فرآیند ETL، میتونید Apache Airflow رو راهاندازی کنید:
-
دیتابیس Airflow رو مقداردهی اولیه کنید:
airflow db init
-
فایل DAG رو به دایرکتوری DAG های Airflow کپی کنید:
cp dags/etl_dag.py $AIRFLOW_HOME/dags/
-
وبسرور و Scheduler رو راهاندازی کنید:
airflow webserver --port 8080 airflow scheduler
pandas
sqlalchemy
requests
apache-airflow
- استخراج: کشیدن دادهها از فایلهای CSV، دیتابیسها و API ها.
- تغییر شکل: پاکسازی، تغییر شکل و ادغام دادهها.
- بارگذاری: بارگذاری دادههای پردازششده به دیتابیس مقصد.
اینجا یه نگاهی به دادههای نمونه داریم:
product_id | product_name | price |
---|---|---|
1 | Product A | 10.99 |
2 | Product B | 12.49 |
3 | Product C | 8.99 |
order_id | customer_id | product_id | quantity | order_date |
---|---|---|---|---|
1 | 101 | 1 | 1 | 2023-07-01 |
2 | 102 | 2 | 2 | 2023-07-02 |
3 | 103 | 3 | 3 | 2023-07-03 |
اسکریپت ETL مراحل زیر رو انجام میده:
- استخراج سفارشها: تولید دادههای نمونه سفارشها.
- استخراج محصولات: خواندن دادههای محصولات از CSV.
- استخراج تراکنشها: کشیدن دادههای تراکنش از یه API نمونه.
- تغییر شکل دادهها: پاکسازی و ادغام دادهها.
- بارگذاری دادهها: بارگذاری دادههای پردازششده به یه دیتابیس SQLite.
خوشحال میشیم اگه توی پروژه مشارکت کنید! میتونید مسائل رو گزارش بدید، مخزن رو فورک کنید و Pull Request بفرستید.
این پروژه تحت مجوز MIT منتشر شده.