Hive - 数仓的分层理论
大数据职业规划
数据仓库 --> 数据开发 --> 数据挖掘 --> 全栈架构
数据仓库的用途
- 整合公司所有业务数据,建立统一的数据中心
- 产生业务报表,用于作出决策
- 为网站运营提供运营上的数据支持
- 可以作为各个业务的数据源,形成业务数据互相反馈的良性循环
- 分析用户行为数据,通过数据挖掘来降低投入成本,提高投入效果
- 开发数据产品,直接或间接地为公司盈利
数仓运行简图
数仓分层
1. 分层原因
- 把复杂问题简单化:将复杂的任务分解成多层来完成,每一层只处理简单任务,方便定位问题。
- 减少重复开发:规范数据分层,通过中间层数据,能够减少大量的重复计算,增加一次计算结果的复用性。
- 隔离原始数据:不论是数据的异常还是数据的敏感性,使真实数据与统计数据隔离开。
2. 基本分层模型
ODS(数据源层,原始数据) – ETL --> DWD(数据明细层) – hive sql --> DWS(数据汇总) – sqoop --> ADS(数据应用:报表、用户画像)
3. 数据仓库分层
3.1 数仓分层概述
在阿里巴巴的数据体系中,建议将数据仓库分为三层,自下而上为:
- 数据引入层(ODS,Operation Data Store)
- 数据公共层(CDM,Common Data Model)
- 公共维度层(DIM,Dimension)
- 数仓明细层(DWD,Data Warehouse Detail)
- 数据汇总层(DWS,Data Warehouse Service)
- 数据应用层(ADS,Application D