LIDONI/Architecture-de-donneess-automatisee
GitHub: LIDONI/Architecture-de-donneess-automatisee
一个企业级数据工程 POC,通过整合 Kafka 流处理与 Power BI 可视化,实现员工体育奖励的自动化判定与财务影响分析。
Stars: 0 | Forks: 0
# 自动化数据架构
这是一个数据工程概念验证(POC)项目,旨在通过奖励系统鼓励企业内部的体育活动。完整的 Pipeline 包括:HR 与运动数据摄入、Python 处理、Kafka (Redpanda) 流处理、PostgreSQL 存储以及 Power BI 可视化。检测符合条件的员工并分析财务影响。
## Sport Data Solution – 体育奖励 POC
## 背景
Sport Data Solution 希望通过建立一套奖励机制来鼓励员工参与体育锻炼:
| 奖励 | 条件 |
|----------|-----------|
| **5% 奖金**(基于年度毛薪)| 通过运动方式通勤(自行车、跑步、步行、滑板车)|
| 每年 **5 天“福利假”**| 保持积极的体育活动(每年 ≥ 15 次活动)|
### POC 目标
- 测试技术可行性
- 识别所需数据
- 计算对公司的财务影响
## 技术架构
[](https://github.com/LIDONI/Architecture-de-donneess-automatisee/blob/55d1898c2a62bba3e19334698491426814ea8efb/Pipeline.png)
### 所用组件
| 组件 | 作用 |
|-----------|------|
| **Python** | 提取、模拟和处理 |
| **Kafka (Redpanda)** | 数据流处理与解耦 |
| **PostgreSQL** | 持久化存储 |
| **Power BI** | 可视化与仪表板 |
| **Docker** | 容器化 |
## 项目结构
Sport-data-solution/
├── data/
│ ├── raw/
│ │ ├── Donnees_RH.xlsx
│ │ └── Donnees_Sportive.xlsx
│ └── processed/
│ ├── final_dataset.csv
│ ├── strava_activities.csv
│ └── slack_messages.csv
├── src/
│ ├── extract/
│ │ └── extract_excel.py
│ ├── transform/
│ │ ├── clean_rh.py
│ │ ├── calculate_distance.py
│ │ ├── simulate_strava.py
│ │ ├── business_rules.py
│ │ └── slack_generator.py
│ ├── streaming/
│ │ └── strava_producer.py
│ └── monitoring/
│ └── monitoring.py
├── pipeline.py
├── strava_consumer_csv.py
├── import_csv_to_postgres.py
└── requirements.txt
text
## 安装
### 1. 克隆项目
```
- git clone
- cd Sport-data-solution
```
### 2. 创建虚拟环境
```
- python -m venv venv
- venv\Scripts\activate # Windows
- source venv/bin/activate # Linux / Mac
```
### 3. 安装依赖
```
pip install -r requirements.txt
```
### 4. 启动 Docker 容器
```
- docker start redpanda
- docker start postgres
```
## 运行 Pipeline
### 步骤 1 – 批处理 Pipeline(初始生成)
python pipeline.py
**生成的文件:**
```
- data/processed/final_dataset.csv
- data/processed/strava_activities.csv
- data/processed/slack_messages.csv
- data/monitoring/monitoring_report.json
```
### 步骤 2 – Kafka 流处理
**终端 1 – Consumer**
```
python strava_consumer_csv.py
```
**终端 2 – Producer**
```
python src/streaming/strava_producer.py
```
### 步骤 3 – 导入到 PostgreSQL
```
python import_csv_to_postgres.py
```
### 步骤 4 – Power BI 可视化
**打开 Power BI Desktop**
**获取数据 → PostgreSQL**
填写信息:
- 服务器:localhost
- 数据库:strava
- 用户名:postgres
- 密码:xxxxxxx
- 导入 athlete_stats 表
- 创建仪表板
# 👤 作者
Hi 👋, I'm khalid
Data & Cloud Engineer|| Power BI and Qlik sense developer
本项目由以下人员完成: **khalid OURO-ADOYI** 📧 邮箱:khalidouroadoyi@gmail.com 🔗 [LinkedIn](https://www.linkedin.com/in/khalid-ouro-adoyi/) | [GitHub](https://github.com/LIDONI) - 📫 联系方式 **khalidouroadoyi@gmail.com** - 👨💻 我所有的项目均可在 [https://github.com/lidoni?tab=repositories](https://github.com/lidoni?tab=repositories) 查看 - 📄 您可以在我的 LinkedIn 帖子中查看我的演示文稿 [https://www.linkedin.com/in/khalid-ouro-adoyi/](https://www.linkedin.com/in/khalid-ouro-adoyi/)标签:Apache Kafka, Docker, ETL, JavaCC, POC, PostgreSQL, Power BI, Python, Redpanda, Strava模拟, 人力资源分析, 企业福利, 体育数据分析, 员工健康, 多线程, 安全防御评估, 数据工程, 数据管道, 无后门, 流式处理, 测试用例, 激励系统, 自动化架构, 请求拦截, 财务影响分析, 软件工程, 逆向工具