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

一、杂项维度

在维度建模的数据仓库中,有一种维度叫Junk Dimension,中文一般翻译为“杂项维度”。杂项维度是由操作系统中的指示符或者标志字段组合而成,一般不在一致性维度之列。

在操作系统中,我们定义好各种维度后,通常还会剩下一些在小范围内取离散值的指示符或者标志字段。例如:支付类型字段,包括现金和信用卡两种类型,在源系统中它们可能是维护在类型表中,也可能直接保存在交易表中。

一张事实表中可能会存在好几个类似的字段,如果作为事实存放在事实表中,会导致事实表占用空间过大;如果单独建立维度表,外键关联到事实表,会出现维度过多的情况;如果将这些字段删除,会有人不同意。

这 时,我们通常的解决方案就是建立杂项维度,将这些字段建立到一个维度表中,在事实表中只需保存一个外键。几个字段的不同取值组成一条记录,生成代理键,存 入维度表,并将该代理键保存入相应的事实表字段。建议不要直接使用所有的组合生成完整的杂项维度表,在抽取时遇到新的组合时生成相应记录即可。杂项维度的ETL过程比一般的维度略为复杂。

二、文本事实

在维度建模中,我们经常会遇到一些文本型的事实,它们通常是一些标识信息、属性或者描述信息。这些字段看似属于事实表中的事实,但是它们又不是键、度量事实或者退化维度。

通常,不太建议将这些文本事实字段建立到事实表中,而应该在维度表中给它们找到适当的位置。

当遇到文本型的事实时,我们首先要考虑的应该是这个事实是否属于某个维度表。例如,客户类型标识出每个客户的一个值,应该属于客户维度表。

如果事实不属于已存在的任何一个维度表,我们可以为它们建立单独的维度表或者整合成杂项维度表(Junk Dimension)。建立单独的小维度表是比较容易的方式,但是为增加事实表中的外键个数。这样的维度比较多时,我们可以建立杂项维度表。下面列举了不同情况的一些说明。

1.如果事实表中的维度外键已经很多,如20个左右,那么最好建立杂项维度表。

2.理想情况下,杂项维度的记录数不要超过10万条。如果建立了杂项维度记录过多,可以考虑拆分成独立的维度或者其他杂项维度。

3.从业务规则角度讲,杂项维度中的不同属性应该是不相关的,以免引起误解。如果相关的话,最好不要建立成杂项维度。

另外,如果这个文本是详细的、自由格式的描述信息,并且较少访问的话,把它们建立成事实维度是一个很好的选择。

时间: 2024-11-07 10:39:58

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

数据仓库专题(4)-分布式数据仓库事实表设计思考---讨论精华

一.前言 上一篇分享博文<数据仓库专题(3)--分布式数据仓库事实表设计思考>后,陆续有各位兄弟参加大讨论,提出了各种问题,关于分布式环境下,维表和事实表设计,进行了比较深入的探讨,在此汇集整理,分享给大家.希望能有更多人参与尽力啊,共同探索分布式数据仓库数据模型的设计. 二.纪要 [活跃]北京-RTB-胖哥(1106110976) 10:21:36 分布式模式下事实表设计思考: 做大做强事实表,做小做弱维表: [冒泡]杭州-电子病历<[email protected]> 10:2

数据仓库专题(2)-Kimball维度建模四步骤

一.前言 四步过程维度建模由Kimball提出,可以做为业务梳理.数据梳理后进行多维数据模型设计的指导流程,但是不能作为数据仓库系统建设的指导流程.本文就相关流程及核心问题进行解读. 二.数据仓库建设流程 以下流程是根据业务系统.组织结构.团队结构现状设定的数据仓库系统建设流程,适合系统结构复杂,团队协作复杂,人员结构复杂的情况,并且数据仓库建设团队和业务系统建设团队不同的情况.具体流程如下图所示: 图1 数据仓库系统建设流程 三.四步维度建模 Kimball四步建模流程适合上述数据仓库系统建设

BI中事实表,维度表和数据集市,数据仓库的理解

维度表(dimension)存放着一些维度属性,例如时间维度:年月日时:地域维度:省份,城市:年龄维度:老年,中年,青年:职称维度:高,中,低.它定义了可以从哪些角度分析事实表. 事实表(fact)存放着一些业务产生的数据,例如:商品订购产生的订单信息,银行的流水信息,erp系统的办公信息.但它不仅存放着上述事实信息,而且存放在事实信息与维度信息关联的键值,例如订单信息里面有日期字段可以和时间维度关联,可以通过银行中的个税流水与收入维度关联量化各个收入群体,erp流水中的员工号可以同职称维度表关

数据仓库--事实表和维度表

本文主要参考如下几篇文章:http://www.cnblogs.com/47613593/archive/2009/02/20/1394581.htmlhttp://jackwxh.blog.51cto.com/2850597/827968 1.数据仓库与操作型数据库的区别 数据仓库的物理模型与常见的操作型数据库的物理模型有很大不同.最明显的区别是:操作型数据库主要是用来支撑即时操作,对数据库的性能和质量要求都比较高,为了防止"garbage in,garbage out",通常设计操

事实表和维度表(转载)

维度表示你要对数据进行分析时所用的一个量, 比如你要分析产品销售情况, 你可以选择按类别来进行分析,或按区域来分析. 这样的按..分析就构成一个维度.前面的示例就可以有两个维度:类型和区域.另外每个维度还可以有子维度(称为属性),例如类别可以有子类型,产品名等属性. 下面是两个常见的维度表结构: 产品维度表:Prod_id, Product_Name, Category, Color, Size, Price时间维度表:TimeKey, Season, Year, Month, Date 而事实

数据仓库的几类事实表

交易事实表.周期快照事实表和累积快照事实表,事实快照 在数据仓库领域有一个概念叫Transaction fact table,中文一般翻译为“事务事实表”.事务事实表是维度建模的数据仓库中三种基本类型事实表中的一种,另外两种分别是周期快照事实表和累积快照事实表. 事务事实表与周期快照事实表.累积快照事实表使用相同的一致性维度,但是它们在描述业务事实方面是有着非常大的差异的. 事务事实表记录的事务层面的事实,保存的是最原子的数据,也称“原子事实表”.事务事实表中的数据在事务事件发生后产生,数据的粒

事实表,维度,度量,指标之间的关系

事实表:每个数据仓库都包含一个或者多个事实数据表.事实数据表可能包含业务销售数据,如销售商品所产生的数据,与软件中实际表概念一样 维度:说明数据,维度是指可指定不同值的对象的描述性属性或特征.例如,地理位置的维度可以包括"纬度"."经度"或"城市名称"."城市名称"维度的值可以为"旧金山"."柏林"或"新加坡". 指标:衡量数据,指标是指可以按总数或比值衡量的具体维度

事实表 和 维度表

维度表示你要对数据进行分析时所用的一个量, 比如你要分析产品销售情况, 你可以选择按类别来进行分析,或按区域来分析. 这样的按..分析就构成一个维度.前面的示例就可以有两个维度:类型和区域.另外每个维度还可以有子维度(称为属性),例如类别可以有子类型,产品名等属性. 下面是两个常见的维度表结构: 产品维度表:Prod_id, Product_Name, Category, Color, Size, Price时间维度表:TimeKey, Season, Year, Month, Date 而事实

关于私有云的10个事实

对于企业而言,云服务的自主权.敏捷性和生产力是他们选择的主要标准,通过运维私有云迎合他们的需求可以获得很高的效率.技术管理团队应该致力于将私有云价值最大化来服务于市场,Forreste在此介绍了私有云的10个事实,使得技术管理领导和管理团队能够更好地进行私有云战略部署. 以下为译文: 云是当今每个企业在雇员和客户技术管理战略中的关键部分,不过过滤市场噪声设计鲁棒的云战略并不容易. 也许开发者和商业领导不会选择公有云,因为他们更侧重云服务的自主权.敏捷性和生产力,而不是云服务的价格,那么又如何去运