数据仓库理论(Data Warehouse)

本文详细介绍了数据处理的方式(OLTP和OLAP)、数据建模特别是维度建模的概念、步骤、特点以及各种表分类,包括ER建模的优缺点,维度表的维度整合和拆分策略,事实表的设计,以及数据仓库分层和ETL过程。
摘要由CSDN通过智能技术生成

目录

1数据处理方式

2数据建模

2.1ER建模

2.2维度建模

事实表

维度表

度量值

维度建模例子

3维度建模表分类

维度表特征

维度表设计原则

退化维度

缓慢变化维

拉链表

增加属性列

冗余维度

3.1维度表高级主题(维度整合和拆分)

3.1.1垂直整合

3.1.2水平整合

3.1.3垂直拆分

3.1.4水平拆分

事实表

4数据组织类型

5维度建模步骤

6数据仓库分层

7ETL

8常见概念描述

9大数据架构


1数据处理方式

数据处理分为两大类:

联机事务处理(OLTP):高并发数据量级不大的查询,主要用于管理事务,满足三范式(3NF)

联机分析处理(OLAP):查询频率低,涉及复杂的聚合计算,以维度模型存储历史数据

2数据建模

数据建模是将经过系统分析后抽象出来的概念模型转化为物理模型
性能:良好的模型能帮我们快速查询需要的数据,减少数据的 IO 吞吐
成本:减少数据冗余、计算结果复用、从而降低存储和计算成本
效率:改善用户使用数据的体验,提高使用数据的效率
改善统计口径的不一致性,减少数据计算错误的可能性

2.1ER建模

优点:规范性较好,冗余小,数据集成和数据一致性方面得到重视
缺点:需要全面了解企业业务、数据和关系;实施周期非常长,成本昂贵;对建模人员的能
力要求也非常高,容易烂尾。

2.2维度建模

快速完成分析需求,较好的大规模复杂查询的响应性能

事实表

发生的操作型事件,产生可度量数值存储在事实表中,从最低的粒度级别来看,事实表行对应一个度量事件

维度表
即角度,不同维度进行分析,非操作型
每个维度表都包含单一的主键列。维度表的主键可以作为与之关联的任何事实表的外
度量值

对一次行为的度量,例如一瓶,两块

优缺点

优点:技术要求不高,快速上手,敏捷迭代,快速交付,更快速完成需求分析,大规模复杂查询的响应性能

缺点:维度表的冗余比较多,视野狭窄

维度建模例子

事实表:成绩表

维度表:学生维度,班级维度,年级维度,学校维度

3维度建模表分类

度量成为事实,环境描述为维度

今天“、张三矿泉水是维度,一瓶两块是事实

维度表特征

维度表范围宽(具有多个属性,列比较多)

跟事实表相比行数少

内容相对固定

维度表设计原则

维度属性尽量丰富,为数据使用打下基础

给出详实的、富有意义的文字描述

退化维度

简单的维度放到事实表中

缓慢变化维

维度的属性随时间缓慢变化,一般代理键作为维度表主键,

处理方式:直接覆盖原值,不看历史数据

拉链表

维度行增加三列:有效日期,截止日期,行标识(status(old,new))

增加属性列

dept_name====>      old_dept_name    new_dept_name

冗余维度

为了提升效率,把常用的维度冗余到事实表

3.1维度表高级主题(维度整合和拆分)

3.1.1垂直整合

不同的来源表包含相同的数据集,只是存储的信息不同。
同一个用户,关联度强,同一部门(会员基础信息表、会员扩展信息表)

3.1.2水平整合

不同的来源表包含不同的数据集,不同子集之间无交叉,也可以存在
部分交叉(会员特权,会员剩余时间,会员等级)
不同用户,关联度弱,不同部门(1688会员,淘宝会员)

3.1.3垂直拆分

出于扩展性、产出时间、易用性等方面的考虑,设计主从维度。主维表存放稳定、产出时间
早、热度高的属性;从维表存放变化较快、产出时间晚、热度低的属性。(主(商品价格),从(上架时间))

3.1.4水平拆分

维度通常可以按照类别或类型进行细分。

事实表

1事实表中的每行数据代表一个业务事件。“事实表示的是业务事件的度量值(可以统计次数、个 数、金额等)

2只选择与业务过程相关的事实

3分解不可加性事实为可加的组件

4在选择维度和事实之前必须先声明粒度(粒度用于确定事实表中一行所表示业务的细节层次,决定了维度模型的扩展性;)

5事实的单位要保持一致

6对事实的 null 值要处理(因为null值为sql过滤不生效,所以要把null变为0或者无效随机值)

7使用退化维度提高事实表的易用性

事实表设计方法

确定业务过程(创建订单,买家付款,卖家发货

声明粒度(一个父订单可能是购物车,一个子订单是每个商品的订单,那么订单

事实表选择子订单粒度

确认维度

确定事实

冗余维度

(冗余尽可能多的维度让下游方便使用,减少连表数量)

事实表分类

单事务事实表:一个事务,简单明了(订单业务)
多事务事实表:多个事务(订单业务拆分成下单和支付)
周期型快照事实表:固定时间间隔的数据,每天,每月
累积型快照事实表:跟踪业务事实变化,(打包,运输,签收)
可加性
半可加性:周期型事实表都是半可加性,不能汇总,但能计算平均值
不可加性

4数据组织类型

星座模型:一个事实表,一组维度表

雪花模型:星座表基础上,维度表可以连接维度表

星座模型:多个事实表可以共享维度表

5维度建模步骤

选择业务处理过程 > 声明粒度 > 选择维度 > 确定事实
业务处理: 下单业务,支付业务
声明粒度:尽量选择最小粒度,一个订单中的一个商品项。
选择维度: 谁,何处,何时
确定事实:订单金额、下单次数等

6数据仓库分层

原因和优点

1空间换时间:大量预处理提升用户体验,仓库会有大量冗余数据

2增强扩展性

不分层,业务规则发生变化,影响数据清洗

3分层管理,复杂问题简单化

4数据结构清晰

5方便血缘追踪:如果有其中一张源表出现问题,可以快速追踪

6减少重复开发:通用中间层复用

7屏蔽原始数据异常

分层

ODS原始数据层,贴源层(flume日志行为数据,DataX业务数据,sqoop)

DW数据仓库层(dws汇总数据层,dwd明细数据层,dim维度表)

ADS数据服务层(Fine BI report)

7ETL

数据抽取(Extract),数据清洗转换(Transform),数据装载(Load)

8常见概念描述

数据仓库:针对企业

数据集市:针对部门

数据孤岛:各部门数据不流通,形成数据孤岛

数据湖:未处理的数据,结构化,非结构化,也可作为数据仓库

数据中台,为数据服务提供API

宽表:字段较多的表,不遵循三范式

窄表:字段较少的表,遵循三范式

9大数据架构

数据采集==》数据处理==》数据输出与展示

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值