数据仓库学习之路
1.数仓特征
5.1面向主题
数据仓库中的数据是按照一定的主题域进行组织。
主题是一个抽象的概念,是指用户使用数据仓库进行决策时所关心的重点方面,一个主题通常与多个操作型信息系统相关。而操作性数据库的数据组织面向事务处理任务,各个业务系统之间各自分离。
每一个主题基本对应一个宏观复习领域。面向主题分析。
5.2集成性
数据仓库中的数据是在对原有分散的数据库数据抽取、清理的基础上经过系统加工、汇总和整理得到的,必须消除源数据中的不一致性,以保证数据仓库内的信息是关于整个企业的一致的全局信息。面向数据处理的操作型数据库通常与某些特定的应用相关,数据库之间相互独立,并且往往是异构的。
1.统一源数据中所有矛盾之处,如字段的同名异义、异名同义、单位不统一、字长不一致,等等;
2.进行数据综合和计算,数据仓库中的数据综合工作可以在从源数据库中抽取时生成,但许多是在数据仓库内部生成的。
5.3不可更新
对数据仓库中一般都是大量的查询操作,但修改和删除操作很少,通常只需要定期的加载,更新。
5.4时变性
数据仓库中包含各种粒度的历史数据,数据仓库中的数据可能和特定的某个日期、星期、月份和年份有关。数据仓库的目的是根据企业过去一段时间里业务的经营状况。
1.数据仓库的数据时效一般要远远长于操作性数据库数据的时效。
2.操作性数据库库存的是当前数据,而数据仓库中存储的是历史数据。
3.数据仓库中的数据是按照时间顺序进行追加的,它们都带有时间属性。
2.数据仓库分层
6.1分层原因
用空间换时间
通过大量的预处理来提升应用系统的用户体验(效率),英雌数据仓库存在大量的冗余数据。
增强扩展性
不分层的话,如果原业务系统的业务规则发生变化将影响整个数据清洗过程,工作量巨大。
分层管理
通过分层管理可以简化数据清洗的过程,因为把原来的一步工作分到了多个步骤去完成,相当于把一个复杂的工作拆分成多个简单的工作,把一个大的黑盒变成了一个白盒,每一层的处理逻辑都相对简单和容易理解,这样我们比较容易保证每一个步骤的正确性,当数据发生错误时,往往我们只需要局部调整某个步骤即可。
6.2数仓分层好处
1.清晰数据结构
2.方便数据血缘追踪
3.减少重复开发
4.复杂问题简单化
5.屏蔽原始数据的异常
3.常见概念描述
1.数据仓库
数据仓库是一个功能概念,是将企业各业务系统产生的基础数据,通过维度建模的方式,将业务数据划分为多个主题(集市)统一存储,统一管理。
2.数据集市
2.1概念
数据集市可以理解成一种小型的"数据仓库",只包含单个主题。
2.2分类
独立数据集市:这类数据集市有自己的源数据库跟ETL架构;
非独立数据集市:这类数据集市没有自己的源系统,它的数据来自数据仓库。
2.3应用场景
数据集市是数仓之上更聚焦的业务主题合集,更偏向于应对业务数据快速高效应用的需求,一般用于商业只能系统中探索是和交互式数据分析应用。
3.数据孤岛
3.1概念
业务系统之间各自为政,相互独立造成的数据孤岛,体现在业务不集成,流程不互通,数据不共享。
3.2信息孤岛
影响部门协同,浪费企业资源,制约企业发展。
4.数据湖
4.1概念
数据湖存放自然状态下的数据,用户可以在数据湖里校验,取样或完全的使用数据。
特点:
从源系统导入所有的数据,没有数据流失。
数据存储时没有经过转换或只是简单的处理。
转化和定于schema用于满足分析需求。
5.数据中台
5.1 概念
是指企业内外部多源异构的数据治理、治理、建模、分析、应用,使数据对内优化管理提高业务,对外可以数据合作价值释放,成为企业数据资产管理中枢。数据中台建立后,会形成数据API,为企业和客户提供高效各种数据服务。
5.2 特点
利用大数据技术,对海量数据进行统一采集、计算、存储,并使用同一段数据规范进行管理,将企业内部所有数据统一处理形成标准化数据,挖掘出对企业最有价值的数据,构建企业数据资产库,提供一致的、高可用的大数据服务。
数据中台不是一套软件,也不是一个信息系统,而是一系列数据组件的集合,企业基于自身的信息化建设基础,数据基础以及业务特点对数据中台的能力进行定义,基于能力定义利用数据组件搭建自己的数据中台。
5.3 应用场景
是将数据服务化提供给业务系统,目的是将数据能力渗透到业务各个环节,不限于决策分析。
数据中台是一个逻辑概念,为业务提供服务的主要方式是数据API,它包括了数据仓库、大数据、数据治理领域的内容。
6.宽表窄表
6 宽表
6.1 概念
通常是指业务主题相关的指标、维度、属性关联在一起的一张数据库表
由于把不同的内容都放在一张表存储,宽表已经不符合三范式的模型设计规范,随之带来的主要坏处就是数据的大量冗余,与之相对应的好处就是查询性能的提高与便捷。
这种宽表的设计光感应用于数据挖掘模型训练前的数据准备,通过把相关字段放在同一张表,可以大大提高数据挖掘模型训练过程中迭代计算时的效率问题。
7 窄表
7.1 概念
严格按照数据库设计三范式。尽量减少数据冗余,但是缺点是修改一个数据可能需要修改多张表。
方便扩展,额能适应各种复杂的数据结构(树形、继承等),无论有多少配置,都不用修改表结构。但代码逻辑可能需要包装一下。
7.数据仓库元数据
12.1 业务元数据
描述"数据"背后的业务含义
主题定义:每段ETL、表背后的归属业务主题。
业务描述:每段代码实现的具体业务逻辑。
标准指标:类似于BI中的语义层、数仓中的一致性事实;将分析中的指标进行规范化。
标准维度:同标准指标,对分析的各维度定义实现规范化、标准化。
不断的进行维护且与业务方进行沟通确认。
12.2 技术元数据
数据源元数据
例如:数据源的IP、端口、数据库类型;数据获取的方式;数据存储的结构;原数据各列的定义及key值对应的值。
ETL元数据
根据ETL目的不同,可以分为两类:数据清洗元数据;数据处理元数据。
数据清洗。
数据处理。
数据仓库元数据
数据仓库的描述,包括仓库模式、视图、维、层次结构及数据集市的位置和内容;业务系统、数据仓库和数据集市的体系结构和模式等。
BI元数据
汇总用的算法、包括各类度量和维度定义算法。数据力度、主题领域、聚集、汇总、预定义的查询与报告。
12.3 管理元数据
管理领域相关,包括管理流程、人员组织、角色职责等。
13 数据治理
13 数据治理
13.1 概念
数据治理是组织中涉及数据使用的一整套管理行为。由企业数据治理部门发起并推行,关于如何制定和实施针对整个企业内部数据的商业应用和技术管理的一系列政策和流程。
数据的质量直接影响到数据的价值,并且直接影响着数据分析的结果以及我们做出的决策和质量。我们常说,用数据说话,用数据支撑决策管理,但低质量的数据、甚至错误的数据,必然说假话。
13.2 目的
降低风险
建立数据使用内部规则
实施合规要求
改善内部和外部沟通
增加数据价值
方便数据管理
降低成本
通过分线管理和优化来帮助公司的持续生存
13.3 方法
数据治理包含,理 采 存 管 用这五个步骤,数据资源梳理、数据采集清洗、数据库设计和存储、数据管理、数据使用。
14 ETL
14 ETL
14.1 概念:
ETL是将业务系统的数据经过抽取、清洗转换之后加载到数据仓库的过程,目的是将企业中的分散、零乱、标准不统一的数据整合到一起,为企业的决策提供分析依据。
五大模块:
数据抽取、数据清洗、库内转换、规则检查、数据加载。
各模块可灵活进行组合,形成ETL处理流程。
14.2 模块介绍
数据抽取
确定数据源,需要确定从哪个源系统进行数据抽取。
定义数据接口,为每个源文件及系统的每个字段进行详细说明
确定数据抽取的方法:是主动抽取还是由源系统推送?是增量抽取还是全量抽取?
数据清洗
主要将不完整数据、错误数据、重复数据进行处理。
数据转换
空值处理:可捕获字段空值,
数据标准:统一元数据、统一标准字段、统一字段类型定义
数据拆分:拆分身份证号,拆分划区,日期,性别等
数据验证:时间规则、业务规则、自定义规则
数据替换:对于因业务元素,可实现无效数据、缺失数据的替换
数据关联:关联其他数据,保障数据的完整性
15 加载策略
系统日志分析方式
通过分析数据库自身的日志来判断变化的数据。
触发器方式
直接进行数据加载
利用增量日志表进行增量加载
时间戳方式
在源表上增加一个时间戳字段,系统中更新修改表数据的时候,同时修改时间戳字段的值。
全表对比方式
全表比对即增量抽取时,ETL进程逐条比较源表和目标表的记录,将新增和修改的记录读取出来。
源系统增量数据直接或者转换后加载
日常的ETL更新中,还会遇到目标表的数据来源来自于多张源表,通过关键字段的拼接进行更新操作。
如果多张源表都有时间戳字段,可以利用时间戳进行增量更新,另外还可以采用全表比对的方式进行增量更新。
15.数仓的意义
15.1 数仓的作用
每天产生的数据几百万几千万以上。
数仓是对历史数据的处理,对于及时性要求不高。
最简单的数据仓库就是用于存储和报告数据的系统。数据通常源自多个系统,然后将其移入数据仓库以进行长期存储和分析。该存储的结构使得组织内的许多部门或部门的用户可以根据它们的需要访问和分析数据。
15.2 怎样构建数据仓库产品
第一步:定位数仓需求
以构建买菜类产品的数据仓库为例概述以点带面分析数据仓库的产品业务需求。
日志埋点——>产生URL——>借用大数据处理技术进行处理——>利用HDFS存储——>落入Mysql——>基于数据 进行分析推送。
16.OLAP跟OLTP
OLTP,中文名是联机事务处理。其特点是会有高并发且数据量不大的查询,是主要用于管理事务,满足三范围