欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

数据仓库理论介绍(随堂笔记)(持续更新)

程序员文章站 2022-12-04 23:13:42
数据仓库理论介绍为什么学习数据仓库什么是数据仓库面向主题实例集成非易失随时间变化为什么学习数据仓库数据不兼容,很难被整合战略决策需要数据的分析推荐系统什么是数据仓库数据仓库是一个面向主题的、集成的、非易失的且随时间变化的数据集合面向主题主题(Subject)是在较高层次上将企业信息系统中的数据进行综合、归类和分析利用的一个抽象概念每一个主题基本对应一个宏观的分析领域在逻辑意义上,它是对应企业中某一宏观分析领域所涉及的分析对象例如“销售分析”就是一个分析领域,因此这个数据仓库应用的...

为什么学习数据仓库

  • 数据不兼容,很难被整合
  • 战略决策需要数据的分析
  • 推荐系统

什么是数据仓库

数据仓库是一个面向主题的、集成的、非易失的且随时间变化的数据集合

面向主题

  • 主题(Subject)是在较高层次上将企业信息系统中的数据进行综合、归类和分析利用的一个抽象概念
  • 每一个主题基本对应一个宏观的分析领域
  • 在逻辑意义上,它是对应企业中某一宏观分析领域所涉及的分析对象
    例如“销售分析”就是一个分析领域,因此这个数据仓库应用的主题就是“销售分析”

实例

一个面向事务处理的“商场”数据库系统,其数据模式如下:

采购子系统:
订单(订单号,供应商号,总金额,日期)
订单细则(订单号,商品号,类别,单价,数量)
供应商(供应商号,供应商名,地址,电话)

销售子系统:
顾客(顾客号,姓名,性别,年龄,文化程度,地址,电话)
销售(员工号,顾客号,商品号,数量,单价,日期)

库存管理子系统:
领料单(领料单号,领料人,商品号,数量,日期)
进料单(进料单号,订单号,进料人,收料人,日期)
库存(商品号,库房号,库存量,日期)
库房(库房号,仓库管理员,地点,库存商品描述)

人事管理子系统:
员工(员工号,姓名,性别,年龄,文化程度,部门号)
部门(部门号,部门名称,部门主管,电话)

提取主题:

主题一:销售
固有信息:员工号,顾客号,商品号,数量,单价,日期
员工信息:员工号,姓名,性别,年龄,文化程度,部门号
顾客信息:员工号,顾客号,商品号,数量,单价,日期
商品信息:商品号,商品名称,单价,重量,体积,…

主题二:供应商
固有信息:供应商号,供应商名,地址,电话
商品信息:商品号,商品名称,单价,重量,体积,…

主题三:顾客
固有信息:顾客号,姓名,性别,年龄,文化程度,地址,电话,职业,…
购物信息:顾客号,商品号,商品名,售价,购买数量,购买日期,…

在每个主题当中,包含了相关主题的所有信息,同时又抛弃了与分析处理无关的数据

集成

  • 集成性是指数据仓库中数据必须是一致的
    数据仓库的数据是从原有的分散的多个数据库、数据文件和数据段中抽取来的
    数据来源可能既有内部数据又有外部数据,例如F/M,0/1,A/B
  • 集成方法
    统一:消除不一致的现象
    综合:对原有数据进行综合和计算

非易失

数据仓库中的数据是经过抽取而形成的分析型数据:

  • 不具有原始性
  • 主要供企业决策分析之用
  • 执行的主要是“查询”操作,一般情况下不执行“更新”操作
  • 一个稳定的数据环境也有利于数据分析操作和决策的制订

随时间变化

数据仓库以维的形式对数据进行组织,时间维是数据仓库中很重要的一个维度:

  • 不断增加新的数据内容
  • 不断删除旧的数据内容
  • 更新与时间有关的综合数据

数据仓库分层

ODS:数据接入层
DWD:数据明细层
DWS:数据汇总层
ADS:数据应用层

数据库和数据仓库

数据库是为捕获和存储数据而设计
数据仓库是为分析数据而设计

数据库 数据仓库
本质 数据的集合 数据的集合
定位 事务处理OLTP 数据分析OLAP
面向群体 前端用户 管理人员
操作 增删改 查询
数据粒度 事件记录 维度
表结构 三范式 3NF 星型、雪花

OLTP和OLAP

  1. 联机事务处理OLTP
    全名On-Line Transaction Processing
    OLTP是传统的关系型数据库的主要应用
    主要是基本的、日常的事务处理,例如银行交易

  2. 联机分析处理OLAP
    全名On-Line Analytical Processing
    OLAP是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果

对比属性 OLTP OLAP
读特性 每次查询只返回少量记录 对大量记录进行汇总
写特性 随机、低延时写入用户的输入 批量导入
使用场景 用户,JavaEE项目 内部分析师,为决策提供支持
数据表征 最新数据状态 随时间变化的历史状态
数据规模 GB TB到PB

Inmon架构

数据仓库理论介绍(随堂笔记)(持续更新)

kimball架构

数据仓库理论介绍(随堂笔记)(持续更新)

混合型架构

数据仓库理论介绍(随堂笔记)(持续更新)

数据仓库的解决方案

  • 数据采集
    Flume,Sqoop,Logstash,Datax

  • 数据存储
    MySQL,HDFS,HBase,Redis,MongoDB

  • 数据计算
    Hive,Tez,Spark,Flink,Storm,Impala

  • 数据可视化
    Tableau,Echarts,Superset,QuickBI,DataV

  • 任务调度
    Oozie,Azkaban,Crontab

数据ELT

ELT分别代表三个单词:
Extract:抽取,从操作型数据源获取数据
Transform:转换,使数据转变为适用于查询和分析的形式和结构
Load:装载,将转换后的数据导入到最终的目标数据仓库

常见的ELT工具有:
Oracle:OWB和ODI
微软:SQL Server Integration Services
SAP:Data Integrator
IBM:InfoSphere DataStage、Informatica
Pentaho:Kettle(开源免费)

数据仓库的建模

数据仓库模型构建步骤:

  • 选择业务流程
  • 声明粒度
  • 确认维度
  • 确认事实

选择业务流程

第一步,确认哪些业务处理流程是数据仓库应该覆盖的,例如:了解和分析一个零售店的销售情况

第二步,采取合适的记录方式

  • 使用纯文本
  • 使用业务流程建模标注(BPMN)方法
  • 使用同一建模语言(UML)

声明粒度

何为粒度?粒度用于确定事实中表示的是什么
例如:一个零售店的顾客在购物小票上的一个购买条目

  • 选择维度和事实前必须声明粒度
  • 建议从原始粒度数据开始设计
    原始记录能够满足无法预期的用户查询
  • 不同的事实可以有不同的粒度

确认维度

何为维度?维度说明了事实表的数据是从哪里采集来的

  • 典型的维度都是名词
    例如:日期、商店、库存等
  • 维度表存储了某一维度的所有相关数据
    例如:日期维度应该包括年、季度、月、周、日等数据

确认事实

  • 识别数字化的度量,构成事实表的记录
  • 和系统的业务用户密切相关
  • 大部分事实表的度量都是数字类型的
    可累加,可计算
    例如:成本、数量、金额

星型模型

数据仓库理论介绍(随堂笔记)(持续更新)

特点

  • 由事实表和维度表组成
  • 一个星型模式中可以有一个或多个事实表,每个事实表引用任意数量的维度表
  • 星型模式将业务流程分为事实和维度
    事实包含业务的度量,是定量的数据
    如销售价格、销售数量、距离、速度、重量等是事实
    维度是对事实数据属性的描述
    如日期、产品、客户、地理位置等是维度

优点

  • 简化查询
  • 简化业务报表逻辑
  • 获得查询性能
  • 快速聚合
  • 便于向立方体提供数据

缺点

  • 不能保证数据完整性
  • 对于分析需求来说不够灵活

雪花模型

数据仓库理论介绍(随堂笔记)(持续更新)

特点

  • 一种多维模型中表的逻辑布局
  • 由事实表和维度表所组成
  • 将星型模式中的维度表进行规范化处理
    把低基数的属性从维度表中移除并形成单独的表
  • 一个维度被规范化成多个关联的表

优点

  • 一些OLAP多维数据库建模工具专为雪花模型进行了优化
  • 规范化的维度属性节省存储空间

缺点

  • 维度属性规范化增加了查询的连接操作和复杂度
  • 不确保数据完整性

本文地址:https://blog.csdn.net/Helltaker/article/details/108962825