原始 CSV 3.4GB → HDFS → MapReduce 清洗 → Hive 分层建仓 → Spark 分析 → Airflow 每日调度 → 12 项质量门禁。 本页全部数字实时抽取自运行中的湖仓(HiveServer2 直连 ADS 层),不是截图。 源码 | 数据:淘宝用户行为(2017-11-25 ~ 12-03)
加购→购买转化 68.3%(用户口径),浏览→加购 75.1%——Hive 与 Spark 双引擎结果一致。
12-02(周六)峰值:DAU 970,401 / 浏览 1232 万 / 购买 25.8 万;周末流量较工作日 +30%。
单机伪分布式(YARN 8GB/8vcore),3.4GB CSV → 日级聚合。
| 引擎 | 任务 | 耗时 |
|---|---|---|
| MapReduce | 日级行为计数 | 156s |
| MapReduce | 用户级聚合(98.8 万用户) | 106s |
| Hive (MR) | DWD 构建 CSV→Parquet | 228s |
| Hive (MR) | ADS 分析(Parquet 扫描) | 27-69s |
| Spark | 漏斗+RFM+日大盘全套 | 54s |
单机结论:Spark 内存计算对迭代分析有数量级优势;列存让重复分析远离原始 CSV;MR 的价值在模型本身的可解释性。
| 检查域 | 内容 | 状态 |
|---|---|---|
| 完整性 | ODS/DWD 行数与用户数锚定 | PASS |
| 合法性 | 日期窗口 / behavior 枚举 / ts 正值 | PASS |
| 唯一性 | DWD 复合主键零重复 | PASS |
| 一致性 | 清洗损耗率 < 5% | PASS |
| 业务合理性 | 漏斗 buy 锚点、单调性 | PASS |
门禁不是摆设:上线首日即抓到 318 条非法时间戳 + 49 条复合键重复——修数据不改规则,去重已内建进建仓 SQL。
| 分层 | 用户数 | 人均行为 | 人均购买 |
|---|---|---|---|
| 高价值活跃 | 160,726 | 182.1 | 2.85 |
| 有购买 | 459,361 | 106.8 | 2.97 |
| 流失预警 | 153,809 | 33.2 | 1.27 |
| 沉默浏览 | 214,095 | 77.8 | 0.00 |
全链路(HDFS/MR/Hive/Spark/Airflow/Superset)与复现文档见 仓库;调度 DAG cartlake_daily 每日 03:00 自动重跑并过门禁。