首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

维度模型数据仓库(十七) —— 无事实的事实表

无事实的事实表         本篇讨论一种技术,用来处理源数据中没有度量的需求。例如,产品源数据不包含产品数量信息,如果系统需要得到产品的数量,很显然不能简单地从数据仓库中直接得到。...这时就要用到无事实的事实表技术。使用此技术可以通过持续跟踪产品的发布来计算产品的数量。可以创建一个只有产品(计什么数)和日期(什么时候计数)维度代理键的事实表。...产品发布的无事实事实表  本节说明如何实现一个产品发布的无事实事实表,包括新增和初始装载product_count_fact表。...图(五)- 12-1         执行清单(五)-12-1里的脚本创建产品发布日期视图和无事实事实表。...“流查询”步骤的主数据流步骤为“产品维度”,查找数据流步骤为“日期维度”。查找数据流有8036条数据,主数据流有6条数据。

90910

数据仓库中的维度表和事实表概述

事实表 每个数据仓库都包含一个或者多个事实数据表。事实数据表可能包含业务销售数据,如现金登记事务所产生的数据,事实数据表通常包含大量的行。...事实数据表的主要特点是包含数字数据(事实),并且这些数字信息可以汇总,以提供有关单位作为历史的数据,每个事实数据表包含一个由多个部分组成的索引,该索引包含作为外键的相关性纬度表的主键,而维度表包含事实记录的特性...一般来说,一个事实数据表都要和一个或多个纬度表相关联,用户在利用事实数据表创建多维数据集时,可以使用一个或多个维度表。...维度表 维度表可以看作是用户来分析数据的窗口,纬度表中包含事实数据表中事实记录的特性,有些特性提供描述性信息,有些特性指定如何汇总事实数据表数据,以便为分析者提供有用的信息,维度表包含帮助汇总数据的特性的层次结构...在维度表中,每个表都包含独立于其他维度表的事实特性,例如,客户维度表包含有关客户的数据。维度表中的列字段可以将信息分为不同层次的结构级。

4.7K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    数据仓库:详解维度建模之事实表

    本文目录如下: 一、事实表基础 二、事实表设计规则 三、事实表设计方法 四、有事实的事实表 五、无事实的事实表 六、聚集型事实表 ---- 正文开始: 每个数据仓库都包含一个或者多个事实数据表。...但结合阿里巴巴数据仓库模型建设的经验,对于累积快照事实表,还有一个重要作用是保存全量数据。 特殊处理: 非线性过程 淘宝一般流程是:下单、支付、发货、确认收货。...常见的无事实的事实表主要有如下两种:第一种是事件类的,记录事件的发生。 如阿里巴巴数据仓库中,最常见的是日志类事实表。 第二种是条件、范围或资格类的,记录维度与维度多对多之 间的关系。...如客户和销售人员的分配情况、产品的促销范围等。 六、聚集型事实表 数据仓库的性能是数据仓库建设是否成功的重要标准之一。聚集主要是通过汇总明细粒度数据来获得改进查询性能的效果。...常见聚集型事实表 数据仓库中,按照日期范围的不同,通常包括以下类别的聚集事实表 公共维度层-通用汇总 应对大部分可预期的、常规的数据需求,通常针对模式相对稳定的分析、BI指标计算、特征提取等场景,封装部分业务处理

    2.8K10

    数据仓库专题(10)-文本事实和杂项维度

    一、杂项维度 在维度建模的数据仓库中,有一种维度叫Junk Dimension,中文一般翻译为“杂项维度”。杂项维度是由操作系统中的指示符或者标志字段组合而成,一般不在一致性维度之列。...一张事实表中可能会存在好几个类似的字段,如果作为事实存放在事实表中,会导致事实表占用空间过大;如果单独建立维度表,外键关联到事实表,会出现维度过多的情况;如果将这些字段删除,会有人不同意。...这 时,我们通常的解决方案就是建立杂项维度,将这些字段建立到一个维度表中,在事实表中只需保存一个外键。几个字段的不同取值组成一条记录,生成代理键,存 入维度表,并将该代理键保存入相应的事实表字段。...二、文本事实 在维度建模中,我们经常会遇到一些文本型的事实,它们通常是一些标识信息、属性或者描述信息。这些字段看似属于事实表中的事实,但是它们又不是键、度量事实或者退化维度。...通常,不太建议将这些文本事实字段建立到事实表中,而应该在维度表中给它们找到适当的位置。 当遇到文本型的事实时,我们首先要考虑的应该是这个事实是否属于某个维度表。

    1.3K20

    维度模型数据仓库(十八) —— 迟到的事实

    为了知道一个销售订单是否是迟到的,需要把销售订单数据源的登记日期装载进sales_order_fact表。由于现在还没有登记日期列,你需要在事实表上添加此列。使用维度角色扮演技术添加登记日期。...因此,在销售订单事实表里添加名为entry_date_sk的日期代理键列,并且从日期维度表创建一个叫做entry_date_dim的数据库视图。...注意sales_order数据源已经含有登记日期,只是以前没有将其装载进数据仓库。...之后可以对比‘前’(不包含迟到事实)‘后’(包含了迟到事实)的数据,以确认装载的正确性。可以查询month_end_sales_order_fact表,查询语句和结果如下所示。...最后,执行相同的查询获取包含了迟到事实月底销售订单数据,查询语句和结果显示如下。

    31430

    数据仓库(08)数仓事实表和维度表技术

    所谓的事实表和维度表技术,指的就是如何和构造一张事实表和维度表,是的事实表和维度表,可以涵盖现在目前的需要和方便后续下游数据应用的开发。 事实表,就是一个事实的集合。...我们整理了维度表和事实表之后,我们需要形成一个总线矩阵。总线矩阵用于设计数据仓库架构的基本工具,矩阵的行表示业务过程,列代表维度。矩阵中的点表示维度与给定的业务过程是否存在关系,如下图。...图片形成这样的一个架构之后,我们的数据仓库的结构分层,和里面的数据表设计完成了,就可以进行同步和开发了。...数仓建模之星型模型与维度建模数据仓库(04)基于维度建模的数仓KimBall架构数据仓库(05)数仓Kimball与Inmon架构的对比数据仓库(06)数仓分层设计数据仓库(07)数仓规范设计数据仓库(...08)数仓事实表和维度表技术 数据仓库(09)数仓缓慢变化维度数据的处理数据仓库(10)数仓拉链表开发实例数据仓库(11)什么是大数据治理,数据治理的范围是哪些数据仓库(12)数据治理之数仓数据管理实践心得数据仓库

    1K10

    维度模型数据仓库(十九) —— 维度合并

    维度合并         随着数据仓库中维度的增加,会发现有些通用的数据存在于多个维度中。例如,客户维度的客户邮编相关信息、送货邮编相关信息和工厂维度里都有邮编、城市和州。...本篇说明如何把三个维度里的邮编相关信息合并到一个新的邮编维度。         修改数据仓库模式 为了合并维度,需要改变数据仓库模式。图(五)- 14-1显示了修改后的模式。...图(五)- 14-1         zip_code_dim表与两个事实表相关联。这些关系替换了这两个事实表与客户维度、工厂维度的关系。...与production_fact表只有一个关系,所以在这个事实表里只增加了工厂邮编代理键。         清单(五)-14-1里的脚本用于修改数据仓库模式。所做的修改如下。...修改定期装载脚本         定期装载有三个地方的修改: 删除客户维度装载里所有邮编相关的列,因为客户维度里不再有客户邮编和送货邮编相关信息 在事实表中引用客户邮编视图和送货邮编视图中的代理键

    65110

    维度建模——数据仓库初步

    《维度建模》系列文章将紧紧抓住业务需求这一要点,逐步深入探讨逻辑设计、物理设计以及采用有关技术和工具的决策等问题。...本文将详细考察数据仓库及商业智能的主要目标,辨析DW/BI管理者与杂志出版商各自责任中存在的不可思议的相似之处。 基于此背景,我们将探索维度建模核心概念并建立基本词汇表。...尽管在这样的环境中,出于性能的考虑,将操作型系统和分析型系统进行了隔离,但并未仔细考虑这两类系统之间天然存在的其他差异。商业用户感觉不到由这些虚假数据仓库提供的可用性和性能。...数据仓库与商业智能的目标 在开始深入研究维度建模的细节前,关注数据仓库与商业智能的基本目标是非常有益的。...当业务问题发生变化或新数据增加到数据仓库中时,已经存在的数据和应用不应该被改变或破坏。

    25210

    维度模型数据仓库(八) —— 维度子集

    需要修改“准备数据仓库模拟环境”里生成日期维度数据的存储过程。清单(五)-3-2中显示了修改后的存储过程。...select * from month_dim where year = 2021 ;         在“准备数据仓库模拟环境”里除了使用存储过程,还使用了Kettle转换预装载日期维度数据。...这里对转换也做一些修改,使之同时预装载日期维度和月份维度数据。修改后的Kettle转换步骤如图(五)- 3-1到图(五)- 3-13所示。...其中JavaScript步骤的代码没有变化,参见“准备数据仓库模拟环境”里的清单(二)- 2。...所以应该把PA客户维度子集的装载合并到数据仓库定期装载中。清单(五)-3-4显示了修改后的定期装载脚本。

    45120

    维度模型数据仓库(十四) —— 杂项维度

    杂项维度         本篇讨论杂项维度。简单地说,杂项维度就是一种包含的数据具有很少可能值的维度。...) new_customer_ind(如果这是新客户的首个订单,值为yes) web_order_flag(表示此订单是否是在线下的订单)         这类数据常被用于增强销售分析,应该用称为杂项维度的特殊维度类型存储...新增销售订单属性杂项维度 给现有的数据仓库新增一个销售订单杂项维度,需要新增一个名为sales_order_attribute_dim的维度表。...图(五)- 9-1显示了增加杂项维度表后的数据仓库模式(这里只显示了和销售订单属性相关的表)。...这个脚本做了四项工作:建立sales_order_attribute_dim表,向表中预装载全部16种可能的组合,给销售订单事实表添加杂项维度代理键,给源数据库里的sales_order表增加对应的四个属性列

    71220

    维度模型数据仓库(十三) —— 退化维度

    退化维度         本篇讨论一种称为退化维度的技术。该技术减少维度的数量,简化维度数据仓库的模式。简单的模式比复杂的更容易理解,也有更好的查询性能。...当一个维度没有数据仓库需要的任何数据时就可以退化此维度。需要把退化维度的相关数据迁移到事实表中,然后删除退化的维度。        ...退化订单维度         本节说明如何退化订单维度,包括对数据仓库模式和定期装载脚本的修改。使用维度退化技术时你首先要做的识别数据,分析从来不用的数据列。...修改后的脚本需要把订单号加入到销售订单事实表,而不再需要导入订单维度。清单清单(五)- 8-2显示了修改后的定期装载脚本。...测试使用具有分配库房、出库、配送和收货里程碑的两个新订单。所以每个订单需要添加五行。清单(五)- 8-3里的脚本向源数据库里的sales_order表新增十行。

    4.7K20

    维度模型数据仓库(十一) —— 维度层次

    维度层次         大多数维度都具有一个或多个层次。例如,日期维度就有一个四级层次:年、季度、月和日。这些级别用date_dim表里的列来表示。...日期维度是一个单路径层次,因为除了年-季度-月-日这条路径外,它没有任何其它层次。本篇将讨论在维度的层次上进行分组和钻取查询。...多路径层次在下一篇“多路径和参差不齐的层次”中讨论。         为了识别数据仓库里一个维度的层次,首先要理解维度中列的含义。然后就可以识别两个或多个列具有相同的主题。...例如,日-月-季度-年这个链条是一个日期维度的层次。除了日期维度,产品和客户维度也有层次。 表(五)- 6-1显示了三个维度的层次。注意客户维度具有两个路径的层次。...清单(五)- 6-2里的钻取查询显示了每个日期维度级别(年、季度和月级别)的订单汇总金额。

    68730

    维度模型数据仓库(三) —— 准备数据仓库模拟环境

    (二)准备数据仓库模拟环境         上一篇说了很多数据仓库和维度模型的理论,从本篇开始落地实操,用一个小而完整的示例说明维度模型及其相关的ETL技术。...生成日期维度数据         源数据数据库初始ERD如图(二)- 1所示         数据仓库数据库初始ERD如图(二)- 2所示         执行清单(二)- 1里的SQL...关于日期维度数据装载         日期维度在数据仓库中是一个特殊角色。日期维度包含时间,而时间是最重要的,因为数据仓库的主要功能之一就是存储历史数据,所以每个数据仓库里的数据都有一个时间特征。...比如,本示例预装载21年的日期维度数据,从2000年1月1日到2020年12月31日。使用这个方法,在数据仓库生命周期中,只需要预装载日期维度一次。也可以按需添加数据。...预装载的缺点是: 提早消耗磁盘空间 可能不需要所有的日期(稀疏使用)         本示例使用MySQL存储过程和Kettle两种方法生成日期维度数据。

    1.1K20

    数据仓库系列之维度建模

    Inmon和Kimball两种DW架构支撑了数据仓库以及商业智能近二十年的发展,其中Inmon主张自上而下的架构,不同的OLTP数据集中到面向主题、集成的、不易失的和时间变化的结构中,用于以后的分析;且数据可以通过下钻到最细层...这一方法是Kimball最先提出的,其最简单的描述就是按照事实表、维度表来构建数据仓库、数据集市。...雪花模型 数据仓库包含的内容很多,它可以包括架构、建模和方法论。...接下来具体来了解维度建模 一、什么是维度建模 维度模型是数据仓库领域大师Ralph Kimball 所倡导,他的《数据仓库工具箱》,是数据仓库工程领域最流行的数仓建模经典。...5、数据不一致,比如用户发起购买行为的时候的数据,和我们维度表里面存放的数据不一致 再说没有数据仓库的宽事实表的优缺点: ?

    1.3K30

    维度模型数据仓库(二) —— 维度模型基础

    (一)维度模型基础         既然维度模型是数据仓库建设中的一种数据建模方法,那不妨先看一下几种主流的数据仓库架构。         1....以上这些方法论的东西简单描述了几种数据仓库总体架构的异同之处。除了架构层面,还有两种主要的建模方法,即规范化模型和维度模型。规范化模型用于EDW建模,而维度模型用于数据集市建模。...一般数据库设计需要满足3NF。在《构建Oracle高可用环境》这本书里有一个很好的例子讲述数据库范式设计。而对于维度模型最简单的描述就是,按照事实表、维度表来构建数据仓库、数据集市。...这种方法被人们熟知的有星型模式和雪花模式。         星型模式是部署在关系数据库管理系统之上的多维结构,主要包含事实表,以及通过主键/外键关系与之关联的维度表。...看一下以上星型模式的定义,问题来了:既然事实表与维度表也是以主键/外键的方式相互关联,换句话说,3NF和维度模型都能用实体/关系图(ERD)表示,那么两者的根本区别是什么呢?

    97020

    数据仓库专题(11)-可以作为维度表使用的事实表

    KDT#13 可以作为维度表使用的事实表 事实表从粒度的角度分为三种,分别是交易粒度事实表、周期快照事实表和累计快照事实表。 交易粒度事实表能提供某个确切时刻的描述信息。...建立的交易粒度事实表如下所示: 变更日期(FK)帐户号(SK) 代理(FK) 客户信息变更类型(FK) 帐户号(NK) 名称(文本事实) 地址(文本事实) 电话号码(文本事实) 客户分类(文本事实) 信用等级...这是一个典型的记录的度量事实都是文本型描述信息的事实表。这样的事实表和维度表之间的区别并不明显。 这个事实表中有三个是关联到普通维度表的外键,分别是变更日期、代理和交易类型。...举例来说,我们除了收集帐号本身变动信息外,还会收集存取款情况和帐号余额信息,并建立事实表如下: 交易日期(FK) 帐户号(SK) 地点(FK) 交易类型(FK) 数额(可加性事实) 帐户余额(半可加性事实...我们会发现,前一张事实表和维度表并没有什么差别。

    97120

    论道数据仓库维度建模和关系建模

    知道了数据仓库的好处,很多行业和企业也都经历了数据仓库建模,但如果问哪家数据模型建得好,各行业各企业就很难分出个高下了。...维度模型则是数据仓库领域另一位大师Ralph Kimball 所倡导的。...,主要是简单的报表系统;后期数据量越来越大,系统越来越多,尝试用ER建模的数据仓库,但是在实践中发现快速变化的业务之下,构建ER模型的风险和难度都很高,现在则主要采用基于维度建模的模型方法了。”...但Inmon和kimball关于关系建模和维度建模的争论其实也没什么值得探讨的,没有谁更好,在企业内,这两种建模方式往往同时存在,底层用关系建模合适一点,技术的优雅换来了数据的精简,往上维度建模更合适一些...,靠数据的冗余带来了可用性,优势互补,都说关系建模不易,概念模型是个坎,其实维度建模也不易,维度的梳理和运营是艰巨的,否则就是烂摊子的活。

    2.1K80

    数据仓库系列--维度表技术

    维度表技术常见:增加列,维度子集,角色扮演维度,层次维度,退化维度,杂项维度,维度合并,分段维度等基本维度表技术。 一.增加列 事实表和维度表上增加列。...空值处理: 二.维度子集   有些需求不需要最细节的数据。此时事实数据需要关联特定的维度,这些特定维度包含在从细节维度选择的行中,所以叫维度子集。...缺点:当基本维度和子维度表数据量相差悬殊,性能比物理表差很多;如果定义视图查询,并且视图很多,可能对元数据存储系统造成压力,严重影响查询性能。...层次关系方法:固定深度层次进行分组和钻取查询,递归层次结构数据装载、展开与平面化,多路径层次和参差不齐处理 五.退化维度 除了业务主键外没有其他内容的维度表。...参考《Hadoop构建数据仓库实践》

    17310

    漫谈数据仓库之维度建模

    概述 数据仓库包含的内容很多,它可以包括架构、建模和方法论。对应到具体工作中的话,它可以包含下面的这些内容: 以Hadoop、Spark、Hive等组建为中心的数据架构体系。...因此,下面的将详细地阐述数据建模中的典型代表:维度建模,对它的的相关理论以及实际使用做深入的分析。 文章结构 本文将按照下面的顺序进行阐述: 先介绍比较经典和常用的数据仓库模型,并分析其优缺点。...0x01 经典数据仓库模型 下面将分别介绍四种数据仓库模型,其中前三种模型分别对应了三本书:《数据仓库》、《数据仓库工具箱》和《数据架构 大数据 数据仓库以及Data Vault》,这三本书都有中文版,...一、什么是维度建模 维度模型是数据仓库领域大师Ralph Kimall所倡导,他的《数据仓库工具箱》,是数据仓库工程领域最流行的数仓建模经典。...学过数据库的童鞋应该都知道星型模型,星型模型就是我们一种典型的维度模型。我们在进行维度建模的时候会建一张事实表,这个事实表就是星型模型的中心,然后会有一堆维度表,这些维度表就是向外发散的星星。

    76020
    领券