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

数据建模-维度建模-维度设计

导读: 在Kimball维度建模中,通常将度量称为“事实”,将环境描述为“维度”,维度是用于分析事实所需要的多样环境。维度维度属性是维度的两个核心概念,如何构建维度的属性是维度设计中需要关注的。...第四步:确定维度属性。本步骤主要包括两个阶段,第一阶段是主维度表中选择维度属性或生成新的维度属性;第二阶段是从相关维度表中选择维度属性或生成新的维度属性。以商品维度为例。...以商品维度为例,从主维度表(商品维表)和类目、SPU、卖家、店铺等相关维度表选择维度属性或生成新的维度属性。...比如在商品体系中,有商品维度和类目维度,其中类目维度维度属性是商品维度维度属性的子集,且有相同维度属性和维度属性值。这样基于类目维度进行不同业务过程的探查也不会存在任何问题。...维度维度属性是维度的两个核心概念,如何构建维度的属性是维度设计中需要关注的。维度具有层次结构,维度中的一些描述属性以层次方式或一对多方式相互关联。比如商品维度,有卖家、类目、品牌等父层次。

56330

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

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

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

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

    这些特定维度包含在从细节维度选择的行中,所以叫维度子集。维度子集比细节维度小,因此更易使用,查询也更快。        ...本篇中将准备两个特定维度,它们均取自现有的维度:月份维度(日期维度的子集),Pennsylvania州客户维度(客户维度的子集)。...清单(五)-3-1里的脚本用于建立月份维度,并从日期维度初始装载月份维度。注意月份维度不包含promo_ind列,该列不适用月层次上,因为一个月中可能有多个促销期。促销标记适用于日层次。...无论何时用修改后的脚本增加日期记录时,如果这个日期所在的月份没在月份维度中,那么该月份会被装载到月份维度中。...而特定维度子集是选择基本维度的一个特定子集。清单(五)-3-3里的脚本建立特定维度表,并导入Pennsylvania (PA)客户维度子集。

    43620

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

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

    60910

    聊聊维度建模的灵魂所在——维度表设计

    前言 维度表是维度建模的灵魂所在,在维度表设计中碰到的问题(比如维度变化、维度层次、维度一致性、维度整合和拆分等)都会直接关系到维度建模的好坏,因此良好的维表设计就显得至关重要,今天就让我们就一起来探究下关于维表设计的相关概念和一些技术...重写维度值 当一个维度值属性发生变化时,重写维度值方法直接用新值覆盖旧值。...插入新的维度行 相比重写维度值方法不维护维度属性变化的特点,插入新的维度行方法则通过在维度表中插入新的行来保存和记录变化的情况。...通过新增维度行,我们保存了维度的变化,并实现了维度值变化前的 实和变化后的事实分别与各自的新旧维度值关联。 但是这也给维度表用户带来了困惑,为什么查询会员会在维度表中发现多行记录?...维度一致性的意思是指:两个维度如果有关系,要么就是完全一样的,要么就是一个维度在数学意义上是另一个维度的子集。 不一致既包含维度表内容的不 致,也包含维度属性上的不一致。

    1.6K40

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

    杂项维度         本篇讨论杂项维度。简单地说,杂项维度就是一种包含的数据具有很少可能值的维度。...new_customer_ind(如果这是新客户的首个订单,值为yes) web_order_flag(表示此订单是否是在线下的订单)         这类数据常被用于增强销售分析,应该用称为杂项维度的特殊维度类型存储...新增销售订单属性杂项维度 给现有的数据仓库新增一个销售订单杂项维度,需要新增一个名为sales_order_attribute_dim的维度表。...图(五)- 9-1显示了增加杂项维度表后的数据仓库模式(这里只显示了和销售订单属性相关的表)。...可以预装载这个维度,并且只需装载一次。         注意 如果知道某种组合是不可能出现的,就不需要装载这种组合。执行清单(五)- 9-1里的脚本修改数据库模式。

    66420

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

    退化维度         本篇讨论一种称为退化维度的技术。该技术减少维度的数量,简化维度数据仓库的模式。简单的模式比复杂的更容易理解,也有更好的查询性能。...当一个维度没有数据仓库需要的任何数据时就可以退化此维度。需要把退化维度的相关数据迁移到事实表中,然后删除退化的维度。        ...退化订单维度         本节说明如何退化订单维度,包括对数据仓库模式和定期装载脚本的修改。使用维度退化技术时你首先要做的识别数据,分析从来不用的数据列。...例如,订单维度的order_number列就可能是这样的一列。但如果用户想看事务的细节,还需要订单号。因此,在退化订单维度前,要把订单号迁移到sales_order_fact表。...修改后的脚本需要把订单号加入到销售订单事实表,而不再需要导入订单维度。清单清单(五)- 8-2显示了修改后的定期装载脚本。

    4.3K20

    缓慢变化维度

    0x00 前言 本文会分享数据仓库中和缓慢变化维度相关的内容。在看之前建议回顾一下和维度建模相关的知识点,可参考数据仓库系列文章。 为什么会分享这个听起来很奇怪的东西?...因为站在的笔者的视角中,只要是做数据仓库的小伙伴们,在工作中基本上都会接触和维度建模相关的内容,而谈到维度建模,就少不了会和维度表打交道。我们要谈的就是维度表相关的知识点。...在正式开始之前,先解释一下什么是缓慢变化维度。笔者个人理解,缓慢变化维度其实就是指在维度表中那些会随着时间变化的字段,比如用户基本资料。 注:缓慢是一个相对的概念。...缓慢变化维的提出是因为在现实世界中,维度的属性并不是静态的,它会随着时间的流失发生缓慢的变化。...这种随时间发生变化的维度我们一般称之为缓慢变化维,并且把处理维度表的历史变化信息的问题称为处理缓慢变化维的问题,有时也简称为处理SCD的问题。

    2.1K31

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

    (一)维度模型基础         既然维度模型是数据仓库建设中的一种数据建模方法,那不妨先看一下几种主流的数据仓库架构。         1....除了架构层面,还有两种主要的建模方法,即规范化模型和维度模型。规范化模型用于EDW建模,而维度模型用于数据集市建模。...而对于维度模型最简单的描述就是,按照事实表、维度表来构建数据仓库、数据集市。这种方法被人们熟知的有星型模式和雪花模式。        ...星型模式是部署在关系数据库管理系统之上的多维结构,主要包含事实表,以及通过主键/外键关系与之关联的维度表。在星型模式实施中,所有维度级别的维度数据存储在单个表或视图中。...雪花模就是将维度层次进一步规范化为子维度。在雪花模式实施中,使用多个表或视图来存储维度数据。单独的数据库表或视图存储与维中每个级别相关的数据。

    91320

    维度模型数据仓库(二十一) —— 分段维度

    分段维度         本篇说明分段维度的实现技术。分段维度包含连续值的分段。...分段维度可以存储多个分段集合。例如,可能有一个用于促销分析的分段集合,另一个用于市场细分,可能还有一个用于销售区域计划。分段一般由用户定义,而且很少能从交易源数据直接获得。...多重星型模式的开发经验实现分段维度。         年度销售订单星型模式         本节说明如何实现一个年度订单分段维度。你需要两个新的星型模式,如图(五)- 16-1所示。...年维度是日期维度的子集。annual_customer_segment_fact是唯一用到annual_order_segment_dim表的表。...清单(五)-16-1里的脚本用于建立分段维度数据仓库模式。

    37920

    详解维度建模

    维度建模解决了模式过分复杂的问题。 我们换一种方式来解释什么是维度建模。学过数据库的童鞋应该都知道星型模型,星型模型在数据仓库的设计中可以为是一种典型的维度模型。...我们在进行维度建模的时候会建一张事实表,这个事实表就是星型模型的中心,然后会有一堆维度表,这些维度表就是向外发散的星星。那么什么是事实表、什么又是维度表吗,下面会专门来解释。...我们可以回过头再看一下事实表的特征,在维度表里没有存放实际的内容,他是一堆主键的集合,这些ID分别能对应到维度表中的一条记录。 2. 维度表 每个维度表都包含单一的主键列。...维度表的主键可以作为与之关联的任何事实表的外键,当然,维度表行的描述环境应与事实表行完全对应。 维度表通常比较宽,是扁平型非规范表,包含大量的低粒度的文本属性。...维度模型在很多开源的系统都中都有支持,比如Kylin,在建模的时候就是用的维度建模中的星型模型,当然在最新版本中也支持了雪花模型。

    8.5K121

    维度爆炸?Python实现数据压缩竟如此简单!

    前言 在之前的文章中,我们已经详细介绍了主成分分析的原理,并用Python基于主成分分析的客户信贷评级进行实战。...Python实战 本节我们将使用Python对上面的数据进行分析 数据探索 import pandas as pd import numpy as np import matplotlib.pyplot...小结 本文再次讲解了基于主成分分析的样本特征描述,并使用Python示范了完整的流程。其中,也对由多个自变量生成的主成分的命名描述操作中需要注意的点作了比较详细的说明。...其实PCA并不能非常好的满足维度分析的需求,能够做到「因子分析」最好,它是主成分方法的拓展,作为维度分析的手段,因子分析也是构造合理的聚类模型和稳健的分类模型的必然步骤。...github.com/liuhuanshuo/zaoqi-Python/tree/master/商业数据分析实战」

    47330

    数仓基础(四):维度建模理论之维度

    维度建模理论之维度表一、维度表概述维度表是维度建模的基础和灵魂。前文提到,事实表紧紧围绕业务过程进行设计,而维度表则围绕业务过程所处的环境进行设计。...维度表主要包含一个主键和各种维度字段,维度字段称为维度属性。二、维度表设计步骤1、确定维度(表)在设计事实表时,已经确定了与每个事实表相关的维度,理论上每个相关维度均需对应一张维度表。...需要注意到,可能存在多个事实表与同一个维度都相关的情况,这种情况需保证维度的唯一性,即只创建一张维度表。...另外,如果某些维度表的维度属性很少,例如只有一个XX名称,则可不创建该维度表,而把该表的维度属性直接增加到与之相关的事实表中,这个操作称为维度退化。...维度表的粒度通常与主维表相同。3、确定维度属性确定维度属性即确定维度表字段。维度属性主要来自于业务系统中与该维度对应的主维表和相关维表。维度属性可直接从主维表或相关维表中选择,也可通过进一步加工得到。

    14310
    领券