系统设计之时间维度[数据仓库]
http://www.cnblogs.com/tintown/archive/2005/08/29/225606.html
在系统设计中,我们一般会考虑时间,但我们很少会正式意义上去分析时间,我现在从数据仓库的角度来分析一下,“时间”作为一个“维度”时,应该如何设计。
我们绝大部分的系统都只考虑业务型的,也就是系统的运行,而作为一个大型的系统来说,“数据分析”才是关键,因此,要把系统设计成具有“分析”,也可能称之为“数据挖掘”(当然数据挖掘的概念并不仅仅于此),这种具有“分析”功能的系统,可以称之为“决策辅助系统”。
这种系统的不同点就是重点在系统的分析决策上,那么对数据的分析就尤其重要,其实的都先不讲,先要看一下“时间维度”,时间在我们的系统中应该是一个最常用到的维度了。
一般的系统中,我们只会加个“生成日期”或“订单日期”的字段,也就是在这样的系统中,我们对时间强调不深,只要记录具体的“时间”就可以了,只会用一个字段来记录,那么我们来提几个问题:
如何获得一周中各天的销售值?想分析一下一周中哪一天销售量比较高。
如何获得一年中每个月的销售总值?
如何获得双休日的销售情况?
如何获得每星期的销售情况?
如何获得每年端午节或其他农历节的销售情况?
总之,我们会有很多的与时间相关的分析,如果按上面的一个“时间”字段,要分析这些,恐怕将非常困难。也不是不可以分析,只是分析的工作量将非常具大,因此我们如果是要做这种类型的分析系统,那么应该充分考虑数据仓库中提到的“时间维度”。
也就是单独定义一个表来作“时间维度表”,在销售时记录此“时间维度表”的主键值作为外键关联,而这个“时间维度表”上,我们可以定义N多的时间属性,如:星期,周,月,年,是否周末,是否法定节日,农历,等等。如图:
通过这样的“时间维度表”,那么对上面的时间分析,我们将变的异常简单了,而且如果有一天遇到时间扩展信息,也可以直接在“时间维度表”中添加字段,而不是修改“订单表”。
其实上面我提到的时间概念,是指的日期,也就是年-月-日,如果有的系统要对Time时间进行分析的话,那么不应该把日期Date与时间Time放在一个“时间维度表”处理,因为这将使“时间维度表”记录以几何级倍数增大,而应该是采用另一个“Time的维度表”来处理。
当然了,这是在必要的系统中才会考虑这个“时间维度”的,因为如果系统不需要这些分析的话,使用“时间维度”会增加系统很大的复杂度。
大家应该根据实际的系统情况来分析。
系统设计之时间维度[数据仓库]相关推荐
- 数据仓库开发之路--时间维度的创建
数据仓库开发之路--时间维度的创建 http://www.cnblogs.com/wuhuacong/archive/2010/05/19/1738199.html
- HBase中的时间维度
原文链接:http://outerthought.org/blog/417-ot.html 原文是Bruno Dumon在一年前写的,现在看了还是有很多启发,因此简单的翻译一下,可能有理解不准确的地方 ...
- BI神器Power Query(12)-- PQ创建时间维度表(1)
Power Query支持数据模型,可以将多种数据添加到数据模型,然后建立关联关系并进行后续分析.有些时候会使用类似于数据仓库星形模型的方式进行关联,这里常用的两类表为维度表和事实表.维度表是维度属性 ...
- python使用matplotlib可视化间断条形图、使用broken_barh函数可视化间断条形图、可视化定性数据的相同指标在时间维度上的差异
python使用matplotlib可视化间断条形图.使用broken_barh函数可视化间断条形图.可视化定性数据的相同指标在时间维度上的差异 目录 python使用matplotlib可视化间断条 ...
- pandas使用resample进行不同粒度下的时间特征重构实战:构建时间维度统计特征
pandas使用resample进行不同粒度下的时间特征重构实战:构建时间维度统计特征 Pandas中的resample,重新采样,是对原样本重新处理的一个方法,是一个对常规时间序列数据重新采样和频率 ...
- 让模糊图片变视频,找回丢失的时间维度,MIT这项新研究简直像魔术
晓查 发自 凹非寺 量子位 报道 | 公众号 QbitAI 在拍照时我们常常会遇到这样的苦恼:由于设置的快门时间太长,快速运动的物体会在身后产生严重的拖影. 除非是为了特殊的艺术效果,一般来说这张照片 ...
- Kettle使用_17 计算器生成时间维度数据
Kettle使用_17 计算器生成时间维度数据 需求: 通过Kettle的组件自动生成时间维的数据. 解决方法:结合增加序列.计算器.选择字段等组件解决,这里主要是通过计算器里的支持的计算类型来实现的 ...
- 实现运动轨迹_【自动驾驶】运动规划丨速度规划丨时间维度
运动规划是自动驾驶技术栈中的关键一步,负责把上游的孤立.异构.模糊的多方面信息整合成自洽的运动轨迹(trajectory):好的轨迹需要满足多方面的要求,其中最重要的方面包括安全性(safety)和舒 ...
- mysql日期纬度表_mysql中生成时间维度表
mysql中生成时间维度表 利用mysql常用日期函数生成时间维度表,效率最高,最简单,无需其他的一些工具支持.生成结果示例如下图: # time span SET @d0 = "2012- ...
- kettle时间维度_MySQL快速生成时间维度表
MySQL快速生成时间维度表: MySQL里面生成一张时间维度表,用于ETL工具使用.
最新文章
- 深度学习在目标视觉检测中的应用进展与展望
- s:textfield format date
- 利用 Bootstrap 进行快速 Web 开发
- oracle ora-01001,ORA-01001 and ORACLE游标
- leetcode516. 最长回文子序列(动态规划)
- 使背景图片适应不同分辨率电脑
- C++对象的内存分布和虚函数表
- QQ音乐(15.9.0)去广告绿色版
- creo绘图属性模板_最好用的工程图格式文件及建模模板文件
- 主流安全大漏洞:隐私空间泄密
- 西安恒智小寨java_长安反编译工具 java
- IM互通新方案-GTalk to VoIP回拨服务
- java毕业设计——基于java+Spring+JSP的宠物网站设计与实现(毕业论文+程序源码)——宠物网站
- vue-cli: v-on事件绑定 的用法
- 由2022的数学奥林匹克竞赛(IMO)说起
- 如果给video标签动态写入视频?
- mysql自定义自增序列
- 非常可乐(HDU-1495)
- [创业之路-48] :动态股权机制 -3- 静态股权分配 VS 动态股权分配
- 【计算机视觉基础】MATLAB程序实现图像中两个像素点的8-邻域、欧几里得距离与出租车距离、互换两像素点的罗森菲尔德8-邻域像素值
热门文章
- Gym 100015A
- 一种简单的业务数据监控告警设计方案
- 深度学习之学习(1-3)Bag of Features (BOF)图像检索算法
- mysql中ai是什么意思_MySQL explain用法
- VM虚拟机下如何和Windows主机共享文件夹
- LSD-slam算法原理
- Python基础知识day2
- MyBatis的高频面试题
- 整数有约 | 非夕科技:用自适应机器人,做通用智能时代的硬核引领者
- Symantec Endpoint Protection 14.3 RU3 (macOS, Linux, Windows) - 端点安全解决方案