数据仓库为什么存在
数据仓库把不同来源的数据整合到公共模型中,为运营支持、合规响应和商务智能提供统一、历史、可分析的数据。它也是减少大量重复决策支持系统、降低冗余、提高信息一致性的一种手段。
- 三项目标:支持商务智能、赋能分析与决策、基于洞察寻找创新
- 八条原则:聚焦业务目标、以终为始、全局设计局部建设、先明细后汇总、提升透明与自助、同步建元数据、协同其他数据活动、不千篇一律
- 数据仓库不是操作系统的副本:它面向主题、整合、随时间变化、相对稳定
- 商务智能既是分析活动,也是支撑分析的技术集合
两条经典路线:Inmon 与 Kimball
Inmon 的企业信息工厂(CIF)以规范化、企业级数据仓库为核心,再向数据集市分发;Kimball 的多维数据仓库以星型模型和一致性维度为核心,通过总线矩阵把多个数据集市集成为企业级数仓。两者理念不同,但都强调数据来自其他系统、经过整合、便于访问与分析。
- 数据仓库的四个特征:面向主题、整合、随时间变化、稳定(只追加、少更新)
- 星型模型由事实表(度量)与维度表(描述)组成,多个事实表通过一致性维度共享
- CIF 组件包括应用、暂存区、集成转换、ODS、数据集市、操作型数据集市、数据仓库、运营报告、参考与主数据
- ODS 通常保存当前或近期(30~90 天)数据,变化快;数据仓库保存多年历史,相对稳定
| 维度 | Inmon / 企业信息工厂 | Kimball / 多维数仓 |
|---|---|---|
| 核心结构 | 规范化企业数据仓库 + 数据集市 | 事实表 + 维度表,星型模型 |
| 建设顺序 | 先建企业级数仓,再建集市 | 按业务过程建集市,用一致性维度集成 |
| 优势 | 企业级一致性强、适合复杂集成 | 业务理解直观、查询性能好、交付快 |
| 挑战 | 建设周期长、前期投入大 | 跨集市一致性依赖维度治理 |
总线矩阵把业务流程与维度主题域交叉排列,标出共享维度,是 Kimball 集成多个集市的关键工具。
架构组件与数据流
无论采用哪种路线,数仓环境都需要源系统、数据集成、存储区域与访问工具。数据从源系统进入暂存区,经清洗整合后落到中央仓库或 ODS,再通过数据集市、数据立方体服务报表与分析。大数据则常常先把原始数据加载进来,再在平台上整合。
- 历史加载通常一次或有限次;持续更新需要稳定规划与调度
- CDC 可基于时间戳、日志表、数据库日志或全量比对,选择取决于源系统能力
- 准实时加载有三条路径:涓流式(源端累积)、消息传送(总线累积)、流式(目标端累积)
- 准实时数据要与大量历史稳定数据隔离,常见做法是分区与联合查询
| 区域 | 作用 | 注意点 |
|---|---|---|
| 暂存区 Staging | 抽取、转换、加载的中间区域 | 多为短时留存,对最终用户透明 |
| 中央数据仓库 | 保存历史原子数据与批处理后快照 | 按性能与使用模式设计键、索引、分区、CDC |
| 操作型数据存储 ODS | 低延迟、近期数据,支撑运营 | 刷新频率高,通常不含全部历史 |
| 数据集市 | 面向部门/主题的子集,支持报表与查询 | 可用多维模型;多个集市可合并为企业数仓 |
| 数据立方体 | OLAP 分析 | 关系型、多维型或混合存储 |
数据从应用到 ODS/仓库再到集市,通常是单向流动;错误数据应尽量在源头修正后重新加载。
数据仓库的建设活动
数仓建设不是一次性项目,而是持续交付数据产品。需求、架构、开发、加载、BI 组合与维护构成一个循环,每个版本都应带来可用的业务价值。
- 源到目标映射同时产生血缘,是数仓最重要的元数据之一
- 数据修正应尽量在源端完成;对已加载的错误记录,过期旧记录再加载新记录通常比删除更安全
- 乐观加载可先建维度再等事实;悲观加载需要回收区与告警,避免事实无维度可关联
- 数据准备与预处理往往是工作量最大的部分
- 理解需求:对齐业务战略,访谈业务人员,明确问题、KPI、口径与优先级,先做简单有价值的项目
- 定义架构:描述数据从哪来、到哪去、何时、为何、以何种方式流动,明确性能、可用性与时效要求
- 开发:并行推进数据(源到目标映射、清洗转换)、技术(存储与集成)与 BI 工具三条轨迹
- 加载:选择历史加载与持续更新方式,处理迟到维度、拒绝数据、质量规则与重跑
- BI 产品组合:按用户群体匹配工具,区分静态报表、交互分析、仪表盘与高级分析
- 维护与发布:把数仓当作数据产品,按版本管理增强,建立发布计划与需求积压
治理与度量
数仓治理关注数据质量、用户满意度、SLA 与报表策略。治理不是限制使用,而是保证用户能拿到清晰、准确、及时且安全的数据。
- 定期评估标准报表是否仍有价值,避免无效报表持续消耗资源
- 卓越中心可提供培训、设计最佳实践与自助分析支持
- SLA 要按 ODS、仓库、集市等不同层分别定义,因为时效与可用性要求不同
| 维度 | 指标示例 |
|---|---|
| 使用 | 注册用户、连接用户、并发用户、查询量、活跃用户 |
| 满意度 | 用户反馈、问题响应时间、采用率 |
| 服务 | 查询响应时间、数据新鲜度、可用性、SLA 达成率 |
| 质量 | 数据质量告警、对账差异、重跑次数 |
| 成本 | 存储与计算成本、报表运行成本、工具许可 |
报表策略要回答:谁可以看、看什么粒度、多久更新、以什么格式交付、如何审计。