数据仓库基本理论Ⅰ

这篇具有很好参考价值的文章主要介绍了数据仓库基本理论Ⅰ。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.什么是数据仓库

数据仓库是一个面向主题的,集成性的,非易失性的,时变性的数据集合,用于管理决策。

数据仓库解决的问题:

  • 为业务部门提供准确清晰的报表
  • 为管理人员提供更强的分析能力
  • 为数据挖掘和知识发现奠定基础

面向主题

数据仓库内的数据是针对特定的业务主题。数据仓库将与特定主题相关的数据整合到一起,方便企业进行全面的数据分析。

例如“销售分析”就是一个分析领域,因此这个数据仓库应用的
主题就是“销售分析”。

集成性

数据仓库内的数据来自多个数据源,并通过转换,整合成为统一的数据模型

这是因为源数据一般都是有不完整的和数
据形式不统一的。这些“脏数据”的直接导入将对在数据仓库基础上进行的数据挖掘造成混乱。
“脏数据”在进入数据仓库之前必须经过抽取、清洗、转换才能生成从面向事务转而面向主题的
数据集合。

非易失性

数据仓库的非易失性是指数据仓库内的数据是持久存储的,不会因为计算机系统故障或其他原因而丢失。

时变性

数据仓库的时变性指的是数据仓库中存储的数据具有时间上的变化性质。也就是说,数据仓库中的数据不仅仅反映当前状态,还包含了过去和可能的未来状态。

2.数仓建模基本理论

2.1 维度模型

维度建模是从分析决策的需求出发构建模型,以满足用户对快速完成需求分析和执行大规模复杂查询的需求。典型的代表是星形模型,同时在一些特殊场景下也会使用雪花模型

分析决策的需求就是企业或组织在做出决策之前所需要的信息和洞察,通过对数据的分析来支持决策制定。

举例来说,一个公司可能需要分析销售数据来确定最畅销的产品,以便制定更好的市场推广策略;

在设计维度模型期间存在5个关键决策

  • 确定业务过程
    业务过程通常用行为动词表示,表示业务执行的活动。

1.比如淘宝订单流转的业务过程有四个:创建订单、买家付款、卖家发货、买家确认收货。
在选择了业务过程以后,相应的事实表类型也随之确定了。
2.比如选择买家付款单个业务过程,那么事实表应为只包含买家付款这一个业务过程的单事务型事实表
3.如果选择的是所有这四个业务过程,并且需要分析各个业务过程之间的时间间隔,那么所建的事实表应为包含了所有四个业务过程的累积快照型事实表

  • 声明业务过程的粒度

应该尽量选择最细级别的原子粒度,以确保事实表的应用具有最大的灵活性。同时对于订单过程而言,粒度可以被定义为最细的订单级别。
比如在淘宝订单中有父子订单的概念,即一个子订单对应一种商品,如果拍下了多种商品,则每种商品对应一个子订单:这些子订单一同结算的话,则会生成一个父订单。那么在这个例子中,事实表的粒度应该选择为子订单级别

  • 确定维度

维度是维度建模的基础和灵魂。在维度建模中,将度量称为“事实”,将环境描述为“维度”,维度是用于分析事实所需要的多样环境。

例如:
在分析交易过程时,可以通过买家、卖家、商品和时间等维度描述交易发生的环境。

  • 确定事实

事实可以通过回答“过程的度量是什么”来确定。应该选择与业务 过程有关的所有事实,且事实的粒度要与所声明的事实表的粒度一致。
事实有可加性、半可加性、非可加性三种类型 , 需要将不可加性事实分 解为可加的组件。
比如在淘宝订单付款事务事实表中,同粒度的事实有子订单分摊的 支付金额、邮费、优惠金额等。

  • 冗余维度

冗余方便下游用户使用的常用维度,提高下游用户的使用效率,降低数据获取的复杂性,减少关联的表数量

2.1.1 数据粒度

数据粒度:数据仓库中数据单元的细节程度或者是综合程度的级别,数据到底细到什么程度

  • 细节程度越高,粒度级别就越低。
  • 细节程度越低,粒度级别就越高。

数据仓库基本理论Ⅰ,数据仓库,大数据

粒度级别越低(细节越高)查询范围更广,粒度级别越高(细节越低)查询所能回答的问题就越少。

2.1.2 事实表

事实表是数据仓库中的一种表,用于存储业务事实或可度量的数据。事实表通常包含了与业务过程相关的数字性数据,如销售金额、数量、成本等。它记录了业务事件的事实或度。

场景:一次购买事件,涉及主体包括客户、商品、商家。产生的可度量值,包括商品数量、金额、
件数等,所以订单明细表,就是一张事实表。
订单表是事实表,那么就会有商品维度,时间维度,品牌维度等等

作为度量业务过程的事实,一般为整型或浮点型的十进制数值,有可加性、半可加性和不可加性三种类型。

事实表的可加性、半可加性和不可加性指的是对事实数据在不同维度组合下的加法规则的分类。

可加性:可加性指的是事实数据在所有维度组合下都可以简单相加,而不会产生歧义或错误的结果。例如,销售额是一个可加性事实,无论按照产品、地区、时间等任何维度进行分析,各个维度上的销售额总和都等于总销售额。

就像你手里有两个篮子,一个装满了苹果,一个装满了橙子。无论你怎么处理这两个篮子,无论是将它们合并成一个篮子还是保持它们分开,你最终都可以简单地把所有水果的数量加起来,得到所有水果的总数

半可加性:半可加性指的是事实数据在某些特定维度组合下可以相加,而在其他维度组合下不能简单相加。

比如库存可以按照地点和商品进行汇总,而按时间维度把一年中每个月的库存累加起来则毫无意义。

不可加性:不可加性指的是事实数据在任何维度组合下都不能简单相加,因为这样做会导致结果失去意义或产生错误。(比如比例事实)

举例来说,假设你有一个事实表记录了一个网站上的广告点击次数和对应的转化次数(比如点击后用户购买产品的次数)。现在你想要计算广告的转化率,即每点击一次广告所对应的购买比率。

假设有两个广告A和B,它们分别获得了100次点击和50次点击,对应的转化次数分别是10次和5次。虽然你可以计算出每个广告的转化率(转化次数除以点击次数),但你不能简单地将两个广告的转化率相加来得到总体的转化率。因为这两个转化率反映了不同广告的效果,它们的加和并不代表整体的转化率

事实表设计原则:摘自《大数据之路:阿里巴巴大数据实践》

  1. 包含所有业务过程相关的事实有助于多角度度量业务,但要确保不过度冗余。
  2. 仅选择与业务过程相关的事实,避免不必要的数据存储
    例如不应该存在支付金额这个表示支付业务过程的事实。
  3. 将不可加性事实分解为可加的组件,以提高数据的分析和计算效率。比如订单
    的优惠率,应该分解为订单原价金额与订单优惠金额两个事实存储在事实表中。
  4. 在确定维度和事实之前,明确定义粒度,保持一致性以确保数据一致性和可扩展性。
  5. 事实表中应保持一致的粒度,避免多种不同粒度的混合。
  6. 事实的计量单位应保持一致,便于数据处理和分析。
  7. 处理事实表中的空值,建议使用零值填充以确保查询和分析的准确性。
  8. 使用退化维度提高事实表的易用性,减少表间关联,提高数据操作效率,但要注意空间和性能的平衡。

2.1.3 事实表的分类

事务事实表: 用于记录业务过程中的原子级别事实或事件。这种事实表通常记录每个单独的事务,例如每笔销售订单或每次交易。

例子:销售订单事实表
每个记录对应一个销售订单的详细信息,包括订单号、订单日期、顾客信息、产品信息、销售数量、销售金额等。
每一行代表一个独立的销售交易,通常情况下会有大量的行记录,每一行代表一个独立的销售订单。

周期快照事实表: 用于捕获在特定时间间隔内发生的事实。它们记录某一时间段内的状态或度量值,例如每月的销售总额或每周的库存量。

例子:每日销售快照事实表
每天记录一次销售情况的总结,包括当天的销售总额、销售数量、最畅销的产品等信息。
每行记录代表一个时间段内的汇总数据,例如每天、每周或每月。

累积快照事实表: 用于捕获业务过程中的状态变化。它们记录业务过程中的关键阶段,例如订单的生命周期,每个阶段的状态及相关度量。

例子:订单处理状态快照事实表
记录订单生命周期中的关键状态,例如订单创建、付款完成、发货、签收等状态,以及每个状态对应的时间和其他相关信息。
每行记录代表一个订单的状态变化,可以追踪订单在整个生命周期中的变化。

混合事实表(Hybrid Fact Table): 结合了以上不同类型的特征,用于满足多种不同的业务需求。混合事实表可能同时包含事务级别和周期快照级别的数据。

例子:零售综合事实表
综合了销售订单的详细信息(事务级别)、每日销售快照(周期快照级别)以及订单处理状态快照(累积快照级别)等不同粒度的数据。
可以包含不同层次和粒度的数据,以满足不同的分析需求。

2.2 模型分类

在构建数据仓库的维度建模中,一般有三种模式。星型模型/雪花模型/星座模型

2.2.1 星形模型

星形模型的维度建模由一个事实表和一组维度表组成,有以下特点:

  • 维度表只和事实表关联,维度表之间没有关联;
  • 每个维表的主码为单列,且该主码放置在事实表中,作为两边连接的外码;
  • 以事实表为核心,维表围绕核心呈星形分布;

数据仓库基本理论Ⅰ,数据仓库,大数据

2.2.2 雪花模型

雪花模型的特点:

  • 将星形模式的大维度表拆分为小维度表,满足规范化设计,但不利于开发。
  • 星型模型因为数据的冗余所以很多统计查询不需要做外部的连接,因此一般情况下效率比雪花型模型要高。在冗余可以接受的前提下,实际运用中星型模型使用更多,也更有效率。
  • 在雪花模型中,数据模型的业务层级是由一个不同维度表主键-外键的关系来代表的。而在星形模型中,所有必要的维度表在事实表中都只拥有外键。

数据仓库基本理论Ⅰ,数据仓库,大数据

2.3.3星座模型

星型模型和雪花模型都是基于多个维表对应事实表,有的时候一个维度表可能被多个事实表用到
,这个时候就需要采用星座模式

数据仓库基本理论Ⅰ,数据仓库,大数据

对比

雪花模型是将星型模型的维度表进一步划分,使得各维度表满足规范化设计。而星座模型允许星型
模型中出现多个事实表,更符合实际业务需求。雪花模型使得维度分析更加容易。

特征 雪花模型 星型模型
冗余 符合3NF设计,降低数据冗余,但需连接更多的维度表 维度表设计不符合3NF,维度表之间不直接相关,牺牲部分存储空间
性能 由于需要连接更多的维度表,性能偏低 采用降维的操作将维度整合,减少维度表连接数,性能较高
ETL处理 在ETL过程中相对简单,但ETL任务并行化较低 在设计维度表时反范式设计,整合业务数据到维度表有一定难度,但ETL任务并行化较高

2.3 建模案例

-电商平台(比如JD),经常需要对订单进行分析,以购物订单为例,以维度建模的方式设计该模
型。
涉及到事实表为订单表、订单明细表,维度包括商品维度、用户维度、商家维度、区域维度、时间
(日期)维度文章来源地址https://www.toymoban.com/news/detail-834671.html

事实表:订单表
描述性属性 订单ID、下单时间、支付时间、订单状态
度量 商品件数、总金额、总减免
事实表:订单明细表
描述性属性 订单明细ID、加入购物车时间、状态
度量 商品ID、件数、单价、减免金额
维度表:商品维度
属性 商品ID、商品名称、商品种类、单价、来源地
维度表:用户维度
属性 用户ID、姓名、性别、年龄、常住地、职业、学历
维度表:商家维度
属性 商家ID、商家名称、商家地点
维度表:区域维度
属性 区域ID、区域名称、省份、城市、区县
维度表:时间(日期)维度
属性 日期ID、日期、周几、上/中/下旬、是否周末、是否假期、特殊日期
维度表:优惠券维度
----------
属性 日期ID、日期、周几、上/中/下旬、是否周末、是否假期、特殊日期
维度表:优惠券维度
属性 券ID、券类别/优惠方式、优惠金额

到了这里,关于数据仓库基本理论Ⅰ的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 数据仓库表设计理论

    数仓顾名思义是数据仓库,其数据来源大多来自于业务数据(例如:关系型数据库),当设计数仓中表类型时(拉链表、增量表、全量表、流水表、切片表)时,应先观察业务数据的特点再设计数仓表结构 首先业务数据是会不断增长的-即增量,而在不断增长的前提下业务数据又可以

    2024年02月16日
    浏览(37)
  • 数据仓库理论

    数据仓库(Data Warehouse,简称 数仓 、 DW ),是一种用于存储。分析、报告的数据系统,其目的是构建 面向分析 的集成化数据环境,分析结果为企业提供决策支持 数据集仓库 本身并不生产任何数据 ,其数据来源于不同外部系统。同时数据 仓库自身也不需要消费任何的数据 ,其

    2024年02月08日
    浏览(33)
  • 数据仓库DW-理论知识储备

    数据仓库具备 采集数据、存储数据、分析和计算 的功能,最后得出一些有用的数据,一些目标数据来使用。 采集来自不同源的数据,然后对这些数据进行分析和计算得出一些有用的指标,提供数据决策支持。 数据的来源有:系统的业务数据、用户的行为数据、爬虫数据等。

    2024年02月07日
    浏览(42)
  • 企业级数据仓库-理论知识

    大数据中间件 Hive:将SQL转化成分布式Map/Reduce进行运算,也支持转换成Spark,需要单独安装Hive集群才能访问Spark,支持60%的SQL,延迟比较大。 SparkSQL:属于Spark生态圈,Hive on Sqark。 HBase: NoSQL,高并发读,适合表结构频繁变动。 Impala: MPP架构的数据查询引擎,低层兼容Hive、Spark SQL,

    2024年02月07日
    浏览(46)
  • 数据仓库从0到1之数仓建模理论

    从ODS层到ADS层,数据是越来越少的,数据分析都是以大量的数据为基础,对数据进行汇总聚合运算,抽丝剥茧,越往后数据的汇总层度越高,最后得到汇总的指标。 数仓分层原因 将复杂问题简化,将复杂的任务分解成多层来完成,每一层只处理简单的任务,方便定位问题;

    2024年01月20日
    浏览(36)
  • 《误差理论与数据处理》——基本概念和随机误差处理

    复习整理《误差理论与数据处理》 一、基本公式 (真值可以用高一等级精度的标准所测得的量值称之为实际值) 误差= 测得值 - 真值 绝对误差 = 测得值 - 真值 相对误差 = 绝对误差 / 真值 示值误差 = 测得值 - 真值 引用误差 = 示值误差 / 测量范围上限值 (可用以判断仪表精

    2024年02月16日
    浏览(37)
  • 【数据仓库基础(四)】数据仓库需求:基本需求和数据需求

    从基本需求和数据需求两方面介绍对数据仓库系统的整体要求。 数据仓库中含有机密和敏感的数据。为了能够使用这些数据,必须有适当的授权机制。这意味着只有被授权的用户才能访问数据,这些用户在享有特权的同时,也有责任保证数据的安全。 增加安全特性会 影响到

    2024年02月09日
    浏览(41)
  • 数据仓库扫盲系列(1):数据仓库诞生原因、基本特点、和数据库的区别

    随着互联网的普及,信息技术已经深入到各行各业,并逐步融入到企业的日常运营中。然而,当前企业在信息化建设过程中遇到了一些困境与挑战。 1、历史数据积存。 过去企业的业务系统往往是在较长时间内建设的,很少进行大面积的改造或者升级,历史数据留存在业务系

    2024年02月08日
    浏览(46)
  • 苦练基本功——数据仓库

    🌿 最近在复习一些数据仓库和维度建模的知识,之前博客也写过,那就一起整理一下,对往期内容感兴趣的同学可以参考👇: 链接: 数据仓库入门. 链接: 大数据之维度建模中的重要概念. 🌰 废话不多说,让我们开始今日份的学习吧。   数据技术是指通过使用计算机和相

    2024年02月02日
    浏览(43)
  • 数据仓库 基本信息

    数据仓库(英语:Data Warehouse,简称数仓、DW),是一个 用于存储、分析、报告的数据系统 。 数据仓库的目的是构建面向分析的集成化数据环境,为企业提供决策支持 (Decision Support)。 数据仓库本身并不“生产”任何数据,其数据来源于不同外部系统;同时数据仓库自身也

    2024年02月03日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包