一、数据仓库
1、 什么是数据仓库?
(1)数据仓库是为企业所有决策定制过程,提供所有系统数据支持的战略集合。
(2)通过对数据仓库中数据的分析,可以帮助企业,改进业务流程、控制成本、提高产品质量等。
(3)数据仓库,并不是数据的最终目的地,而是为数据最终的目地做好准备。这些准备包括对数据的:清洗、转义、分类、重组、合并、拆分、统计等.....
2、 数据仓库的用途
(1)整合公司所有业务数据,建立统一的数据中心。
(2)产生业务报表,用于作出决策。
(3)分析用户行为数据,通过数据挖掘来降低投入成本,提高投入效果等等。
3、数据库和数据仓库的区别
数据仓库是指从业务数据中创建信息数据库,并针对决策和分析进行优化。
数据库是数据管理的有效技术,是由一批数据构成有序的集合,这些数据被存放在结构化的数据表里。数据表之间相互关联。
数据库和数据仓库的区别对比 数据库 数据仓库 数据设计 面向事务设计 面向主题设计 数据设计 尽量避免冗余(范式) 主要满足业务需求 数据设计 捕获数据 分析数据 存储数据 线交易数据 一般存储历史数据
当然数据仓库的创建需要根据业务的需求以及各方面要求来进行建模。
二、数据仓库搭建
1、数据仓库分层(四层)
2、分层的好处
(1)清晰数据结构:每层数据分层都有它的职责,在使用表的时候能更方便地定位。
(2)减少重复开发:规范数剧分层,开发一些通用的中间层数据能够减少极大的重复计算。
(3)统一数据口径:通过数据分层,提供统一的数据出口,统一对外输出的数据口径。
(4)复杂问题简单化:上一层数据最好只用到下一层。
3、分层的坏处
(1)操作麻烦,耗时
(2)机器资源成本前期投入大
(3)前期数仓不容易出成果,推广难度大
(4)数仓的数据冗余度很大
4、数据仓库分层(五层)
数据分层 | 数据分层概念 |
ods | 原始数据层(保存没有变动的数据) |
dwd | 数据明细层(事实表) |
DIM | 公共维度层(维度表) |
DWS | 公共汇总层(包含业务过程、统计周期、统计粒度相同) |
ADS | 数据应用层(保存需求指标结果) |
总结: 数仓的分层基本为四层:ods(原始数据层)、dwd(数据清洗)、dws(数据的轻度汇总)、ads(各种报表指标的实现)。当然维度建模还可以分层,但一般情况下分为四层,因为分层越明细数据的冗余会更大,数仓建模更失败,但这并不是绝对的,一切以业务需求为主,在满足业务需求的情况下尽量让建模更加完善。但有一点在建模中尽量让下一层数据只用到上一层,这样的好处是在出问题时可以精确定位问题所在。
三、 事实表与维度表
事实表:事实表中的每行数据代表一个业务事件(比如在电商项目中下单、支付、退款、评价等各种行为都可以算作是一个事件),“事实”术语表示的是业务数据的度量值。
维度表:一般是指一些业务状态,编号的结实表。也是对事实的描述信息,也就是这件事到底是啥样。也可以称之为码表。每张维表对应现实世界中的一个对象或者概念。(比如:地区表、订单转态、支付方式、审批状态、商品分类等等。)
总结:事实表:是实时发生变化和改变的一般我们采用增量,维度表:中的数据基本上不发生改变我们做全量。