mikean 2008-09-08
在构思和实现童式魔方的过程中,我们都没有去了解过主流olap厂商的实现原理,这几天去集中搜查了一下这方面的资料,却惊讶的发现我们立方体模型的思路和原理竟和MicroStrategy的智能立方体是如此的相似,几乎同出一辙。这种立方体模型也有很好听的名字叫操作型立方体(operational cube),与之对应的叫分析型立方方体(analytical cube),区别在于操作型立方体的实时性更好。
OLAP一般分为MOLAP(Multi-DimensionalOLAP)和ROLAP(RelationalOLAP)两种;
MOLAP产品比较出名的有Cognos的Powerplay、Hyperion的Essbase和微软的AnalysisService,这些产品都是需要专业的数据仓库的;
ROLAP产品有MicroStrategy,它几乎是目前唯一一家还占据一定市场份额的ROLAP产品,ROLAP产品只需要普通的关系型数据库就可以了;为什么需要智能立方体呢?看看MicroStrategy是怎么描述的:
为了实现立方体分析的功能,大多数的OLAP供应商使用定制的专用的立方体数据库。这种技术就是人们熟知的多维OLAP(或称MOLAP)。不幸的是,立方体数据库的数据容量非常小——连真正关系型数据库的容量的万分之一都不到,因为这种技术并不能支撑真正的关系型数据库的数据容量。尽管如此,由于大多数早期的部门级别BI应用只需要10MB到100MB的详细数据和汇总数据,因此人们在最初并没有意识到这种数据容量上的限制是一个问题。当公司发现需要部署上百个重叠的立方体来涵盖所有的数据子集的组合、汇总级别和跨应用的多用户组安全权限的需要时,立方体数据容量限制的问题就出现了。这些不断增长的立方体的堆积已经成为人们所熟知的“立方体农场(Cubefarms)”。这种立方体农场给IT部门带来了极大的负担,他们不得不生成新的立方体,预先计算汇总数据,分发这些立方体给用户,并清除数据已经过时的立方体。
与此相比,MicroStrategy通过采用人们熟知的关系型OLAP(或称ROLAP)技术把关系型数据库建模成为“虚拟多维立方体(virtualmultidimensionalcube)”来实现OLAP功能。MicroStrategy的用户拥有同样的分页、旋转、排序、过滤和钻取这些OLAP功能,不同的是它们可以在整个关系型数据库的范围内这样做。用ROLAP技术,用户所要分析的数据总能涵盖最新的数据——这就消除了“什么样的数据能够被分析到”这样的局限,并且用户和安全权限都是一致地依赖于关系型数据库的。早期的MicroStrategy用户就已经可以在整个数据库范围内而不仅仅在一个简单的数据子集上进行分析,唯一的代价是稍慢的响应时间,这就是为什么MicroStrategy要提出智能立方体(IntelligentCube?)解决这一问题的原因。
智能立方体的特性:MicroStrategy智能立方体提供和小型的MOLAP立方体所有同样的OLAP功能,同时拥有只在ROLAP的体系结构下才可以得到增强的可用性。
1.快速的报表分析和操作——立方体分析具有快速执行和增强的切片和切块能力
2.个性化和安全地共享立方体——通过个性化的视图,整个企业范围内的立方体都可以透明和安全地共享
3.自动地创建和同步立方体——在运行中创建立方体,并自动地刷新数据来满足实时分析的需要
4.从汇总数据向详细交易数据任意钻取——从立方体随意无缝钻取到整个数据仓库范围的能力模型只是基本,还有更多的细节需要处理,以后还要多了解MicroStrategy,学习其更细微的功能和处理细节。
童式魔方虽然不是这种模型的第一个产品,但也算是原创吧。
通过原生JS,点击事件,鼠标按下、鼠标抬起和鼠标移动事件,实现3d立方体的拖动旋转,并将旋转角度实时的反应至界面上显示。<input type="text" class="xNum" value="&