【DW】数据仓库理论与实战(一)

一.数仓概述

二.数据模型

三.数据仓库分层架构

四.数仓工具与udf

----------------------------------------------------------------------------------------------------------------

一.数仓概述

1.数据仓库(Data Warehouse)定义

Bill Inmon对数仓的定义是:一个面向主题的、集成的、随时间变化的、非易失的数据集合,用于支持管理者的决策过程。

个人理解:面向主题即 企业的运营或需求主题并按主题划分对数据进行分类

     集成即 多数据源集成

                  随时间变化即 源数据可能存在变化的可能性,如目标居住地迁移

       非易失即 数仓数据需要可靠的全量存储

2.数仓好处

  • 将多个数据源集成到单一数据存储,因此可以使用单一数据查询引擎展示数据
  • 缓解在事务处理数据库上因执行大查询而产生的资源竞争
  • 维护历史数据
  • 通过对多个源系统的数据整合,使得在整个企业的角度存在统一的中心视图
  • 通过提供一致的编码和描述,减少或修正坏数据问题,提高数据质量
  • 一致性地表示组织信息
  • 提供所有数据的单一通用数据模型,而不用关心数据源
  • 重构数据,使数据对业务更有意义
  • 向复杂分析查询交付优秀的查询性能,同时不影响操作型系统
  • 开发决策型查询更简单

二.数据模型

1.数据模型设计

数据模型是对现实世界数据特征的抽象,数据模型的设计方法就是对数据进行归纳和概括的方法。

2.方法选择

业界主要的模型设计方法论有两种:

a.数据仓库之父 Bill Inmon 提出的范式建模,又叫 ER 建模,主张站在企业角度自上而下进行数据模型构建

b.大师Ralph Kimball 倡导的维度建模方法,主张从业务需求出发自下而上构建数据模型

3.维度建模模式

a.星形模式(Star Schema)

 

 星形模式的维度建模由一个事实表和一组维表成,

 具有以下特点:

  • 维表只和事实表关联,维表之间没有关联;
  • 每个维表的主码为单列,且该主码放置在事实表中,作为两边连接的外码;
  • 以事实表为核心,维表围绕核心呈星形分布;
b. 雪花模式(Snowflake Schema)

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

 具有以下特点:
 星形模式中的维表相对雪花模式来说要大,而且不满足规范化设计。雪花模型相当于将星形模式的大维表拆分成小维表,满足了规范化设计。然而这种模式在实际应用中很少见,因为这样做会导致开发难度增大,而数据冗余问题在数据仓库里并不严重。
 
c.星座模式(Fact Constellations Schema)

 星座模式也是星型模式的扩展

 前面介绍的两种维度建模方法都是多维表对应单事实表,但在很多时候维度空间内的事实表不止一个,而一个维表也可能被多个事实表用到。
 
d.三种模式对比

 雪花模式是将星型模式的维表进一步划分,使各维表均满足规范化设计。而星座模式则是允许星形模式中出现多个事实表。

三.数据仓库分层架构

1.数仓分层概述

数据仓库标准架构分为三层(或三层以上),分别是ODS(操作性数据)、DW(数据仓库)、DM(数据集市).

2.数仓架构设计

实践过程中数仓搭建通常为:ods-dwd-dws-ads

ODS:Operation Data Store
原始数据

DWD(数据清洗/DWI) data warehouse detail
数据明细详情,去除空值,脏数据,超过极限范围的
明细解析
具体表

DWS(宽表-用户行为,轻度聚合) data warehouse service
服务层--留存-转化-GMV-复购率-日活
轻度聚合对DWD

ADS(APP/DAL/DF)-出报表结果 Application Data Store
做分析处理同步到RDS数据库里边

四.数仓工具与udf

1.常见数仓工具

azkaban,oozie,kettle等

2.udf

udf(user define function)是hive等框架提供的自定义函数扩展功能,通过udf可以极大地扩展hive的处理能力。

3.hive中udf分类

udf:普通函数,只对单行数据产生作用 1->1

udaf:a-aggregation 用户定义聚合函数,可对多行数据产生作用 n->1

udtf:t-table_generation 可以解决输入一行输出多行 1->n

原文地址:https://www.cnblogs.com/coder-ydq/p/13463319.html