数据仓库学习笔记(一)

文章介绍顺序

  • 数据仓库是什么
  • 数据仓库的特点
  • ETL
  • ODS
  • 数据模型
  • 数据分层

 

一、数据仓库

数据仓库可以说是:面向分析的存储系统

也就是说数据仓库是存数据的,企业的各种数据往里面塞,主要目的是为了有效分析数据,后续会基于它产出供分析挖掘的数据,或者提供应用于专门业务的数据,如企业的分析性报告和各类报表,为企业的决策提供支持。

先直观了解下常用的数据架构

preview

二、数据仓库的特点

  • 面向主题的:业务数据库中的数据都是面向事务处理进行组织的,但数据仓库是面向主题存放,其目的是为了更好的组织数据,方便数据查询分析。例如电商公司中一般是围绕订单、用户、产品、流量等构建主题,具体需要根据业务情况而定
  • 集成的:这是数据仓库最重要的特性。数据仓库的数据都是从不同的数据源抽取过来,这时就需要对数据进行清洗装换(编码同一、属性度量统一、描述统一、关键字统一),重新编排,得到原始表于数据仓库表的映射结果。
  • 相对稳定的:数据仓库的数据通常是批量的方式更新、访问(没有update操作),当数据抽取到操作环境中后,只要没有误操作,数据不会轻易丢失掩盖。
  • 反应历史变化的:这也是数据仓库显著特点。业务系统的数据是随着具体流程变化而实时更新,有的业务数据仅仅保留当前状态,数据进入数据仓库后,都会加上时间关键字加以标记,存储历史状态。当我们需要对数据进行历史变化分析时,这一特性就凸显出。

三、ETL

ETL分别代表:抽取extraction、转换transformation、加载load

(1)抽取(Extraction)

从数据来源提取指定数据

(2)转换(transformation)

将数据转换为指定格式并进行数据清洗保证数据质量。

数据转换,如编码转换(m/f---男/女),字段转换,度量单位转换,数据粒度的转换。。。

(3)加载(Load)

将转换过后的数据加载到目标数据仓库

四、ODS

ODS:全称是Operational Data Store,操作数据存储。

存储各大业务型数据库ETL后的数据,是最接近数据源中数据的一层,主要目的为了数据集中。

五、数据模型

这里的数据模型设计并不是数据挖掘中的数据建模,它是一种数据组织方式,将数据加以整理,便于管理使用。构建数据模型是为了抽象实体与实体之间联系关系,从而表示事务关系的一种映射。

经典数据仓库模型

1、实体关系(ER)模型

数据仓库之父Immon的方法从全企业的高度设计一个3NF模型,用实体加关系描述的数据模型描述企业业务架构,在范式理论上符合3NF,它与OLTP系统中的3NF的区别,在于数据仓库中的3NF上站在企业角度面向主题的抽象,而不是针对某个具体业务流程的实体对象关系抽象,它更多的是面向数据的整合和一致性治理,正如Immon所希望达到的:“single version of the truth”。

但是要采用此方法进行构建,也有其挑战:

  1. 需要全面了解企业业务和数据
  2. 实施周期非常长
  3. 对建模人员的能力要求也非常高

2、维度模型

维度模型是数据仓库领域另一位大师Ralph Kimball 所倡导,他的《The DataWarehouse Toolkit-The Complete Guide to Dimensona Modeling,中文名《数据仓库工具箱》,是数据仓库工程领域最流行的数仓建模经典。维度建模以分析决策的需求出发构建模型,构建的数据模型为分析需求服务,因此它重点解决用户如何更快速完成分析需求,同时还有较好的大规模复杂查询的响应性能。

典型的代表是我们比较熟知的星形模型,以及在一些特殊场景下适用的雪花模型

下面着重介绍最常用的维度建模

 

  • 星型模型:多维数据关系,由一个事实表和多个维度表构成。

  • 雪花模型:当一个或者多个维表没有连接到事实表上时,是通过中间维表连接构成。雪花模型是星型模型的补充。

维度建模中有一些比较重要的概念,理解了这些概念,基本也就理解了什么是维度建模。

1. 事实表

发生在现实世界中的操作型事件,其所产生的可度量数值,存储在事实表中。从最低的粒度级别来看,事实表行对应一个度量事件,反之亦然。

额,看了这一句,其实是不太容易理解到底什么是事实表的。

比如一次购买行为我们就可以理解为是一个事实,下面我们上示例。

p1.png

图中的订单表就是一个事实表,你可以理解他就是在现实中发生的一次操作型事件,我们每完成一个订单,就会在订单中增加一条记录。

我们可以回过头再看一下事实表的特征,在维度表里没有存放实际的内容,他是一堆主键的集合,这些ID分别能对应到维度表中的一条记录。

2. 维度表

每个维度表都包含单一的主键列。维度表的主键可以作为与之关联的任何事实表的外键,当然,维度表行的描述环境应与事实表行完全对应。 维度表通常比较宽,是扁平型非规范表,包含大量的低粒度的文本属性。

我们的图中的用户表、商家表、时间表这些都属于维度表,这些表都有一个唯一的主键,然后在表中存放了详细的数据信息。


六、数据分层

有了数据模型后,需要将数据进行分层

  • 数据分层之后更能将数据体系清晰化,数据仓库使用者能更快定位数据仓库表,减少数据仓库负荷(一般来说,明细数据应该减少访问,特定需求除外)。
  • 基础层主要做数据集成、数据清洗,将数据字段规范化;中间层做数据轻度汇总,此层数据是对数据应用的缓冲(当基础层数据错误时、可以在中间层进行拦截);集市层数据是高度汇总数据,主要面向报表、数据数据、数据挖掘等等。


 

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值