Hive学习笔记-入门(1)-数据仓库基础理论

数据仓库概念

数据仓库(Data Warehouse,简称为数仓,DW),指的是用于存储分析报告的数据系统。它的目的是构建面向分析的集成化数据环境,分析结果为企业提供决策和支持。

  • 数据仓库本身不生产任何数据,其数据来源于不同的外部系统
  • 数据仓库自身不需要消费任何数据,其结果开放给各个外部应用使用

数据仓库的产生对应于企业对于数据分析的需要。数据仓库为了分析数据而来,分析的结果为企业决策提供支撑。在企业中,数据信息往往分为操作型记录的保存和分析型决策的指定。操作性记录即记录用户的操作信息,联机事务处理系统(OLTP)可以用来满足该业务的需求,前台接收的用户数据可以立即传送到后台进行处理,并在很短的时间内给出处理结果。分析型决策指定信息,即需要一个面向分析、支持分析的系统,对应成为联机分析处理系统(OLAP),数据仓库就是OLAP的一种。

联机事务处理OLTP(Online Transaction Processing)

  • 主要目标是做数据处理,针对具体业务在数据库联机中的日常操作,通常对少数记录进行查询,修改等
  • 用户较为关心操作的响应时间、数据的安全性、完整性、并发支持的用户数等
  • 传统的关系型数据库是数据管理的主要手段

联机分析处理OLAP(Online Analytical Processing)

  • 主要用于分析型处理,目标为数据分析
  • 针对某些主体的历史数据进行复杂的多维分析,来支持管理和决策
  • 数据仓库是OLAP系统的一个典型示例,主要用于数据分析
OLTP OLAP
数据源 日常运行的业务数据 整合来自多个数据源的数据,可能包括OLTP和外部数据来源
目的 面向应用,面向业务,支撑事务 面向分析,支持分析决策
焦点 当下 主要面向历史数据
任务 读写操作 大量读操作,少量写操作
响应时间 很快,毫秒级别 较慢(秒、分钟、小时、天都有可能)
数据量 小数据量(MB,GB) 大数据量(TB、MB)
典型应用 关系型数据库 数据仓库

数据库和数据仓库是两个概念,它们的区别实际上也是OLTP和OLAP的区别

  • 数据仓库不是大型的数据库,虽然数据仓库存储数据规模大
  • 数据仓库的出现,并不是要取代数据库
  • 数据库是面向事务的设计,数据仓库是面向主题设计的
  • 数据库一般存储业务数据,数据仓库存储的一般是历史数据
  • 数据库是为捕获数据而设计,数据仓库是为分析数据而设计

数据仓库概念中,还会涉及到数据集市的概念。可以将数据集市看作是小型的数据仓库。一般在企业中,数据仓库(Data Warehouse)是面向整个企业的数据,而数据集市(Data Mart)是面向单个部门的。数据集市通常只涉及一个主题或者领域,相比数据仓库更小但是更加具体,更加易于管理和维护,有更灵活的结构。

数据仓库主要特征

数据仓库的主要特征包括面向主题、集成性、非易失性和时变性。

面向主题性:

  • 在数据库中,最大的特点是面向应用进行数据的组织,各个业务系统可能是相互分离的。
  • 数据仓库则是面向主题的。主题是一个抽象的概念,是较高层次上企业信息系统中的数据综合、归类并进行分析利用的抽象。在逻辑意义上,它是对应企业中某一宏观分析领域所涉及的分析对象
  • 操作型处理(传统数据)对数据的划分并不适用于决策分析。而基于主题组织的数据则不同,它们被划分为各自独立的领域,每个领域有各自的逻辑内涵但互不交叉,在抽象层次上对数据进行完整、一致和准确的描述。

集成性:

  • 集成性和面向主体性相关,确定主题之后,需要获取和主题相关的数据。这部分数据可能会分布在多个操作性系统中,彼此之间是分散、独立、异构的
  • 数据在进入数据仓库之前,需要经过统一的处理,对数据进行抽取、清理、转换和汇总。

非易失性:

  • 数据仓库是分析数据的平台,而不是创造数据的平台。数据进入数据仓库之后,稳定并且不会改变
  • 数据仓库中的数据反映的是一段相当长时间内历史数据的综合
  • 数据进入数据仓库之后,一般情况下会被长时间保留。数据仓库中一般有大量的查询操作,但是修改和删除操作很少

时变性:

  • 数据仓库包含各种粒度的历史数据,可能和某个特定日期、星期、月份、季度或者年份有关
  • 数据仓库中的数据并不是一成不变的,其中的数据应该随着时间而更新,以适应决策的需要

数据仓库分层架构

数据仓库的构建一般会遵循分层的架构。每个企业根据自己的业务需求可以分成不同的层次。但是最基础的分层思想,理论上分为三个层:操作型数据层(ODS)、数据仓库层(DW)和数据应用层(DA)。

  • ODS层(Operation Data Store)

    • 操作型数据层,也被称为源数据层、数据引入层、数据暂存层、临时缓存层

    • 此层将未经处理的原始数据存放至数据仓库系统,结构上和与源数据保持一致,是数据仓库的临时准备区

    • 主要完成基础数据引入到数仓的职责,和数据源系统进行解耦合,同时记录基础数据的历史变化

  • DW层(Data Warehouse)

    • 数据仓库层,由ODS层的数据加工而成

    • 主要完成数据加工与整合,建立一致性的维度,构建可以复用的面向分析和统计的明细事实表,汇总公共粒度的指标等

  • DA层(Data Application)

    • 数据应用层,面向最终用户,面向业务定制提供给产品和数据分析使用的数据

    • 可能包括前端报表、分析图表、KPI、仪表盘、数据挖掘等分析

数据仓库分层的主要原因是在管理数据的时候,能够对数据有一个更加清晰的掌控

  • 清晰的数据结构:每个数据分层都有它的作用域,在使用表的时候能够更加方便地定位和理解
  • 数据血缘追踪:举例来说,如果最终得到的一张表出现了问题,我们能够根据数据血缘快速定位到问题
  • 减少重复开发:规范数据分层,开发一些通用的中间层数据,能够减少极大的重复计算
  • 复杂问题简单化:将复杂的问题分解成多个步骤,每一层只处理单一的步骤,比较简单和容易理解
  • 屏蔽原始数据的异常:屏蔽业务的影响,不必改一次业务就需要重新接入数据

在数据仓库分层架构中,还存在一个ETL的操作。数据仓库中,从各个数据源获取数据以及在数据仓库中的数据转换和流动都可以认为是ETL(抽取Extract、转换Transfer、装载Load),但是在实际操作中,将数据加载到数据仓库中产生了两种不同的做法:ETL和ELT

ETL:首先从数据源中提取数据,这些数据源通常是事务性数据库。数据保存在临时暂存数据库中,然后执行转换操作,将数据结构化并转换成适合目标数据仓库系统的形式,然后将结构化数据加载到仓库中以便分析

ELT:数据从数据源中提取之后立即加载,没有专门的临时数据库。这也就是说数据会立即加载到单一的集中存储库中,数据在数据仓库系统中进行转换。大数据时代的数仓中,这个特点非常明显


Hive学习笔记-入门(1)-数据仓库基础理论
http://example.com/2022/07/02/Hive学习笔记-入门-1-数据仓库基础理论/
作者
EverNorif
发布于
2022年7月2日
许可协议