﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-扭曲的铅笔-文章分类-BI</title><link>http://www.blogjava.net/naruke/category/22871.html</link><description /><language>zh-cn</language><lastBuildDate>Thu, 31 May 2007 21:58:16 GMT</lastBuildDate><pubDate>Thu, 31 May 2007 21:58:16 GMT</pubDate><ttl>60</ttl><item><title>OLAD基本的概念</title><link>http://www.blogjava.net/naruke/articles/120560.html</link><dc:creator>扭曲的铅笔</dc:creator><author>扭曲的铅笔</author><pubDate>Mon, 28 May 2007 13:49:00 GMT</pubDate><guid>http://www.blogjava.net/naruke/articles/120560.html</guid><wfw:comment>http://www.blogjava.net/naruke/comments/120560.html</wfw:comment><comments>http://www.blogjava.net/naruke/articles/120560.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/naruke/comments/commentRss/120560.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/naruke/services/trackbacks/120560.html</trackback:ping><description><![CDATA[<p align=left><span style="FONT-SIZE: 10pt"><strong>OLAP最基本的概念只有三个：多维观察、数据钻取、CUBE运算。</strong></span></p>
<p style="FONT-SIZE: 10pt">　　关于多维角度：我们在平时工作中，会遇到各种问题，在分析问题的时候，同样的现象，我们会从多个角度去分析考虑，有时我们还会从几个角度综合起来进行分析。这就是<strong>OLAP</strong>分析最基本的概念——从多个观察角度的灵活组合来观察数据，从而发现数据内在规律。</p>
<p style="FONT-SIZE: 10pt">　　<strong>OLAP</strong>将数据分为两种特征，一种为表现特征，比如一个销售分析模型中的销售额、毛利等;还有一种为角度特征，比如销售分析中的时间周期、产品类型、销售模式、销售区域等。前者是被观察的对象，<strong>OLAP</strong>术语称之为&#8220;度量数据&#8221;，后者为观察视角，<strong>OLAP</strong>术语称之为&#8220;维数据&#8221;。</p>
<span style="FONT-SIZE: 10pt">如果建立这样一个模型，我们就可以根据业务需求，从产品类型角度，去观察各个销售地区的销售额数据(以产品类型和销售地区为维、以销售额为度量);或者我们还可以从销售模式的角度，去观察各个销售地区的销售额数据(以销售模式和销售地区为维、以销售额为度量)。</span>
<p style="FONT-SIZE: 10pt">　　关于数据钻取：在分析过程中，我们可能需要在现有数据基础上，将数据进一步细化，以获得更为精确的认识。这就是<strong>OLAP</strong>中数据钻取的概念。</p>
<p style="FONT-SIZE: 10pt">　　比如，在销售分析中，当我们以产品类型和销售地区为维、以销售额为度量进行分析的时候，可能希望进一步观察某类产品的不同销售模式在各个销售地区的表现，这时我们就可以在产品大类这个数据维下面，再加上一个销售模式维，从而获得相应的信息。</p>
<p style="FONT-SIZE: 10pt">　　关于CUBE运算：<strong>OLAP</strong>分析所需的原始数据量是非常庞大的。一个分析模型，往往会涉及数百万、数千万条数据，甚至更多;而分析模型中包含多个维数据，这些维又可以由浏览者作任意的提取组合。这样的结果就是大量的实时运算导致时间的延滞。</p>
<p style="FONT-SIZE: 10pt">　　我们可以设想，一个1000万条记录的分析模型，如果一次提取4个维度进行组合分析，那么实际的运算次数将达到4的1000次方的数量。这样的运算量将导致数十分钟乃至更长的等待时间。如果用户对维组合次序进行调整，或增加、或减少某些维度的话，又将是一个重新的计算过程。</p>
<p style="FONT-SIZE: 10pt">　　从上面的分析中，我们可以得出结论，如果不能解决<strong>OLAP</strong>运算效率问题的话，<strong>OLAP</strong>将是一个毫无实用价值的概念。那么，一个成熟产品是如何解决这个问题的呢?这涉及到<strong>OLAP</strong>中一个非常重要的技术——数据CUBE预运算。</p>
<p style="FONT-SIZE: 10pt">　　一个<strong>OLAP</strong>模型中，度量数据和维数据我们应该事先确定，一旦两者确定下来，我们可以对数据进行预先的处理。在正式发布之前，将数据根据维进行最大限度的聚类运算，运算中会考虑到各种维组合情况，运算结果将生成一个数据CUBE，并保存在服务器上。</p>
<p style="FONT-SIZE: 10pt">　　这样，当最终用户在调阅这个分析模型的时候，就可以直接使用这个CUBE，在此基础上根据用户的维选择和维组合进行复运算，从而达到实时响应的效果。</p>
<img src ="http://www.blogjava.net/naruke/aggbug/120560.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/naruke/" target="_blank">扭曲的铅笔</a> 2007-05-28 21:49 <a href="http://www.blogjava.net/naruke/articles/120560.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>