数据仓库笔记,不定时更新

数据仓库

  • 数据库:按照一定格式和数据结构在计算机保存数据的软件
  • 数据集市:一种微型的数据仓库,它通常是有更少的数据,更少的主题区域,以及更少的历史数据,如果数据仓库是企业级的,那数据集市就是部门级的,一般数据集市只能为某个局部范围内的管理人员服务。
  • 数据仓库:是为企业所有级别的决策制定过程,提供所有类型数据支持的战略集合。它是单个数据存储,出于分析性报告和决策支持目的而创建。
  • 数据湖:是一个集中存储各类结构化和非结构化数据的大型数据仓库,它可以存储来自多个数据源、多种数据类型的原始数据,数据无需经过结构化处理,就可以进行存取、处理、分析和传输。数据湖能帮助企业快速完成异构数据源的联邦分析、挖掘和探索数据价值。

数据设计方法

自顶向下:需要在项目开始时完成更多计划和设计工作,这就需要涉及参与数据仓库实现的每个工作组、部门或业务线中的人员。要使用的数据源、安全性、数据结构、数据质量、数据标准和整个数据模型的有关决策一般需要在真正的实现开始之前就完成。需要什么,然后设计。

自底向上:自底向上的实现包含数据仓库的规划和设计,无需等待安置好更大业务范围的数据仓库设计。这并不意味着不会开发更大业务范围的数据仓库设计;随着初始数据仓库实现的扩展,将逐渐增加对它的构建。现在,该方法得到了比自顶向下方法更广泛的接受,因为数据仓库的直接结果可以实现,并可以用作扩展更大业务范围实现的证明。先把所有的数据都放进去,需要什么去取。

数仓架构

inmon:Hub and Spoke / CIF – Corporate Information Factory
kimball:Data Mart Bus Architecture/Data Warehouse Bus Architecture

传统的、业务成熟的企业可以考虑采用Inmon方法建设数据仓库;
业务复杂而且差异较大、发展速度又非常快的企业可以考虑Kimball方法建设数据仓库。

数据分层

好处:

  1. 隔离原始数据:不论是数据的异常还是数据敏感度,使真实数据与统计数据解耦开。
  2. 数据结构化更清晰:每一个数据分层都有它的作用域和职责,在使用表的时候能更方便地定位和理解。
  3. == 数据血缘追踪==:提供给外界使用的是一张业务表,但是这张业务表可能来源很多张表。如果有一张来源表出问题了,我们可以快速准确的定位到问题,并清楚每张表的作用范围。
  4. 增强数据复用能力:减少重复开发,通过数据分层规范化,开发一些通用的中间层数据,能够减少重复计算,提高单张业务表的使用率,提升系统的执行效率。
  5. 简化复杂的问题:把一个复杂的业务分成多个步骤实现,每一层只处理单一的步骤,比较简单和容易理解。而且便于维护数据的准确性,当数据出现问题之后,可以不用修复所有的数据,只需要从有问题的步骤开始修复。
  6. 减少业务的影响:业务可能会经常变化,这样做就不必改一次业务就需要重新接入数据。
  7. 统一数据口径:通过数据分层,提供统一的数据出口,统一对外输出的数据口径。分层的核心思想就是解耦,再解耦,把复杂的问题简单化。

ODS——原始数据层:存放原始数据
DWD——数据明细层:对ODS层数据进行清洗、维度退化、脱敏等。
DIM——维表层:基于维度建模理念思想,建立整个企业的一致性维度。
DWS——数据汇总层: 对DWD层数据进行一个轻度的汇总
DWT——数据主题层:对DWS层的数据进行进一步汇总,如七天,一个月。
ADS——数据应用层:为各种统计报表提供数据,该层是基于DW层的数据,整合汇总成主题域的服务数据,用于提供后续的业务查询等。

关系建模和维度建模

  • 关系建模
    严格遵循第三范式,较为松散、零碎,物理表数量多,而数据冗余程度低。由于数据分布于众多的表中,这些数据可以更为灵活地被应用,功能性较强。关系模型主要应用与OLTP系统中,为了保证数据的一致性以及避免冗余,所以大部分业务系统的表都是遵循第三范式的。大规模数据查询效率低
    特点:设计思路自上而下,适合上游基础数据存储,同一份数据只存储一份,没有数据冗余,方便解耦,易维护,缺点是开发周期一般比较长,维护成本高
  • 维度建模
    维度模型主要应用于OLAP系统中,通常以某一个事实表为中心进行表的组织,主要面向业务,特征是可能存在数据冗余,但是能方便的得到数据。

三种模型:星型模型、雪花模型、星座模型

  1. 星型模型:星型模式由事实表和维度表组成,一个星型模式中可以有一个或多个事实表,每个事实表引用任意数量的维度表。事实表所有维度表直接相连。
  2. 雪花模型:事实表和维度表存在间接相连。有一个或多个维表没有直接连接到事实表上,而是通过其他维表连接到事实表上时。
  3. 星座模型:两张事实表共用一些维度表时,就叫做星型模型。

星型模型和雪花模型的优缺点:

  1. 星型模型:结构简单、查询效率相对较快、可读性强、但是冗余度高;
  2. 雪花模型: 结构复杂、查询效率相对较低、可读性差、但是冗余度低;

建模流程

业务模型->概念模型->逻辑模型->物理模型
业务建模:需求沟通
领域(概念)建模:画图想好怎么做
逻辑建模:表设计,粒度,关系
物理建模:建表,工具选择。

维度表和事实表的区别

维度表:就是我们观察该事物的角度(维度);表格里存放了具有独立属性和层次结构的数据,一般由维度编码和对应的维度说明(标签)组成。
事实表:就是我们要关注的内容。表格里存储了能体现实际数据或详细数值,一般由维度编码和事实数据组成。表示对分析主题所属类型的描述。数据聚合后依据某个维度生成的结果表。

维表设计

确定业务过程->声明粒度->确认维度->确认事实(从维度表中选择事实,有业务过程确定,要分析的内容)
确定业务过程:订单管理(那个业务的模型)
声明粒度:每个订单(每行代表的含义和范围)
确认维度:时间维度、产品维度、客户维度(事件的角度)
确认事实:订单数量、订单金额、订单利润(需要的具体数值)

事实表:事务性事实表、周期性快照事实表、累积性快照事实表

  • 事务事实表:也称原子事实表,描述业务过程,跟踪控件或时间上某点的度量事件,保存的是最原子的数据
  • 周期快照事实表:以一个周期为时间间隔,来记录事实,一般周期可以是每天、每周、每月、每年等。
  • 累积性快照事实表,用来描述过程开始和结束之间的关键步骤事件,覆盖过程的整个生命周

1、单事务事实表
一个业务过程一张事实表,方便对每个业务做独立分析
2、多事务事实表
将不同业务过程放在同一个事实表中,又可以分为不同业务过程使用不同事实字段不同业务过程使用相同事实字段两种。
1)不同业务过程使用不同事实字段,一般用于业务相似,粒度相同但是业务过程的度量差异大的场景。有两个典型的问题:
在数据中遇到不是当前业务过程的度量,采用零值处理
表中存在多个业务,如何标记?给每一个数据加一个属性标识是否当日业务
2)不同业务过程使用相同事实字段,用一个标签字段标识是那种业务(如商品的收藏/删除)。一般用于业务相似,粒度相同同时业务过程的度量差异不大的场景。但是有一个问题要注意,因为用同一个字段标识不同业务的度量,所以数据一个周期内会有多条记录。

数据质量

数据质量保障原则
1)完整性
确保数据不存在缺失
2)准确性
确保数据不存在异常或错误
3)一致性
体现在从业务仓库加工到数据仓库,再到各个消费节点,必须是同一种类型长度也需要保持一致
4)及时性
确保数据能及时产出,越来越多的应用希望数据更快产出。

维度的基本设计方法:
1.选择维度或新建维度
2.确定主维表
3.确定相关维表
4.确定维度属性

全量表:没有分区,表中的数据是前一天的所有数据。全量表是前一天的最新全数据,覆盖。
快照表:每个分区里面的数据都是分区时间截止当前分区日期的全量数据。
增量表:就是记录每天新增数据的表。
拉链表:它是一种维护历史状态,以及最新状态数据的一种表。有分区

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值