一、数据仓库
数据仓库,英文名称为Data Warehouse,可简写为DW或DWH。
数据仓库,是为企业所有级别的决策制定过程,提供所有类型数据支持的战略集合。
它是单个数据存储,出于分析性报告和决策支持目的而创建。
为需要业务智能的企业,提供指导业务流程改进、监视时间、成本、质量以及控制。
一堆数据集合 log类型(insert) db关系型(insert update delete)
挖掘有效价值 report(静态报表 动态报表 运营)、实时大屏、对其他业务系统提供指标计算(智能分单 包装方案智能推荐)、钉钉应用(IDSS)
提供企业决策
以ERP为例
各仓库每小时订单量
各仓库每天订单量 (每小时汇总)
各仓库各个供应商每小时订单量
各仓库各个供应商每天订单量(每小时订单量)
底层存储只需要:各仓库各个供应商每小时订单量
B01 供应商1 2019-10-01 00 1000
B02 供应商2 2019-10-01 00 2000
B01 供应商1 2019-10-01 01 3000
B01 供应商1 2019-10-02 00 3000
一般存储 只存储最小粒度的多维汇总数据
上钻下钻
仓库每天的订单量
仓库每月的订单量
仓库的各个供应商的每月的订单量
会自动拼接 sql ==》group by
二、集市
数据集市(Data Mart) ,也叫数据市场,
数据集市就是满足特定的部门或者用户的需求,按照多维的方式进行存储,
包括定义维度、需要计算的指标、维度的层次等,生成面向决策分析需求的数据立方体。
从范围上来说,数据是从企业范围的数据库、数据仓库,
或者是更加专业的数据仓库中抽取出来的。
数据中心的重点就在于它迎合了专业用户群体的特殊需求,
在分析、内容、表现,以及易用方面。数据中心的用户希望数据是由他们熟悉的术语表现的。
是数仓的一个子集
数据仓库 数据集市
企业级别 部门级别
大量的全的数据 仅自己的数据
三.数仓分层
ODS(operation data store) 原始数据层 存放原始数据 不做任何的处理
DWD/DWI(data warehouse detail) 结构和粒度与ODS层是一致的,只做对ODS层数据进行清洗(脏数据 空值) 拉链表 脱敏 手机号 银行卡 密码(mysql加密)
DWS(data warehouse service) 以DWD层为基础 进行轻度汇总 宽表(join)
ADS/APP/domain域表(application data store) 按主题提供统计数据(group计算 少量可能做join计算取决于宽表没有你想要的字段)
上–》下游数据量
四、为什么要分层
复杂问题简单化: 将一个超级复杂的任务进行分解成多个步骤来完成,
每一层只处理单一的步骤,比较简单,方便定位问题
减少重复开发:规范好数仓的分层,通过中间层的数据,能够减少重复计算,增加一次计算的复用。
隔离原始数据: 数据的敏感,使得真实的数据 和统计的数据 分离
数据仓库的分层不是越多越好,
合理的层次设计,以及计算成本 和人力成本的平衡,
是一个好的数仓架构的表现。
五、主表明细表设计案例
订单全表
订单主表+明细表
订单主表+明细表+商品表 生产上 上游MySQL的设计
mysql: --> hive ods层+dwd层 --》hive dws层
orderinfo orderinfo order
orderitems orderitems
天下分分合合 合合分分