数据仓库Data Warehouse

数据仓库Data Warehouse

数仓是一种思想,数仓是一种规范,数仓是一种解决方案

1. 数据处理方式

  • 数据处理大致可以分成两大类:
    • 联机事务处理OLTP(on-line transaction processing)
    • 联机分析处理OLAP(On-Line Analytical Processing)

在这里插入图片描述

1.1. OLTP

  • OLTP的全称是On-line Transaction Processing,中文名称是联机事务处理。其特点是会有高并发
    且数据量级不大的查询,是主要用于管理事务(transaction-oriented)的系统。此类系统专注于
    short on-line-tansactions 如INSERT, UPDATE, DELETE操作。通常存在此类系统中的数据都是以
    实体对象模型来存储数据,并满足3NF(数据库第三范式)。
  • 由于OLTP主要是为了操作数据而设计(操作系统),用于处理已知的任务和负载:常见的优化在
    于主码索引和散列,检索特定的记录。去优化某一些特定的查询语句。

1.2. OLAP

  • OLAP的全称是 On-line Analytical Processing,中文名称是联机分析处理。其特点是查询频率较
    OLTP系统更低,但通常会涉及到非常复杂的聚合计算。 OLAP系统以维度模型来存储历史数据,其
    主要存储描述性的数据并且在结构上都是同质的。
  • OLAP则是为了分析数据而设计(数据仓库),其查询的方式往往是复杂且未知的,通常会涉及大量
    数据在汇总后的计算,这种需要基于多维视图的数据操作在OLTP上执行的时候性能将是非常差
    的,并且是也是极其危险的。

在这里插入图片描述

  • OLAP基本操作
    • 上卷:roll-up drill-up
      • 通过一个维的概念分层向上攀升或者通过维归约在数据立方体上进行聚集。
      • 比如城市统计数据维度到省级统计数据维度。
    • 下钻:drill-down
      • 下钻是上卷的逆操作,由不太详细的数据到更详细的数据。
      • 下钻可以通过沿维的概念分层向下或引入附加的维来实现。
    • 切片:slice
      • 在给定的立方体的一个维上进行选择,从而定义一个子立方体。
    • 切块 dice
      • 通过两个或多个维上进行选择,定义一个子立方体。
    • 转轴:pivot
      • 是一种目视操作,就像是一个二维表的行列转换,两个维度的互换。
    • 钻过:drill-across
      • 其执行会涉及多个事实表的查询
    • 钻透:drill-through
      • 下钻透过多维数据立方直达RDMS表

在这里插入图片描述

2. 数据建模

数据建模指的是对现实世界各类数据的抽象组织,确定数据库需管辖的范围、数据的组织形式等直至转
化成现实的数据库。

  • 性能:良好的模型能帮我们快速查询需要的数据,减少数据的IO吞吐
  • 成本:减少数据冗余、计算结果复用、从而降低存储和计算成本
  • 效率:改善用户使用数据的体验,提高使用数据的效率
  • 改善统计口径的不一致性,减少数据计算错误的可能性

在这里插入图片描述

2.1. 关系建模

在这里插入图片描述

  • 数据仓库之父Bill Inmon推崇
  • 从全企业的高度设计一个3NF模型的方法,用实体加关系描述的数据模型描述企业业务架构,在范
    式理论上符合3NF,站在企业角度面向主题的抽象,而不是针对某个具体业务流程的实体对象关系
    抽象。
  • 它更多是面向数据的整合和一致性治理,正如Inmon所希望达到的“single version of the truth”。
  • 优缺点
    - 优点:规范性较好,冗余小,数据集成和数据一致性方面得到重视
    - 缺点:需要全面了解企业业务、数据和关系;实施周期非常长,成本昂贵;对建模人员的能力
    要求也非常高,容易烂尾。

在这里插入图片描述

2.2. 维度建模

在这里插入图片描述

  • 数据仓库领域大师Ralph Kimball 倡导
  • 维度建模以分析决策的需求出发构建模型,构建的数据模型为分析需求服务,因此它重点解决用户
    如何更快速完成分析需求,同时还有较好的大规模复杂查询的响应性能,更直接面向业务。
  • 优缺点
    - 优点:技术要求不高,快速上手,敏捷迭代,快速交付;更快速完成分析需求,较好的大规模
    复杂查询的响应性能
    - 缺点:维度表的冗余会较多,视野狭窄

在这里插入图片描述

3. 维度表分类

在维度建模中,将度量称为“事实” , 将环境描述为“维度”。
在这里插入图片描述

3.1. 维度表

  • 一般是对事实的描述信息。每一张维度表对应现实世界中的一个对象或者概念。
  • 维度表特征
    • 维度表的范围很宽(具有多个属性、列比较多)
    • 跟事实表相比,行数较少,(通常小于10万条)
    • 内容相对固定
  • 维度建模四部曲
    • 选择业务处理过程 > 定义粒度 > 选择维度 > 确定事实
    • 选择业务:选择感兴趣的业务线,如下单,支付,退款,活动 。
    • 声明粒度:一行代表信息:一条订单?一天的订单?一周的订单? 选择最小粒度
    • 确认维度:维度退化:谁 。 什么时间 什么地点
    • 确认事实:度量值:如个数,件数,金额
  • 设计原则
    • 维度属性尽量丰富,为数据使用打下基础
      比如淘宝商品维度有近百个维度属性,为下游的数据统计、分析、探查提供了良好的基
      础。
    • 给出详实的、富有意义的文字描述
      • 属性不应该是编码,而应该是真正的文字。在间里巴巴维度建模中, 一般是编码和文字
        同时存在,比如商品维度中的商品 ID 和商品标题、 类目 ID 和 类目名称等。 ID 一 般用
        于不同表之间的关联,而名称一般用 于报表标签
    • 区分数值型属性和事实
      • 数值型宇段是作为事实还是维度属性,可以参考字段的一般用途。 如果通常用于查询约
        束条件或分组统计,则是作为维度属性;如果通常 用于参与度量的计算, 则是作为事
        实。比如商品价格,可以用于查询约 束条件或统计价格区间 的商品数量,此时是作为维
        度属性使用的;也可 以用于统计某类目 下商品的平均价格,此时是作为事实使用的。另
        外, 如果数值型字段是离散值,则作为维度属性存在的可能性较大;如果数 值型宇段是
        连续值 ,则作为度量存在的可能性较大,但并不绝对,需要 同时参考宇段的具体用途。
    • 沉淀出通用的维度属性,为建立一致性维度做好铺垫
      • 有些维度属性获取需要进行比较复杂的逻辑处理,有些需要通过多表关联得到,或者通
        过单表 的不同宇段混合处理得到,或者通过对单表 的某个字段进行解析得到。此时,需
        要将尽可能多的通用的维度属性进 行沉淀。一方 面,可以提高下游使用的方便性,减少
        复杂度;另一方面,可以避免下游使用解析时由于各自逻辑不同而导致口径不 一致。
    • 退化维度(DegenerateDimension)
      • 在维度类型中,有一种重要的维度称作为退化维度。这种维度指的是直接把一些简单的
        维度放在事实表中。退化维度是维度建模领域中的一个非常重要的概念,它对理解维度
        建模有着非常重要的作用,退化维度一般在分析中可以用来做分组使用。
    • 缓慢变化维(Slowly Changing Dimensions)
      • 维度的属性并不是始终不变的,它会随着时间的流逝发生缓慢的变化,这种随时间发生
        变化的维度我们一般称之为缓慢变化维(SCD),缓慢变化维一般使用代理健作为维度
        表的主健。

在这里插入图片描述

*冗余维度:为了提升效率,把常用的维度冗余到事实表

3.2. 事实表

  • 表中的每行数据代表一个业务事件。“事实”表示的是业务事件的度量值(可以统计次数、个数、金额等)
  • 事实表特征
    • 非常的大
    • 内容相对的窄
    • 经常发生变化,每天新增很多。
  • 事实表分类
    • 事务型事实表
      • 以每个事务或事件为单位,例如一个销售订单记录,一笔支付记录等,作为事实表里的
        一行数据。
      • 一旦事务被提交,事实表数据被插入,数据就不再进行更改,其更新方式为增量更新。
    • 周期型快照事实表
      • 周期型快照事实表中不会保留所有数据,只保留固定时间间隔的数据,以具有规律性
        的、可预见的时间间隔记录事实。
      • 例如每天或每月的总销售金额,或每月的账户余额等。
    • 累积型快照事实表
      • 累积快照事实表用于跟踪业务事实的变化,覆盖过程的整个生命周期,通常具有多个日
        期字段来记录关键时间点。
      • 例如数据仓库中可能需要累积或者存储订单从下单开始,到订单商品被打包、运输、签
        收等各个业务阶段的时间点数据,来跟踪订单生

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/5632.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【C++】详解string类

目录 简介 框架 构造 全缺省构造函数 ​编辑 传对象构造函数 拷贝构造 析构函数 容量 size() capacity() empty() clear() reserve() ​编辑 resize() 遍历 检引用符号"[ ]"的重载 迭代器 begin() end() rbegin() rend(…

使用Mybatis映射时间 DateTime ==> LocalDateTime

首先查看,数据库字段: 书写映射实体类对象VO: Data public class OrderListVO implements Serializable {private Integer orderId;private String memberName;private String orderNumber;private BigDecimal orderPrice;private String l…

在单细胞分辨率下预测细胞对新型药物扰动的反应

scRNA-seq能够在单个细胞分辨率下研究细胞异质性对扰动的响应。然而,由于技术限制,扩大高通量筛选(HTSs,highthroughput screens)来测量许多药物的细胞反应仍然是一个挑战。因此,目前依然需要借助常规的bul…

excel表格在筛选状态下,怎样从指定数字开始填充序列?

分两种情况分开来说吧: 一、表格根据需要做数据筛选,指定列的序号始终保持0012开始的连续序号。 B2TEXT(AGGREGATE(3,5,B$1:B1)11,"0000") 然后向下填充公式。 当C列数据做了筛选以后,B列仍旧保持连续的序号,改变筛选…

MySQL连表查询

MySQL简介,我们为什么要学习各种join MySQL是SQL的一种,SQL意为结构化查询语言(Structure Query Language),MySQL可以应用于现实世界的各种结构化数据。 SQL(结构化查询语言),处理结构化数据的查询语言&a…

房产中介小程序高效开发攻略:从模板到上线一站式服务

对于房产中介而言,拥有一个高效且用户友好的小程序是提升业务、增强客户黏性的关键。而采用直接复制模板的开发方式,无疑是实现这一目标的最佳途径,不仅简单快捷,而且性价比极高。 在众多小程序模板开发平台中,乔拓云网…

Java项目:基于SSM框架实现的高校专业信息管理系统设计与实现(ssm+B/S架构+源码+数据库+毕业论文+PPT+开题报告)

一、项目简介 本项目是一套基于SSM框架实现的高校专业信息管理系统 包含:项目源码、数据库脚本等,该项目附带全部源码可作为毕设使用。 项目都经过严格调试,eclipse或者idea 确保可以运行! 该系统功能完善、界面美观、操作简单、…

前端vite+rollup前端监控初始化——封装基础fmp消耗时间的npm包并且发布npm beta版本

文章目录 ⭐前言💖vue3系列文章 ⭐初始化npm项目💖type为module💖rollup.config.js ⭐封装fmp耗时计算的class💖npm build打包class对象 ⭐发布npm的beta版本💖 npm发布beta版本 ⭐安装web-performance-tool的beta版本…

5G前传光纤传输的25G光模块晶振SG2016CAN

一款适用于5G前传光纤传输网络中的25G光模块的5G晶振SG2016CAN。随着5G时代的到来,5G晶振的重要性也不言而喻,小体积宽温晶振SG2016CAN可以用于5G前传的25G光模块,具有高稳定性、小体积、宽温等优势。在5G前传光纤传输网络中,25G光…

Mac 上安装多版本的 JDK 且实现 自由切换

背景 当前电脑上已经安装了 jdk8; 现在再安装 jdk17。 期望 完成 jdk17 的安装,并且完成 环境变量 的配置,实现自由切换。 前置补充知识 jdk 的安装路径 可以通过查看以下目录中的内容,确认当前已经安装的 jdk 版本。 cd /Library/Java/Java…

【大前端】ECharts 绘制立体柱状图

立体柱状图分为: 纯色立体柱状图渐变立体柱状图 常用实现方式 纯色立体柱状图 纯色立体柱状图,使用MarkPoint和颜色渐变就实现,如下代码 import * as echarts from "echarts";var chartDom document.getElementById("main&…

AI大模型探索之路-训练篇9:大语言模型Transformer库-Pipeline组件实践

系列篇章💥 AI大模型探索之路-训练篇1:大语言模型微调基础认知 AI大模型探索之路-训练篇2:大语言模型预训练基础认知 AI大模型探索之路-训练篇3:大语言模型全景解读 AI大模型探索之路-训练篇4:大语言模型训练数据集概…

Android View事件分发面试问题及回答

问题 1: 请简述Android中View的事件分发机制是如何工作的? 答案: 在Android中,事件分发机制主要涉及到三个主要方法:dispatchTouchEvent(), onInterceptTouchEvent(), 和 onTouchEvent(). 当一个触摸事件发生时,首先被Activity的…

展会资讯 | 现场精彩回顾 阿尔泰科技参展2024第23届中国国际(西部)光电产业!

2024第23届中国国际(西部)光电产业博览会,在成都世纪城新国际会展中心圆满落幕!来自各地的光电领域设备及材料厂商汇聚一堂,展示前沿技术及创新成果。 展会现场,来自全国各地的500余家企业就精密光学、信息…

ChatGPT 网络安全秘籍(四)

原文:zh.annas-archive.org/md5/6b2705e0d6d24d8c113752f67b42d7d8 译者:飞龙 协议:CC BY-NC-SA 4.0 第八章:事故响应 事故响应是任何网络安全策略的关键组成部分,涉及确定、分析和缓解安全漏洞或攻击。 及时和有效地…

Linux深入学习内核 - 中断与异常(下)

软中断,Tasklet和Work Queue 由内核执行的几个任务之间有一些不是紧急的,他们可以被延缓一段时间!把可延迟的中断从中断处理程序中抽出来,有利于使得内核保持较短的响应时间,所以我们现在使用以下面的这些结构&#x…

通用漏洞评估系统CVSS4.0简介

文章目录 什么是CVSS?CVSS 漏洞等级分类历史版本的 CVSS 存在哪些问题?CVSS 4.0改进的“命名法”改进的“基本指标”考虑“OT/IOT”新增的“其他指标”CVSS 4.0存在的问题 Reference: 什么是CVSS? 在信息安全评估领域,CVSS为我们…

2024五一数学建模C题Python代码+结果表数据教学

2024五一数学建模竞赛(五一赛)C题保姆级分析完整思路代码数据教学 C题 煤矿深部开采冲击地压危险预测 第一问 导入数据 以下仅展示部分,完整版看文末的文章 import numpy as np import pandas as pd import matplotlib.pyplot as plt imp…

基于Springboot的音乐翻唱与分享平台

基于SpringbootVue的音乐翻唱与分享平台设计与实现 开发语言:Java数据库:MySQL技术:SpringbootMybatis工具:IDEA、Maven、Navicat 系统展示 用户登录 首页 音乐资讯 音乐翻唱 在线听歌 后台登录 后台首页 用户管理 音乐资讯管理…

labview强制转换的一个坑

32位整形强制转换成枚举的结果如何? 你以为的结果是 实际上的结果是 仔细看,枚举的数据类型是U16,"1"的数据类型是U32,所以转换产生了不可预期的结果。所以使用强制转换时一定要保证两个数据类型一致,否则…