数据仓库专题(8)-维度属性选择之维护历史是否应该保留

一、背景

  数据仓库建模过程中,针对事务型事实表设计,经常会遇到维度属性选择的问题,比如客户维度,在操作型系统中,为了跟踪客户状态的变化,往往会附加客户记录的四个属性:

1.add time:添加时间;

  2.add user:添加用户;

  3.mod time:修改时间;

  4.mod user:修改用户;

  问题在于,当我们进行维度建模的时候,如果以客户作为维度,是否应该考虑以上四个属性?

二、观点

  1.应该保留

  (1)我觉得 添加时间 可以作为维度属性,以后可能进行相关的统计;

  2.不应该保留

  (1)在按主题重新设计模型时,一般业务不需要保留;

    (2)   以经验看,添加时间,修改时间,一般都是必须的。 而,添加用户,修改用户,这个就需要看实际是否有相应的需求,选择性添加(可预期的需求,也需要考虑进去)

(3)这个感觉并不是维度,可以用缓慢变化维解决,维度本身的意义应该在于后续的汇总分析;

(4)一般这里讲的数据是业务度量,scd记录变化也是为了历史的维度视角反映业务事实;

  3.按照需求来定

  (1)一般都是需求来定的吧,没有什么具体标准;

  (2)业务驱动吧;

(3)这个要根据实际需求来看: 如果有这么个需求: 根据新增客户数作为考核指标,来考核员工。。那么这个字段是必须的,添加时间和添加用户,这两个字段就是必须;

  4.其他

  (1)我觉得维度除了时间之外都应该是名词性的东西 而不是一个动作;

三、建议

  正本溯源,要想搞清楚这个问题,还是要回到维度的定义上来。维度是用来对数据进行分类的结构和人们观察业务情况的角度.关于维度的定义至今未看到统一的行业标准。在此选取Kimball的说法:“维度提供围绕某一业务过程所涉及的‘谁、什么、何处、何时、为什么、如何’等背景。维度表包含BI应用所需要的用于过滤及分类事实的描述性属性。

四、未完待续

  分布式数据仓库数据存储模型设计进行中,后续会持续更新,请关注QQ群:分布式数据仓库建模 398419457。

时间: 2024-08-12 20:28:35

数据仓库专题(8)-维度属性选择之维护历史是否应该保留的相关文章

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

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

数据仓库专题(22):总线架构和维度建模优势-杂项

一.总线架构 维度建模的数据仓库中,有一个概念叫Bus Architecture,中文一般翻译为“总线架构”.总线架构是Kimball的多维体系结构(MD)中的三个关键性概念之一,另两个是一致性维度(Conformed Dimension)和一致性事实(Conformed Fact). 在多维体系结构(MD) 的数据仓库架构中,主导思想是分步建立数据仓库,由数据集市组合成企业的数据仓库.但是,在建立第一个数据集市前,架构师首先要做的就是设计出在整个企业 内具有统一解释的标准化的维度和事实,即一致

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

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

前端实现商品属性选择

一.效果图 二.后台返回的数据格式 [{ "saleName": "颜色", "dim": 1, "saleAttrList": [{ "imagePath": null, "saleValue": "白色", "skuIds": [ 1, 2, 3 ] }, { "imagePath": null, "saleVal

#8.10.16总结# 属性选择符 伪对象选择符 CSS的常用样式

属性选择符 E[att] E[att="val"] E[att~="val"] E[att^="val"] E[att$="val"] E[att*="val"] E[att|="val"] 伪对象选择符  E:first-letter/E::first-letter 设置对象内的第一个字符的样式. <p>今天,阳光明媚,晴空万里,非常适合户外活动,如踏青.远足之类的.长期坐

善用你的html的属性选择符

在学习Css3.0选择符的时候,参考了<CSS3.0参考手册>.有个地方没有说明,于是被坑了半个小时呀! 在这里和大家分享一下,在选择符分类那里,有一类是属性选择符是通过字串来匹配的! 形式有以下几种: 属性名选择符E[att] -- 匹配文档中具有att属性的E元素属性值选择符E[att=val] -- 匹配文档中具有att属性且其值为val的E元素E[att~=val] -- 匹配文档中具有att属性且其中一个值(多个值使用空格分隔)为val(val不能包含空格)的E元素E[att|=va

维度属性的KeyColumns如果是Integer类型,那么维度表中该列的值不能有为null的

如果维度属性的 KeyColumns的DataType设置为了Integer类型,那么要注意该维度属性列在数据库中不能有为null的值. 例如下图中我们有维度DIM_Vehcile,其中有个维度属性叫Vehicle Year,该属性的 KeyColumns的DataType设置为了Integer类型,如果现在数据库中DIM_Vehcile表的字段VehicleYear有为null的值,那么处理维度DIM_Vehcile时,会报Duplicate Key Error. 这是因为如果维度属性Vehi

JQuery 多属性选择节点

JQuery 1.6.0+以后用prop()代替attr(); 多属性选择节点 $("input[type=checkbox][name='first2'][value='first4']"). 1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8"%> 3 <!DOCTYPE html

jquery-checkbox的属性选择判断

------------------------------------------------------checkbox的属性选择判断: <script type="text/javascript"> $(function(){ alert("start"); alert($(".parentchack").attr("checked")); if($(".parentchack").att