http://www.cnblogs.com/tintown/archive/2005/08/29/225606.html

在系统设计中,我们一般会考虑时间,但我们很少会正式意义上去分析时间,我现在从数据仓库的角度来分析一下,“时间”作为一个“维度”时,应该如何设计。

我们绝大部分的系统都只考虑业务型的,也就是系统的运行,而作为一个大型的系统来说,“数据分析”才是关键,因此,要把系统设计成具有“分析”,也可能称之为“数据挖掘”(当然数据挖掘的概念并不仅仅于此),这种具有“分析”功能的系统,可以称之为“决策辅助系统”。

这种系统的不同点就是重点在系统的分析决策上,那么对数据的分析就尤其重要,其实的都先不讲,先要看一下“时间维度”,时间在我们的系统中应该是一个最常用到的维度了。

一般的系统中,我们只会加个“生成日期”或“订单日期”的字段,也就是在这样的系统中,我们对时间强调不深,只要记录具体的“时间”就可以了,只会用一个字段来记录,那么我们来提几个问题:

如何获得一周中各天的销售值?想分析一下一周中哪一天销售量比较高。
如何获得一年中每个月的销售总值?
如何获得双休日的销售情况?
如何获得每星期的销售情况?
如何获得每年端午节或其他农历节的销售情况?

总之,我们会有很多的与时间相关的分析,如果按上面的一个“时间”字段,要分析这些,恐怕将非常困难。也不是不可以分析,只是分析的工作量将非常具大,因此我们如果是要做这种类型的分析系统,那么应该充分考虑数据仓库中提到的“时间维度”。

也就是单独定义一个表来作“时间维度表”,在销售时记录此“时间维度表”的主键值作为外键关联,而这个“时间维度表”上,我们可以定义N多的时间属性,如:星期,周,月,年,是否周末,是否法定节日,农历,等等。如图:

通过这样的“时间维度表”,那么对上面的时间分析,我们将变的异常简单了,而且如果有一天遇到时间扩展信息,也可以直接在“时间维度表”中添加字段,而不是修改“订单表”。

其实上面我提到的时间概念,是指的日期,也就是年-月-日,如果有的系统要对Time时间进行分析的话,那么不应该把日期Date与时间Time放在一个“时间维度表”处理,因为这将使“时间维度表”记录以几何级倍数增大,而应该是采用另一个“Time的维度表”来处理。

当然了,这是在必要的系统中才会考虑这个“时间维度”的,因为如果系统不需要这些分析的话,使用“时间维度”会增加系统很大的复杂度。

大家应该根据实际的系统情况来分析。

系统设计之时间维度[数据仓库]相关推荐

  1. 数据仓库开发之路--时间维度的创建

    数据仓库开发之路--时间维度的创建 http://www.cnblogs.com/wuhuacong/archive/2010/05/19/1738199.html

  2. HBase中的时间维度

    原文链接:http://outerthought.org/blog/417-ot.html 原文是Bruno Dumon在一年前写的,现在看了还是有很多启发,因此简单的翻译一下,可能有理解不准确的地方 ...

  3. BI神器Power Query(12)-- PQ创建时间维度表(1)

    Power Query支持数据模型,可以将多种数据添加到数据模型,然后建立关联关系并进行后续分析.有些时候会使用类似于数据仓库星形模型的方式进行关联,这里常用的两类表为维度表和事实表.维度表是维度属性 ...

  4. python使用matplotlib可视化间断条形图、使用broken_barh函数可视化间断条形图、可视化定性数据的相同指标在时间维度上的差异

    python使用matplotlib可视化间断条形图.使用broken_barh函数可视化间断条形图.可视化定性数据的相同指标在时间维度上的差异 目录 python使用matplotlib可视化间断条 ...

  5. pandas使用resample进行不同粒度下的时间特征重构实战:构建时间维度统计特征

    pandas使用resample进行不同粒度下的时间特征重构实战:构建时间维度统计特征 Pandas中的resample,重新采样,是对原样本重新处理的一个方法,是一个对常规时间序列数据重新采样和频率 ...

  6. 让模糊图片变视频,找回丢失的时间维度,MIT这项新研究简直像魔术

    晓查 发自 凹非寺 量子位 报道 | 公众号 QbitAI 在拍照时我们常常会遇到这样的苦恼:由于设置的快门时间太长,快速运动的物体会在身后产生严重的拖影. 除非是为了特殊的艺术效果,一般来说这张照片 ...

  7. Kettle使用_17 计算器生成时间维度数据

    Kettle使用_17 计算器生成时间维度数据 需求: 通过Kettle的组件自动生成时间维的数据. 解决方法:结合增加序列.计算器.选择字段等组件解决,这里主要是通过计算器里的支持的计算类型来实现的 ...

  8. 实现运动轨迹_【自动驾驶】运动规划丨速度规划丨时间维度

    运动规划是自动驾驶技术栈中的关键一步,负责把上游的孤立.异构.模糊的多方面信息整合成自洽的运动轨迹(trajectory):好的轨迹需要满足多方面的要求,其中最重要的方面包括安全性(safety)和舒 ...

  9. mysql日期纬度表_mysql中生成时间维度表

    mysql中生成时间维度表 利用mysql常用日期函数生成时间维度表,效率最高,最简单,无需其他的一些工具支持.生成结果示例如下图: # time span SET @d0 = "2012- ...

  10. kettle时间维度_MySQL快速生成时间维度表

    MySQL快速生成时间维度表: MySQL里面生成一张时间维度表,用于ETL工具使用.

最新文章

  1. 深度学习在目标视觉检测中的应用进展与展望
  2. s:textfield format date
  3. 利用 Bootstrap 进行快速 Web 开发
  4. oracle ora-01001,ORA-01001 and ORACLE游标
  5. leetcode516. 最长回文子序列(动态规划)
  6. 使背景图片适应不同分辨率电脑
  7. C++对象的内存分布和虚函数表
  8. QQ音乐(15.9.0)去广告绿色版
  9. creo绘图属性模板_最好用的工程图格式文件及建模模板文件
  10. 主流安全大漏洞:隐私空间泄密
  11. 西安恒智小寨java_长安反编译工具 java
  12. IM互通新方案-GTalk to VoIP回拨服务
  13. java毕业设计——基于java+Spring+JSP的宠物网站设计与实现(毕业论文+程序源码)——宠物网站
  14. vue-cli: v-on事件绑定 的用法
  15. 由2022的数学奥林匹克竞赛(IMO)说起
  16. 如果给video标签动态写入视频?
  17. mysql自定义自增序列
  18. 非常可乐(HDU-1495)
  19. [创业之路-48] :动态股权机制 -3- 静态股权分配 VS 动态股权分配
  20. 【计算机视觉基础】MATLAB程序实现图像中两个像素点的8-邻域、欧几里得距离与出租车距离、互换两像素点的罗森菲尔德8-邻域像素值

热门文章

  1. Gym 100015A
  2. 一种简单的业务数据监控告警设计方案
  3. 深度学习之学习(1-3)Bag of Features (BOF)图像检索算法
  4. mysql中ai是什么意思_MySQL explain用法
  5. VM虚拟机下如何和Windows主机共享文件夹
  6. LSD-slam算法原理
  7. Python基础知识day2
  8. MyBatis的高频面试题
  9. 整数有约 | 非夕科技:用自适应机器人,做通用智能时代的硬核引领者
  10. Symantec Endpoint Protection 14.3 RU3 (macOS, Linux, Windows) - 端点安全解决方案