一直想抽个时间想把学过的知识点再巩固一下,毕竟知识点这玩意儿,稍微不复习就会丢掉
什么是数据仓库
数据仓库是指具有主题导向、整合性、长期性与稳定性的数据群组,是经过处理整合,且容量特别大的关系数据库,用以储存决策支持系统所需的数据,供决策支持和数据分析使用。
四大特性
- 主题性:针对特定场景 抽象出数据 单独分析一个相关的领域
- 集成性:数据仓库中的大部分数据源于传统的数据库。数据”在进入数据仓库之前必须经过抽取、清洗、转换才能生成从面向事务转而面向主题的数据集合。
- 稳定性:数据仓库的数据主要用于决策分析 不允许修改
- 动态性:随着时间的变化,数据以更高的综合层次被不断综合,以适应趋势分析的要求。
数据库与数据仓库的区别
数据库 | 数据仓库 |
---|---|
数据库是面向事务的设计 | 数据仓库是面向主题设计的 |
一般存储在线交易数据 | 存储一般是历史数据 ,基于时间的大规模的数据 |
数据库避免冗余,一般采用符合范式的规则来设计 | 数据仓库有意冗余,采用反范式的方式来设计 数据仓库会将数据进行多个备份 一确保数据仓库的可靠性和高效性 |
数据库是为捕获数据而设计 | 数据仓库是为分析数据而设计,它的两个基本的元素是维表和事实表 |
数据库处理频繁 小批次 高并发 低延迟 | 数据仓库非频繁 大批量 高吞吐 有延迟 |
数据仓库-> 数据中台 -> 数据湖 的概念
数据仓库:是为企业所有级别的决策制定过程,提供所有类型数据支持的战略集合。
数据中台:数据中台是聚合和治理跨域数据,将数据抽象封装成服务,提供给前台以业务价值的逻辑概念
将数据生成为一个个数据API服务,以高效的方式提供业务
数据湖 以原始格式存储数据的存储库或系统。他按照原样存储数据,无需实现对数结构处理
数仓分层
分层的作用
- 清晰数据结构:每一个数据分层都有它的作用域,这样我们在使用表的时候能更方便地定位和理解。
- 数据血缘追踪:简单来讲可以这样理解,我们最终给业务呈现的是一张能直接使用的张业务表,但是它的来源有很多,如果有一张来源表出问题了,我们希望能够快速准确地定位到问题,并清楚它的危害范围。
- 减少重复开发:规范数据分层,开发一些通用的中间层数据,能够减少极大的重复计算。
- 把复杂问题简单化:将一个复杂的任务分解成多个步骤来完成,每一层只处理单一的步骤,比较简单和容易理解。而且便于维护数据的准确性,当数据出现问题之后,可以不用修复所有的数据,只需要从有问题的步骤开始修复。
- 屏蔽原始数据的异常:屏蔽业务的影响,不必改一次业务就需要重新接入数据。
分层
- ODS 数据贴源层
- 数据仓库 DW:
– DWD data Warehouse detail 数据明细层
– DWM data warehouse middle 数据中间层
– DWS data warehouse service 数据服务层 - ADS 数据应用层
每层的作用
- ODS 将数据源中的数据经过处理之后装入 大多按照业务系统的分类方式而分类的
- 数据仓库层 从ODS层中获得的数据 按照主题建立各种数据模型
- 数据应用层 提供数据产品使用的结果数据
范式建模与维度建模
维度建模 总线式 的自下而上(DM DW ODS)的数据仓库架构 更具引用推宽表形式
范式建模 集线器的自上而上(ODS EDW DM)的数据仓库架构 底表抽象通用逻辑
事实表和维度表
- 维度表:对分析主题所属类型的描述 信息比较固定 信息量比较小 如时间维度 地点维度
- 事实表:分析主题的度量 包含了与各个维度表相关联的外码 通过join的方式与维度表关联 事实表的度量通常是数值类型,且记录数会不断增加
表规模迅速增长
三种数据模型
星型
事实表和若干维度表组成:
- 维度只和事实表关联 维度表之间没有关联
- 每个维表的主码为单列 且该主码放置在事实表中,作为两边连接的外码
- 以事实表为核心 维度表围绕核心呈星型发布
雪花型
星型模式的扩展:
- 每个维度表可以继续连接多个子维度 相对于将星型的大维度表拆分为小维度
- 但维度表之间的关联使得开发难度很大 很难实现 所以使用很少
星座型
多个星型模型的拓展:
- 模型中可以存在多个
- 一个维度表被多个事实表使用
- 业务发展到后期 绝大多数使用星座模型
宽表
从字面意义上讲就是字段比较多的数据库表。
窄表 严格按照数据库设计三范式。尽量减少数据冗余,但是缺点是修改一个数据可能需要修改多张表
ETL
ETL是将业务系统的数据经过抽取、清洗转换之后加载到数据仓库的过程,目的是将企业中的分散、零乱、标准不统一的数据整合到一起,为企业的决策提供分析依据。
数据立方体
概念:数据立方体是一种对多维的数据模型的描述方式。立方体只是三维的,但是实际数据中不仅仅是三维,可能是四维,五维的。
操作:切片,切块,旋转,上卷,下钻