大数据预处理技术 第6章 构建数据仓库
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
02
构建维度表
构建维度表
阶段1:管理各种键
• 业务键的管理 • 代理键的管理
阶段2:维度表的加载
• 星型模型 • 雪花模型
阶段3:缓慢变更维度
• 常见缓慢变化维表分类 • 类型1缓慢变化维更新 • 类型2缓慢变化维更新 • 类型3缓慢变化维更新 • 其他类型介绍
管理各种键
在构建维度表中,主要涉及两种键: 1、业务键:来源于源系统的业务主键,是业务实体的唯一标识。 2、业务代理键:简称代理键,为了确定维度表中唯一的行而增加的键。 管理这两种键,需要做如下工作:
数据导入与预处理第六章
构建数据仓库
目录
01
数据仓库介绍
构建维度表
02
03
构建事实表
01
数据仓库介绍
数据仓库介绍
阶段1:数据仓库概念
• 数据库的定义及特征 • 数据仓库和数据库区别
阶段2:数据仓库的重要组成
• 数据仓库事实表 • 数据仓库维度表
数据仓库的定义及特征
数据仓库理论的创始人W.H.Inmon在其《Building the Data Warehouse》一书中,
星型模型的加载办法: 该模型中,每个维度表之间没有依赖关系,加载不分先后
顺序。
维度表的加载—加载雪花模型
雪花模型的特点: 雪花模型是在基于星型模型之上拓展来的,每一个维度可以再扩散出更 多的维度,根据维度的层级拆分成颗粒度不同的多张表
雪花模型的加载办法: 雪花模型中,city和country、country和region 是N:1的关系,几个层 级间相互依赖,加载时需从顶向下加载,即: 按region country city 顺序加载
维度的加载需要掌握一定的技巧,下面是两个典型的场景: 1.加载雪花维度表 2.加载反正规化的星型维度表 加载维表时,要根据维表的特点,选择合适的加载顺序。
维度表的加载—星型模型加载
星型模型的特点: 在星型模型,顾名思义事实表和维表形成星型的样式,即:以事
实表为中心,外围是若干张维度表,维表通过主键和事实表的外键 关联
管理各种键—管理代理键
第二种,使用转换计数器生成序列,取值范围在用户界面直接定义,计数器超过 最大值后从起始值重新开始。因这种方法每次重新运行时,会从初始值开始取数, 不能直接当代理键使用,通常需要进行特殊处理。
具 体
select max(id) from test_sequence
办
法
1:
sequence_value
给出了数据仓库的四个基本特征:面向主题,数据是集成的,数据是不可更新的,数 据是随时间不断变化的。
数据仓库
应用领域
数据库 数据文件
ETL工具
其他
抽取、转换、装载
综合数据 当前数据 历史数据 元数据
报表查询 统计分析 机器学习 个性化推荐
数据库和数据仓库区别
数据库: 主要处理基本的、日常的、实时性要求非常高的事务处理,例如在线购物。
max(id)+sequence_value
管理各种键—管理代理键
第二种,使用转换计数器生成序列,取值范围在用户界面直接定义,计数器超过 最大值后从起始值重新开始。因这种方法每次重新运行时,会从初始值开始取数, 不能直接当代理键使用,通常需要进行特殊处理。
具
(1):
体
办
法
2
(3):
(2):
维度表的加载
数据仓库: 主要解决复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。
数据项目
数据库
数据仓库
数据范围
当前状态数据
历史的、完整的、反应历史变化
数据变化
支持频繁的增、删、改、查
添加为主、无删除、无变更的、反应历史变化
应用场景
面向业务交易流程
面向分析、支持战略决策
数据结构 设计理论 处理量
高度结构化、适合操作、计算 遵照第一、二、三范式 频繁、小批次、高并发、低延迟
简单、适合分析 违反范式、适当冗余 非频繁、大批量、高吞吐、有延迟
响应时间
计时单位小,如秒
计时单位多种多样,分、小时、天、月等
数据仓库重要组成—事实表
• 主要存放各种业务数据。事实数据 表包含特定业务事件的数据。比如 考试成绩、图书借阅、课程安排, 这些都是实际发生的业务事件,都 是事实表记录的信息
(1)确定业务主体对象,确保业务主键的唯一性。 (2)判断当前维度表是否存在该业务键,根据业务主键更新维表或者插入维表数据。 (3)为新插入的维表行数据生成新的代理键。
百度文库
管理各种键—管理业务键
业务键的主要作用是区分业务实体,必须来源于源表。为方便进行管理,业务 键和代理键一起存储在维度表中。
业务键的管理要注意几点: 1.确保业务键要唯一 同一个业务主体不能有多个业务键,一个业务键也不能对应多个业务主体。比如一个 学生不能有多个学号,一个学号也不能对应多个学生。 2.业务主键合并处理
学生成绩事实表
高数成绩 英语成绩 毛概成绩 邓论成绩
…
数据仓库重要组成—维度表
主要存放基础属性。 维度表是各种属性 的集合,是人们分 析问题的角度。比 如学生、时间、班 级、学院、学校, 这些都是不同的维 度
时间维
学生成绩事 实表
课程维
学生维
时间ID 学生ID 课程ID 班级ID 考试成绩
…
班级维
增加序列”步骤控件提供了两种方式来生成序列:
第一种,使用数据库生成序列,取值范围在数据库的序列中定义,计数器超过最大 值后从起始值重新开始。这种方法需要在数据库中先定义一个序列,接着在增加序 列”步骤中引用
CREATE SEQUENCE seq_value INCREMENT BY 1 -- 每次加几个 START WITH 1 -- 从1开始计数 NOMAXVALUE -- 不设置最大值 NOCYCLE --一直累加,不循环 CACHE 10;
如果存在一个业务主体,存在多个业务主键,应进行合并处理,主要有两种情况: (1)数据来源不同:业务键可能来源于多个源系统,同一个业务主体在不同的源 系统业务键可能不同,此种情况我们需要对业务主键进行合并处理 (2)历史遗留数据:同一业务主体,存在新、旧业务主键同时存在的情况
管理各种键—管理代理键
最佳实践表明,原则上,在维表中应有代理键,一般用自动生成无意义的整形 数值做为代理键。项目中我们可以通过数据库生成代理键,也可以通过etl 工具生 成代理键。在kettle中用“增加序列”步骤生成代理键。