This project implements an end-to-end market data pipeline. Market prices are extracted from Yahoo Finance, validated and transformed using Pandas, and stored in PostgreSQL. The pipeline creates both Bronze and Silver data layers and is orchestrated by Apache Airflow. Grafana dashboards provide real-time visualization of market metrics and technical indicators
Yahoo Finance
↓
Extract
↓
Transform
↓
Bronze Layer (PostgreSQL)
↓
Silver Layer
↓
Grafana Dashboards
Airflow
↓
Triggers ETL every 5 minutes
- Python
- Pandas
- SQLAlchemy
- PostgreSQL
- Grafana
- Apache Airflow
- Docker Compose
- Automated market data extraction from Yahoo Finance
- Data validation and cleaning
- Duplicate handling with PostgreSQL upserts
- Bronze and Silver data layers
- Technical indicators (SMA20, SMA50, returns, volatility)
- Automated Grafana dashboard provisioning
- Automated datasource provisioning
- Airflow orchestration every 5 minutes
- Fully containerized with Docker Compose
app/ ├── etl/ │ ├── extract.py │ ├── transform.py │ └── load.py ├── config.py └── main.py
airflow/ grafana/ sql/
git clone https://github.com/NoMooreCookies/financial-market-data-pipeline.git
cd financial-market-data-pipeline
docker compose up -d --buildDefault credentials:
- Username: admin
- Password: admin
The project includes interactive Grafana dashboards connected directly to PostgreSQL.
Key features:
- Real-time market price visualization
- Trading volume monitoring
- Multi-asset comparison (stocks and cryptocurrencies)
- Dynamic ticker selection using Grafana variables
- Historical price analysis and trend monitoring
Data ingestion and processing are orchestrated using Apache Airflow.
The ETL workflow consists of:
- Extract – Download market data from Yahoo Finance.
- Transform – Normalize, validate and clean market data.
- Load – Store validated records in PostgreSQL while preventing duplicates.
The DAG is scheduled to run automatically every 5 minutes and includes logging, retry mechanisms and monitoring capabilities.
- Gold Layer
- Additional technical indicators
- Cloud deployment
- Real-time streaming with Kafka


