数据仓库建设Best Pratice学习

本文介绍了数据仓库的原理和建设过程,包括数据仓库的作用、特点、学习内容和顺序。探讨了为什么要建设数仓,基础理论如维度建模,以及模型的层次结构,如ODS、DW(DWD、DWM、DWS)和数据应用层。通过学习,能够掌握从零开始建设数仓并解决业务分析问题的能力。
摘要由CSDN通过智能技术生成

学前准备

数据仓库是什么?

从字面上理解,说白了就是把数据存在一个地方,类似于现实生活中的仓库,之所以叫数据仓库,也是由于它的一些特性

数据仓库的作用,可以分为以下几点:

  • 存储:数据仓库将接收和存储来自多个数据源的数据。

  • 处理:ETL。

  • 访问:为企业的分析和决策提供支持。

数据仓库的特点:

  • 面向主题,基本的主题比如销量、用户。而普通数据库一般面向事务,比如用户下订单、用户注册登录
  • 数据仓库是集成的,数据来源于分散的操作型数据,将数据进行ETL之后才能进入数据仓库

学习数仓,要学些什么?

  • 数据仓库的基础理论
  • 别人是怎么建数仓的
  • 为什么这样建设数仓,为什么这样定义数仓的层级
  • 数仓的理论知识由浅入深有哪些

学成数枪之后,我要会做些什么,掌握了什么能力?

从零开始建设一个数仓,并为企业带来收益

应该从哪些资料中学习 ?

书:《阿里巴巴大数据建设指南》

网站:正在收集

具体要学些什么,学习的顺序?

  1. 为什么要建设数仓?
  2. 数仓的基础理论,
  3. 模型的层次结构,为什么要建这一层?每一层的作用
  4. 维度建模
  5. 事实表设计
  6. 元数据
  7. 数据质量
  8. 数据应用

每一步的学习具体要用到哪个资料?

可以用网上找到的数仓建设指南,最好寻找类似工作中使用的数仓,结合自己在工作中的理解,缩小学习资料的范围

数据仓库学习

一. 为什么要建设数仓

其实不建设数仓,也可以在业务型数据库中完成数据分析,支撑业务决策,但是业务型数据库有以下缺点:

  • 业务型数据库为开发和操作而建立主要面向的用户是C端用户和开发人员,不适合数据分析
  • 数据流转不清晰,使用三范式建模而不是维度建模
  • 数据质量不可预估,可能存在许多脏数据
  • 查询速度慢,OLTP型数据库不适合查询超大数据量

而数据仓库的特点就是适合分析业务,下面是业务数据库和数据仓库的对比

 二. 数据仓库基础理论

维度建模:维度建模从分析决策的需求出发构建模型,为分析需求服务(和数仓的特点相同,所以适合数据仓库建模),主要由事实表和维度表两种类型构成,典型代表是星型模型

三范式:  数据库三大范式通俗解释

三. 模型的层次结构

1. 数据源层:ODS(Operational Data Store)

ODS 层,是最接近数据源中数据的一层,为了考虑后续可能需要追溯数据问题,因此对于这一层就不建议做过多的数据清洗工作,原封不动地接入原始数据即可,至于数据的去噪、去重、异常值处理等过程可以放在后面的 DWD 层来做。

2. 数据仓库层:DW(Data Warehouse)

数据仓库层是我们在做数据仓库时要核心设计的一层,在这里,从 ODS 层中获得的数据按照主题建立各种数据模型。

DW 层又细分为 DWD(Data Warehouse Detail)层、DWM(Data WareHouse Middle)层和 DWS(Data WareHouse Servce) 层。

1) 数据明细层:DWD(Data Warehouse Detail)

该层一般保持和 ODS 层一样的数据粒度,并且提供一定的数据质量保证。DWD 层要做的就是将数据清理、整合、规范化,脏数据都会被处理

同时,为了提高数据明细层的易用性,该层会采用一些维度退化手法,将维度退化至事实表中,减少事实表和维表的关联

另外,在该层也会做一部分的数据聚合,将相同主题的数据汇集到一张表中,提高数据的可用性 。

2) 数据中间层:DWM(Data WareHouse Middle)

该层会在 DWD 层的数据基础上,数据做轻度的聚合操作,生成一系列的中间表,提升公共指标的复用性,减少重复加工。

直观来讲,就是对通用的核心维度进行聚合操作,算出相应的统计指标

在实际计算中,如果直接从 DWD 或者 ODS 计算出宽表的统计指标,会存在计算量太大并且维度太少的问题,因此一般的做法是,在 DWM 层先计算出多个小的中间表,然后再拼接成一张 DWS 的宽表。由于宽和窄的界限不易界定,也可以去掉 DWM 这一层,只留 DWS 层,将所有的数据再放在 DWS 亦可。

3) 数据服务层:DWS(Data WareHouse Servce)

DWS 层为公共汇总层,会进行轻度汇总,粒度比明细数据稍粗,基于 DWD 层上的基础数据,整合汇总成分析某一个主题域的服务数据,一般是宽表。DWS 层应覆盖 80% 的应用场景。又称数据集市或宽表。

按照业务划分,如主题域流量、订单、用户等,生成字段比较多的宽表,用于提供后续的业务查询,OLAP 分析,数据分发等。

一般来讲,该层的数据表会相对比较少,一张表会涵盖比较多的业务内容,由于其字段较多,因此一般也会称该层的表为宽表。

3. 数据应用层:APP(Application)

在这里,主要是提供给数据产品和数据分析使用的数据,一般会存放在 ES、 PostgreSql、Redis 等系统中供线上系统使用,也可能会存在 Hive 或者 Druid 中供数据分析和数据挖掘使用。比如我们经常说的报表数据,一般就放在这里。

4. 维表层(Dimension)

如果维表过多,也可针对维表设计单独一层,维表层主要包含两部分数据:

高基数维度数据:一般是用户资料表、商品资料表类似的资料表。数据量可能是千万级或者上亿级别。

低基数维度数据:一般是配置表,比如枚举值对应的中文含义,或者日期维表。数据量可能是个位数或者几千几万。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值