<h1/>数据挖掘第三讲</h1>
什么是ETL,ETL包括哪些主要步骤?
数据的抽取(Extract)、转换(Transform)、装载(Load)的过程
执行ETL需要考虑哪些原则?
- 应尽量利用数据中转区对运营数据进行预处理。保证数据的安全性、集成与加载的高效性。ETL的过程应是主动“拉取”,而不是从内部“推送”,其可控性将大为增强。流程化的配置管理和标准协议。数据质量的保证
数据质量问题包括哪些,由什么原因导致?
- 正确性(Accuracy):数据是否正确体现是否有现实或可证实的来源(源系统
- 不受控制的更改,而这种更改不能及时的传播到受影响的系统)
- 完整性(Integrity):数据之间的参照完整性是否存在或一致(缺少参照完整性检查低劣的源系统设计)
- 一致性(Consistency):数据是否被一致的定义或理解
- 完备性(Completeness):所有需要的数据是否都存在
- 有效性(Validity):数据是否在企业定义的可接受的范围之内
- 时效性(Timeliness):数据在需要的时间是否有效
- 可获取性(Accessbility):数据是否易于获取、易于理解和易于使用(源系统与数据仓库系统的数据组织方式完全不同)
数据质量原因
- 一致性出现问题:
- 数据由多个交叉的访问界面,难以统一管理数据质量问题
- 业务系统不同时期数据模型不一致
- 业务系统不同时期业务过程有变化
- 各个源系统之间相关信息不一致
- 数据转换错误,比如ETL过程错误或数据迁移过程的错误
- 遗留系统和新业务、管理系统数据集成不完备带来的不一致性
- 有效性问题:
- 源系统缺少输入验证过程,不能阻止非法格式的数据进入系统
- 可以验证但不能改正数据,验证程序不能发现格式正确但内容不正确的错误
ETL的常见问题包括哪些?
- 字符集问题
- 缓慢变化维处理
- 增量、实时同步的处理
- 错误数据的检测
- 变化数据的捕获
- 抽取异常中止的处理
数据仓库与数据库的区别
数据仓库 | 数据库 |
---|---|
分析型数据环境 | 操作型数据环境 |
面向空间分析 | 面向业务,日常事务处理 |
集成的综合数据 | 主要是明细数据 |
历史数据(5-10年) | 关心当前数据 |
定期加载,之后很少更新 | 实时更新 |
数据驱动的开发周期 | 需求驱动的开发周期 |
数据仓库有哪些特性?
是一个面向主题的、集成的、非易失的(不可修改)且随时间变化的数据集合,用来支持管理人员的决策
- 面向主题 主题是在较高层次上对数据进行抽象(确定主题,确定主题包含的数据内容[由关系表来呈现])
- 集成 数据仓库中的数据来源不同,需要消除数据表述的不一致性(数据清洗与综合)
- 非易失性(不可更改性) 它的主要操作是查询与分析,不对已有的数据进行更改。
- 随时间变化的。里面的数据都包含时间,以表明数据的历史时期。过期数据和新增数据都是周期进行的。
建立数据仓库要考虑哪些问题?
- 主题域(针对特定目标,由业务导向,按需确定的有针对性的方案)
- 粒度层次
- 是指数据仓库中数据单位中保存的数据的细分和综合程度级别
- 粒度越小,细节越多,综合程度就越低
- 数据仓库可能会设置双重粒度,低粒度满足细节查询,高粒度用于分析
- 分割策略(把数据分散到各自的物理单元中去,以便能分别处理,提高效率)
- 数据组织形式
- 简单堆积
- 轮转综合:按照一定格式进行累加。第1天,第2天,第1月,第1年。
- 简单直接文件:按照一定间隔,几乎是直接把操作型数据拖入数据仓库
- 连续:把新的数据追加到原有数据中(第1天至今,2月至今)
- 数据追加策略(变化了的数据如何捕获)
- 时标法:加标识
- DELTA法:对更新作记录
- 前后映象法:两次快照的对比
- 日志法:利用DBMS的日志,需改进
- 体系化环境
- 是在一个企业或组织内部,由各面向应用的OLTP数据库及各级面向主题的数据仓库所组成的完整的数据环境
什么是数据维度,针对数据维度有哪些操作?
- 数据的业务解释角度(时间、地理)维度还可以细分,时间:年,月,日
- 维度可以切片,可旋转(自变量因变量),上卷(粒度由低变高,也即抽象出来)下钻(粒度由高变低,具体下去)
星型模式和雪花模式的异同有哪些?
- 星型模型:以事实表为中心,若干维度表,组成星型数据模式。事实表存放基本数据,维度表就是事实表的拆分
- 星型架构是一种非正规化的结构,多维数据集的每一个维度都直接与事实表相连接,不存在渐变维度,所以数据有一定的冗余
- 雪花表:当有一个或多个维表没有直接连接到事实表上,而是通过其他维表连接到事实表上时,其图解就像多个雪花连接在一起,故称雪花模型。雪花模型是对星型模型的扩展。它对星型模型的维表进一步层次化,原有的各维表可能被扩展为小的事实表,形成一些局部的 " 层次 " 区域,这些被分解的表都连接到主维度表而不是事实表
- 通过最大限度地减少数据存储量以及联合较小的维表来改善查询性能。雪花型结构去除了数据冗余。
数据分析模型有哪些?
- 绝对模型:静态地对历史数据进行值的比较,描述基本事实
- 解释模型:(静态分析)在当前多维视图的基础上找出事件发生的原因
- 思考模型:(动态分析)多维分析,在决策者的参与下找出关键变量。
- 公式模型:动态程度最高,自动完成变量的引入关系
以上都是基于关系型数据库
NoSQL数据模型有哪些?与SQL模型相比,有什么区别和联系,各有什么优劣?
- 键值对模型
- 文档模型(结构可以相似不必相同)
- 列族模型
- 图模型
主要区别
- SQL数据存在特定结构的表中;而NoSQL则更加灵活和可扩展,存储方式可以省是JSON文档、哈希表或者其他方式。
- 在SQL中,必须定义好表和字段结构后才能添加数据,虽然之后能更新,但是如果更改量大就比较麻烦。在nosql中,可以随时以任何结构添加而不需要定义表结构。
- SQL中有外键这个定义,不允许删除已经被使用的外部数据,以保证数据完整性。但noSQL中没有这个概念,可以随时删除。
- 事务的概念。sql中更新多张表的数据,是在所有命令执行完之后统一提交事物,但nosql中每一个操作都是原子级的。
SQL:
- 结构化存储,完整性约束,能保持数据的一致
- 无法适应非结构化存储,而且高并发下读写性能不足,拓展困难
NOSQL:
- 高并发,大数据下读写能力较强。
- 基本支持分布式,易于扩展,可伸缩。
- 简单,弱结构化存储。
- 无完整性约束,复杂情况下支持较差,通用性较差。