sgom89/Realtime-ETL-Data-Pipeline
GitHub: sgom89/Realtime-ETL-Data-Pipeline
一个端到端的实时ETL数据管道,从CoinGecko API采集加密货币市场数据,经Pandas清洗和异常检测后存入SQL数据库,并通过React仪表板进行交互式可视化展示。
Stars: 0 | Forks: 0
# 实时 ETL 数据管道





一个端到端的数据工程管道,可提取实时金融数据,使用 Python 和 Pandas 执行转换,并将其加载到 SQL 数据库中。然后通过一个全栈 React 仪表板对数据进行可视化,该仪表板具有交互式实时图表和异常检测功能。

## 功能
- **自动数据提取**:一个定时的 Python 脚本从 CoinGecko API 获取实时市场数据(Bitcoin、Ethereum、Solana 等)。
- **数据转换**:清洗数据并检测突发的市场异常(例如,价格的快速下跌或飙升)。
- **关系型存储**:使用 SQLAlchemy 将历史市场数据和警报存储在 SQLite/PostgreSQL 数据库中。
- **RESTful API**:Flask 后端向前端提供历史和实时数据。
- **交互式仪表板**:一个使用 Tailwind CSS 设计样式的 React + Vite 前端,显示实时 KPI 和由 Recharts 驱动的图表。
## 技术栈
### 后端(数据工程)
- Python 3
- Pandas(数据处理)
- Flask & Flask-CORS(REST API)
- SQLAlchemy(ORM 与数据库连接)
- Schedule(类 Cron 任务运行器)
- Requests(API 调用)
### 前端(软件工程)
- React 18 + TypeScript
- Vite(构建工具)
- Tailwind CSS v4(样式)
- Recharts(数据可视化)
- Lucide React(图标)
- Axios(HTTP 请求)
## 如何在本地运行
### 1. 启动后端(ETL + API)
```
cd backend
python -m venv venv
# 激活环境 (Windows)
.\venv\Scripts\activate
# 安装依赖
pip install -r requirements.txt
# 运行服务器 (这也会启动后台 ETL scheduler)
python app.py
```
Flask API 将在 `http://127.0.0.1:5000` 上运行。
### 2. 启动前端(仪表板)
```
cd frontend
npm install
npm run dev
```
React 应用将在 `http://localhost:5173/` 上可用(或 Vite 分配的任何端口)。
## 架构流程
1. **提取**:每隔 1 分钟,`etl.py` 就会调用 CoinGecko API。
2. **转换**:数据被加载到 Pandas DataFrame 中。我们通过与上一次数据库记录进行比较来计算百分比变化,以检测异常情况。
3. **加载**:清洗后的指标和生成的警报通过 SQLAlchemy 保存到 `market_data.db` 中。
4. **服务**:Flask API 查询数据库并向前端提供 JSON。
5. **可视化**:React 仪表板每 30 秒轮询一次 Flask API(或通过手动刷新)并更新 UI。
## 许可证
MIT
标签:ETL, Flask, JavaCC, PostgreSQL, Python, React, Recharts, RESTful API, SQLAlchemy, SQLite, Syscalls, Tailwind CSS, TypeScript, Vite, Web3, 代码示例, 以太坊, 前端大屏, 加密货币, 安全插件, 实时数据处理, 异常检测, 提示词优化, 数字货币, 数据仪表盘, 数据分析, 数据工程, 数据清洗, 无后门, 比特币, 网络测绘, 自动化攻击, 逆向工具, 量化投资, 金融数据