一.数据仓库定义

数据仓库就是面向主题的、集成的、相对稳定的、随时间不断变化(不同时间)的数据集合,用以支持经营管理中的决策制定过程、数据仓库中的数据面向主题,与传统关系数据库面向应用相对应。

二.数据仓库与传统数据的区别

 数据仓库是用于分析的数据库,传统的关系型数据库是面向业务的,为具体的业务提供支撑。

数据仓库是集成的,数据仓库的数据有来自于分散的操作型数据,将所需数据从原来的数据中抽取出进行加工与集成,统一与综合之后才能进入数据仓库.

数据仓库是不可更新的,数据仓库主要是为决策分析提供数据,所涉及的操作主要是数据的查询

随着时间的增长,数据仓库数据量会很大

与关系型数据库相比,数据仓库的设计允许冗余

为了更好的为业务决策服务,数据仓库的设计要求如下:

1.效率足够高,尽量的低延迟,隔天能看到历史的数据分析数据

2.数据质量,在ETL过程中,避免脏数据或者代码有误导致的数据不准确误导决策者

3.扩展性,考虑到随着时间的推移,以及业务的变动,数据量增大,数据仓库要合理建模,适度增加中间层(olap,cube),缓冲数据量增大带来的压力

4.根据决策者重点关心的方向,提取主题,排除无用的主题

 三 数据仓库系统的组成

    数据源,ETL,数据仓库,应用

四.数据仓库建模

   维度建模(dimensional modeling)是数据仓库建设中的一种数据建模方法。

   维度表:表示对分析主题所属类型的描述。就是你观察该事务的角度,是从哪个角度去观察这个内容的。

   事实表:表示对分析主题的度量。

   维度建模的模式:星形模式,雪花模式,星系模式(星座模式)

   星形模式:维表只和事实表关联,维表之间没有关联;以事实表为核心,维表围绕核心呈星形分布;

  雪花模式:是星形模式的扩展,每个维表可继续向外连接多个子维表

星形模式中的维表相对雪花模式来说要大,而且不满足规范化设计。雪花模型相当于将星形模式的大维表拆分成小维表,满足了规范化设计。然而这种模式在实际应用中很少见,因为这样做会导致开发难度增大,每次查询需要太多关联,而数据冗余问题在数据仓库里并不严重。

   星座模式:一个维表也可能被多个事实表用到

在业务发展后期,绝大部分维度建模都采用的是星座模式。

 共享维度

细节/聚集事实表

细节事实表(detailed fact tables)中每条记录表示单一事实,而聚集事实表(aggregated fact tables)中每条记录则聚合了多条事实。

 两种事实表各有优缺点,细节事实表查询灵活但是响应速度相对慢,而聚集事实表虽然提高了查询速度,但使查询功能受到一定限制。

一个常见的做法是使用星座模型同时设置两种事实表(可含多个聚集事实表)。

缓慢变化维度

五 数据仓库系统的实现和使用

数据仓库系统以前通常是建在关系型数据库基础上,随着大数据的发展,使用SPARK SQL,hive创建数据仓库逐渐成为趋势,建模与实现分开,先用建模工具建模,然后用HIVE或者spark sql实现,ETL工作的实质就是从各个数据源提取数据,对数据进行转换,并最终加载填充数据到数据仓库维度建模后的表中。

抽取(Extract):根据数据仓库的设计要求,从各个数据源搜集数据。

转换(Transform):对提取好了的数据的结构进行转换清洗,以满足目标数据仓库模型的过程

加载(Load):将转换好的数据加载的数据仓库

然后就是olap,维度建模,展示维度建模分析与SQL查询相比,设计好后简单但不够灵活

cube的架构模式通常有三种:MOLAP(Multidimensional Online Analytical Processing),ROLAP(Relational Online Analytical Processing),HOLAP(Hybrid Online Analytical Processing)

cube的常用操作:切片,切块,旋转,上卷,下钻

 

 

ETL通过清洗和转换最后将数据加载到数据模型中

ETL的主要任务是在交付过程中划分维度和事实