- Python 3.10+
- Cài đặt thư viện:
pip install -r requirement.txt
pip install pymysqlThiết lập biến môi trường trước khi chạy:
MYSQL_HOST(vd: localhost)MYSQL_PORT(vd: 3306)MYSQL_USER(vd: root)MYSQL_PASSWORDMYSQL_DB(vd: datawh)
python etl_transform.pyKết quả:
- Thư mục
staging/normalized_products.csv - Thư mục
hub/chứaDIM_Product.csv,DIM_Source.csv,DIM_Date.csv,DIM_Price_History.csv - Thư mục
logs/ghi log run json
Nếu cấu hình ENV MySQL hợp lệ, script sẽ tạo/ghi các bảng:
DIM_ProductDIM_SourceDIM_DateDIM_Price_HistoryETL_Log
- Khóa tự nhiên
product_idsinh từ URL/tên (slug) để map sản phẩm. brandđược suy luận từ URL/tên; có thể mở rộng mapping.DIM_Datetạo theo ngày chạy (date_key = YYYYMMDD).DIM_Price_Historylưu giá bán tại thời điểm load; có thể mở rộng thêmoriginal_price,discount_percentkhi có dữ liệu.