1. 数据仓库平台需求分析与规划

数据仓库平台建设失败,多数不是败在技术选型,而是败在需求阶段。业务方说“我要看报表”,IT方理解为“建几张宽表”,双方在项目验收时才发现对“实时”“口径”“明细粒度”的理解完全不同。因此,本章的核心任务不是写文档,而是把模糊的业务诉求转化为可度量、可验证、可排期的工程约束。需求分析与规划要回答五个问题:业务要什么、数据从哪来、平台要做到什么程度、需要多少资源、先做什么后做什么。

一、业务需求调研:从“要报表”到“要决策”

业务调研的目标是识别决策场景,而非收集报表清单。建议采用“业务域—决策问题—指标—维度—粒度”五层拆解法。以某零售企业为例,销售域的业务诉求是“控制缺货与滞销”,拆解后得到决策问题:哪些门店、哪些SKU在未来7天可能缺货?对应指标为库存周转天数、缺货率、动销率;维度包括门店、商品类目、时间、渠道;粒度要求为“门店×SKU×日”。

调研时需重点确认三类信息:一是指标口径,例如“销售额”是否含税、是否扣除退货、按订单日期还是发货日期归属;二是时效要求,是T+1、小时级还是分钟级;三是历史深度,通常财务与合规要求保留3~5年,而行为日志可能只需13个月。建议用一张“需求登记表”记录:需求编号、业务域、决策问题、指标、维度、粒度、时效、历史深度、优先级、提出人。这张表是后续范围与里程碑规划的直接输入。

调研访谈中,让业务方描述“最近一次因为看不到什么数据而做错决定”的具体场景,比问“你需要什么报表”更能挖出真实需求。

二、数据源梳理:摸清家底与质量

数据源梳理要形成“源系统清单+数据画像”。源系统清单记录系统名称、数据库类型与版本、数据量、更新频率、抽取方式(CDC、时间戳增量、全量)、网络可达性、负责人。数据画像则针对关键表记录:表名、行数、主键、字段类型、空值率、枚举值分布、是否存在重复、是否有敏感字段。

以订单表为例,梳理时可能发现:订单主表与订单明细表通过order_id关联,但存在约0.3%的明细无对应主表记录(脏数据);订单状态字段有“已支付”“支付完成”两种写法,需在ETL中统一。这些发现直接决定后续清洗规则与数据质量校验点。数据源梳理的产出应是一份可执行的“源到仓映射表”,标明每个目标表的数据来源、抽取方式、增量字段与更新频率。

三、平台目标定义:用可验证的指标描述

平台目标不能写成“建设统一数据仓库”这类口号,而应转化为可验证的指标。建议从四个维度定义:

  • 覆盖度:首批接入6个源系统、覆盖销售/库存/财务3个业务域,支撑20个核心指标。
  • 时效性:核心报表T+1上午8:00前可用;库存看板小时级刷新。
  • 质量:关键指标与源系统对账差异率≤0.1%;主键唯一率100%。
  • 可用性:ETL任务成功率≥99%,查询平均响应时间≤5秒。

这些指标既是验收标准,也是容量与性能预估的输入。目标定义阶段还需明确“不做什么”,例如首期不建设实时数仓、不接入非结构化日志,以避免范围蔓延。

四、容量与性能预估:用数据说话

容量预估从源数据量出发。假设订单明细表当前1200万行,日均新增8万行,每行约0.5KB,历史保留3年。则三年后行数约为1200万+8万×365×3≈9960万行,原始数据量约47.6GB。数仓通常保留多份(ODS、DWD、DWS),并考虑索引与压缩,可按原始数据的2.5~3倍估算存储,即约120~145GB。若再叠加10个类似规模的事实表,首期存储需求约1.5TB,建议按2TB规划并预留30%增长空间。

性能预估关注两个指标:ETL窗口与查询响应。若日增数据80万行、单行处理耗时0.1ms,则纯计算约80秒,加上抽取、加载与索引维护,单任务窗口约5~10分钟。若夜间有50个任务串行,总窗口约4~8小时,需在凌晨0:00至6:00内完成,因此必须并行化或错峰调度。查询响应则取决于并发数与数据量,建议首期按20并发、单表千万级、响应≤5秒设计,并通过聚集索引与分区表控制扫描量。

数据仓库平台需求分析与规划关系图 业务需求调研 决策问题 / 指标口径 维度 / 粒度 / 时效 历史深度 / 优先级 数据源梳理 源系统清单 / 数据画像 抽取方式 / 增量字段 质量与脏数据发现 平台目标定义 覆盖度 / 时效性 质量 / 可用性 明确不做什么 容量与性能预估 存储 / ETL窗口 并发 / 响应时间 增长预留 项目范围与里程碑规划 首期范围界定 · 迭代划分 · 交付节点 · 验收标准 示例里程碑(假设项目周期12周) W1-W2 需求确认 W3-W4 源系统接入 W5-W8 模型与ETL开发 W9-W12 测试与上线

五、项目范围与里程碑规划

范围规划的核心是“首期做窄、做深”。建议按业务域分批:首期聚焦销售与库存两个域,覆盖6个源系统、20个核心指标;财务与会员域放入二期。范围界定需明确边界:哪些报表纳入、哪些不纳入;哪些源系统接入、哪些暂缓;数据保留多久、是否支持历史回溯。

里程碑规划应包含四个关键节点:需求确认、源系统接入完成、模型与ETL开发完成、测试与上线。以12周项目为例,W1-W2完成需求确认与源系统梳理,输出需求登记表与源到仓映射表;W3-W4完成源系统接入与数据质量校验;W5-W8完成维度建模、ETL开发与指标计算;W9-W12完成对账测试、性能调优与上线。每个节点需定义可验证的交付物,例如“需求确认”的交付物是经业务与IT双方签字的需求登记表,“源系统接入完成”的交付物是6个源系统均可稳定抽取且数据质量校验通过。

里程碑不要只写时间,必须绑定交付物与验收标准。没有交付物的里程碑只是日历上的一个日期,无法判断项目是否真正推进。

最后,需求与规划不是一次性活动。建议在项目启动后每两周做一次需求回顾,将新增需求放入待办池并重新评估优先级,避免范围在开发阶段无序膨胀。规划的价值不在于预测未来,而在于当变化发生时,团队知道哪些可以调整、哪些必须坚守。