Yoginsjce/Telecom-churn-azure-pipeline
GitHub: Yoginsjce/Telecom-churn-azure-pipeline
基于 Azure 数据栈构建的电信客户流失检测 Pipeline,通过多层数据处理和信号评分模型提前识别高风险流失客户。
Stars: 0 | Forks: 0
# Telecom-churn-azure-pipeline
使用 Databricks、ADF、Delta Lake 和 Power BI 进行电信客户流失检测的端到端 Azure Data Engineering pipeline
# 🚀 电信客户流失检测 Pipeline
### 端到端 Azure Data Engineering 项目





## 📌 问题陈述
像 Airtel 和 Jio 这样的电信公司每月因客户流失损失数千万。当他们检测到客户流失时,往往已经来不及采取行动了。此 pipeline 旨在在客户离开之前识别出可能流失的客户——为留存团队提供每日优先处理的行动清单。
## 🏗️ 架构
[在此处插入架构图]
## 📊 技术栈
| 层级 | 技术 |
|---|---|
| 云平台 | Microsoft Azure |
| 处理引擎 | Azure Databricks, PySpark, Spark SQL |
| 编排工具 | Azure Data Factory |
| 存储 | Azure Data Lake Storage, Delta Lake |
| 源数据库 | Neon PostgreSQL |
| 外部 API | Open-Meteo Weather API |
| 安全管理 | Azure Key Vault |
| 数据模型 | Star Schema |
| 可视化 | Power BI |
## 🗂️ 数据源
| 来源 | 类型 | 记录数 | 内容 |
|---|---|---|---|
| ADLS | Parquet | 91,799 | 通话记录、使用数据 |
| Neon PostgreSQL | JDBC | 5,000 | 客户资料(未经清理) |
| Open-Meteo API | REST | 555 | 30天天气数据 |
## 🔄 Pipeline 层级
### Bronze 层 — 原始数据摄取
- 原样从所有 3 个数据源摄取原始数据
- 不进行任何转换
- 添加摄取元数据(时间戳、来源)
- 写入 Delta Lake bronze 表
### Silver 层 — 清洗与标准化
修复 8 类数据质量问题:
- 城市名称不一致(Bengaluru/Bangalore/BLR)
- 6 种不同的日期格式标准化
- 电话号码格式标准化
- 混合大小写的性别值
- 套餐类型不一致
- 无效的年龄值
- 重复记录
- Null 值处理
### Gold 层 — 业务逻辑
6 信号流失评分模型:
| 信号 | 条件 | 标记 |
|---|---|---|
| 使用量下降 | 30 天内通话分钟数 < 30 | 1 |
| 投诉频率 | 30 天内投诉 >=3 次 | 1 |
| 支付失败 | 3 个月内失败 >=2 次 | 1 |
| 套餐降级 | 降级至更低套餐 | 1 |
| 不活跃 | 20 天以上未充值 | 1 |
| 活跃天数低 | 30 天内活跃 < 10 天 | 1 |
流失得分 = 所有标记的总和(0-6)
- 得分 4-6 → 高风险
- 得分 2-3 → 中风险
- 得分 0-1 → 低风险
**天气智能分析:**
在恶劣天气事件期间出现通话中断投诉的客户,其风险等级将从高降级为中——从而避免产生流失误报。
### 数据模型层 — Star Schema
fact_churn (中心)
│
├── dim_customer
├── dim_plan
├── dim_usage
└── dim_weather
## 🎯 输出
| 目标 | 类型 | 表格 | 消费者 |
|---|---|---|---|
| Delta Lake | 分析型 | 10 张表 | Power BI |
| Neon PostgreSQL | 操作型 | 6 张表 | 业务团队 |
## 📈 Power BI 仪表板
5 个仪表板页面:
1. 流失概览 — 风险分布和 KPI
2. 客户分析 — 城市热力图和细分群体
3. 使用模式 — 行为相关性
4. 天气影响 — 环境背景
5. 留存行动 — 优先处理的行动清单
[插入仪表板截图]
## 🔒 安全
- 所有凭据均存储在 Azure Key Vault 中
- 使用 Databricks secret scope 进行安全访问
- 代码库中没有任何硬编码的值
- Neon PostgreSQL 要求启用 SSL 模式
## ⚙️ ADF 编排
Pipeline 执行顺序:Bronze 层(并行) → Silver 层(并行) → Gold 层 → Star Schema
通过 ADF 触发器每天在 IST 时间上午 9 点定时执行。
## 🚀 如何运行
1. 克隆此代码库
2. 将 usage_records.parquet 上传至 ADLS
3. 将 customer_profiles_messy.csv 加载至 PostgreSQL
4. 配置 Azure Key Vault 密钥
5. 将 notebook 导入 Databricks
6. 导入 ADF pipeline JSON
7. 触发 pipeline
## 📸 截图
### ADF Pipeline
(Telecom Churn Screenshots/Screenshot 2026-07-27 202317.png)
### Databricks 表
[]
### Power BI 仪表板
[插入 POWER BI 截图]
## 👨💻 作者
**Yogin N C**
Azure Data Engineer
📧 yoginnc@gmail.com
🔗 https://www.linkedin.com/in/yogin-nc-2b006324b/
🐙 https://github.com/Yoginsjce?tab=repositories
标签:Azure, Databricks, ETL管道, 客户流失预测, 数据工程, 数据湖仓