三层数据架构总览
13_归档
三层数据架构总览
最后更新: 2026-06-07
版本: v0.1(设计阶段)
架构目标
- 性能: 从标准视图的每次全量查询 → 物化视图的秒级响应
- 可维护: 分层清晰,各层职责独立
- 可追溯: 每个数据口径有定义、有来源、有变更记录
- 可扩展: 新增分析维度无需改动底层
整体架构图
┌──────────────────────────────────────────────────────────────────────┐
│ Layer 1: 原始数据层 (ODS) — MySQL ruimeiyun (280MB, 8张基表) │
│ │
│ 回访记录(272K) 712执行业绩(124K) 出纳结算单(108K) │
│ 到院明细(78K) 预约记录(43K) 客户盘点(42K) │
│ 入库记录(9K) 白鲸门店日报(95行) │
│ │
│ 现有: 24个标准视图(每次全量重算) │
└──────────────────┬───────────────────────────────────────────────────┘
│ Python ETL (每日4:00)
▼
┌──────────────────────────────────────────────────────────────────────┐
│ Layer 2: 物化视图层 (PostgreSQL ruimeiyun_dw) │
│ │
│ ┌──────────────────────────────────────────────────────────────┐ │
│ │ DWD 明细层 (Detail) — 清洗、标准化后的明细数据 │ │
│ │ m_dwd_出纳结算单 m_dwd_到院明细 m_dwd_客户盘点 │ │
│ │ m_dwd_回访记录 m_dwd_712执行业绩 m_dwd_预约记录 │ │
│ ├──────────────────────────────────────────────────────────────┤ │
│ │ DWS 汇总层 (Summary) — 日/月聚合,高频查询 │ │
│ │ m_dws_daily_brief m_dws_monthly_performance │ │
│ │ m_dws_store_daily_kpi m_dws_consultant_monthly │ │
│ │ m_dws_product_sales m_dws_visit_summary │ │
│ ├──────────────────────────────────────────────────────────────┤ │
│ │ ADS 应用层 (Application) — 业务直接调用 │ │
│ │ m_ads_customer_rfm m_ads_churn_warning │ │
│ │ m_ads_consultant_ranking m_ads_customer_wakeup │ │
│ │ m_ads_cross_flow m_ads_source_roi │ │
│ │ m_ads_executive_dashboard m_ads_complaint_analysis │ │
│ └──────────────────────────────────────────────────────────────┘ │
└──────────────────┬───────────────────────────────────────────────────┘
│ 查询
▼
┌──────────────────────────────────────────────────────────────────────┐
│ Layer 3: 展示层 │
│ │
│ Dify AI问答 + ChartGen | BI仪表盘 | 报表导出/外部API │
│ (自然语言查数、自动图表) (固定看板) (定时推送到微信/钉钉/邮件) │
└──────────────────────────────────────────────────────────────────────┘
各层职责
ODS 层(源数据层)
- 保留原始数据不做修改
- 每日从远程睿美云同步
- 数据新鲜度:T+1
DWD 层(明细层)
- 清洗、去重、标准化
- 字段重命名、类型转换
- 补充缺失值
- 与基础表一一对应
DWS 层(汇总层)
- 按日/月粒度预聚合
- 面向高频查询场景
- 多表 JOIN 提前完成
ADS 层(应用层)
- 面向具体业务应用
- 复杂计算逻辑(RFM、排名、分层)
- 管理层看板数据源
展示层
- Di[[f]]y + database 插件:自然语言查询
- ChartGen 插件:自动图表生成
- BI 工具:固定仪表盘
- Python 脚本:Excel 报表导出
刷新策略
| 层级 | 刷新时间 | 方式 |
|---|---|---|
| ODS | 每日 3:00 | 远程 → 本地 MySQL 同步(已有 crontab) |
| DWD | 每日 4:00 | PostgreSQL REFRESH MATERIALIZED VIEW CONCURRENTLY |
| DWS | 每日 4:15 | 同上,依赖 DWD 刷新完成后 |
| ADS | 每日 4:30 | 同上,依赖 DWS 刷新完成后 |
| 展示层 | 实时 | 直接查询物化视图 |
使用
CONCURRENTLY保证刷新期间查询不中断支持单视图按需刷新 API
性能预期对比
| 查询场景 | 当前(标准视图) | 改造后(物化视图) |
| RFM 客户分层 | 10-20秒 | < 1秒 |
| 月度业绩报表 | 5-10秒 | < 0.5秒 |
| 流失预警客户 | 3-8秒 | < 1秒 |
| 咨询师排名 | 5-15秒 | < 0.5秒 |
| 管理层看板 | 30秒+ | < 2秒 |