posts - 40,  comments - 187,  trackbacks - 0
          ·概述

          ??? 由于項(xiàng)目需要,今天開(kāi)始接觸OLAP(Online Analytics Process, 聯(lián)機(jī)分析處理)。說(shuō)到OLAP,不能不用窮人通用的Mondrian。Mondrian官方網(wǎng)站(http://mondrian.pentaho.org/)給出的定義是 Mondrian is an OLAP server written in Java. It enables you to interactively analyze very large datasets stored in SQL databases without writing SQL.
          ???? 說(shuō)白了,Mondrian是一個(gè)OpenSource的基于關(guān)系數(shù)據(jù)庫(kù)的分析服務(wù)器,遵循MDX、XML/A和JOLAP標(biāo)準(zhǔn)。

          ·架構(gòu)

          ??
          ??Mondrian從架構(gòu)上可以分為四個(gè)層次:表現(xiàn)層、計(jì)算層、聚合層、存儲(chǔ)層。
          ??計(jì)算層:分析、驗(yàn)證、執(zhí)行MDX語(yǔ)句,?先計(jì)算坐標(biāo)軸,然后再計(jì)算每個(gè)單元格的值,從效率上的考慮,計(jì)算層批量從聚合層獲取單元格數(shù)據(jù)集合。
          ??聚合層:聚合層中緩存了多維查詢結(jié)果,即單元格的數(shù)據(jù)集合,如果計(jì)算層所需要的數(shù)據(jù)不在緩存中,從存儲(chǔ)層中進(jìn)行查詢獲取數(shù)據(jù)并緩存。
          ??存儲(chǔ)層:采用關(guān)系數(shù)據(jù)庫(kù)實(shí)現(xiàn),一般采用星型模型構(gòu)建,提供維表、事實(shí)表和聚合表。
          ??系統(tǒng)部署結(jié)構(gòu)上,可以分三層結(jié)構(gòu)分開(kāi)部署,將表現(xiàn)層部署在一臺(tái)機(jī)器上,計(jì)算層和聚合層部署在第二臺(tái),存儲(chǔ)層部署在第三臺(tái)。

          ·存儲(chǔ)和聚合

          ??根據(jù)OLAP服務(wù)器數(shù)據(jù)存儲(chǔ)技術(shù),可以分為ROLAP和MOLAP,Mondrian采用ROLAP技術(shù)。
          ??在ROLAP的多維模型組織和存儲(chǔ)數(shù)據(jù)中,比較常用的方式是星型模式,由一個(gè)事實(shí)表和一組維度表組成。維度必須預(yù)先確定,可以是一般的星型架構(gòu),也可以是比較特殊的父子架構(gòu)、雪花架構(gòu)等。在ORACLE數(shù)據(jù)庫(kù)中,我們能夠按照維度進(jìn)行預(yù)先的統(tǒng)計(jì)、分類、排序,創(chuàng)建大量的實(shí)體化視圖。對(duì)于沒(méi)有實(shí)體化視圖類似功能的數(shù)據(jù)庫(kù),我們也可以創(chuàng)建大量的臨時(shí)聚合表,這樣當(dāng)用戶進(jìn)行比較高級(jí)的分析的時(shí)候,不用訪問(wèn)數(shù)據(jù)量龐大的基礎(chǔ)事實(shí)表,只需要在我們已經(jīng)形成的實(shí)體化視圖或聚合表上作進(jìn)一步的聚合就可以了,這樣能夠大大提高查詢分析的效率,并且減少占用的系統(tǒng)資源。
          ??在使用聚合表方面有一個(gè)關(guān)鍵的技術(shù)稱之為"聚合感知"技術(shù),只有OLAP引擎必須能夠根據(jù)多維查詢中的維度信息,從適當(dāng)?shù)木酆媳碇刑崛?shù)據(jù),否則聚合表形同虛設(shè)。另外在多維模型設(shè)計(jì)中,設(shè)計(jì)正確的聚合表也是很關(guān)鍵的。不恰當(dāng)?shù)脑O(shè)計(jì)導(dǎo)致將聚合表的不能滿足多維查詢的需求,每次從事實(shí)表取數(shù)據(jù),開(kāi)銷是非常大的。
          ??Mondrian采用關(guān)系數(shù)據(jù)庫(kù)存儲(chǔ)事實(shí)表,其本身不具有"聚合感知"的技術(shù),當(dāng)需要從比較明細(xì)的事實(shí)表中匯總數(shù)據(jù)時(shí),性能就比較差了。但是如果關(guān)系數(shù)據(jù)庫(kù)能夠支持實(shí)體化視圖或其他聚合技術(shù),那么就可以利用關(guān)系數(shù)據(jù)庫(kù)的技術(shù)透明的提高系統(tǒng)性能。我們可以利用Oracle實(shí)體化視圖來(lái)提高M(jìn)ondrian的效率。?

          ·初次使用

          ?? 從SourceForge上下載了mondrian-2.3.2.8944版(http://sourceforge.net/project/showfiles.php?group_id=35302),解壓得到了里面的demo war包,自己搭建環(huán)境使用了一下Mondrian。下面的截圖是我運(yùn)行得到的結(jié)果:
          mondrian.bmp

          ??? 關(guān)于具體如何使用,請(qǐng)關(guān)注我的下一篇文章 :-)


          PS:? 歷史上的Mondrian

          ??? Mondrian,蒙得里安·皮特,1872-1944荷蘭畫家,作品以交錯(cuò)的三原色為基色的垂直線條和平面為特點(diǎn),他的著作包括新造型主義(1920年),對(duì)抽象藝術(shù)的發(fā)展曾經(jīng)產(chǎn)生很深影響。
          ? 以下為這位藝術(shù)家的幾幅作品:

          ImageImageImageImage

          posted on 2007-07-04 18:05 小立飛刀 閱讀(4172) 評(píng)論(8)  編輯  收藏 所屬分類: Mondrian OLAP

          FeedBack:
          # re: Mondrian之初體驗(yàn)
          2007-08-07 13:36 | bym0909
          很好!我想多了解寫mondrian架構(gòu)層次方面更多的東西!
          因?yàn)槲抑幌胧褂糜?jì)算層、聚合層部分。
          以及 和存儲(chǔ)之間的結(jié)合。
          期待作者的精彩繼續(xù)。
          要是 有好建議 或者 好資料,發(fā)給我哈。
          sonic200015@sohu.com   回復(fù)  更多評(píng)論
            
          # re: Mondrian之初體驗(yàn)
          2007-08-08 13:37 | 小雪飛刀
          @bym0909
          我對(duì)Mondrian也是初涉皮毛,大家共同研究。:)
            回復(fù)  更多評(píng)論
            
          # re: Mondrian之初體驗(yàn)
          2007-12-27 16:04 | @wdmcln
          初涉mondrian,配置的時(shí)候,想按照自己的的數(shù)據(jù)庫(kù),例如:oracle/sqlserver2005此類的數(shù)據(jù)庫(kù),tomcat中設(shè)置了數(shù)據(jù)源,可還是報(bào)錯(cuò)!
          可以交流交流?  回復(fù)  更多評(píng)論
            
          # re: Mondrian之初體驗(yàn)
          2007-12-27 16:05 | @wdmcln
          初涉mondrian,配置的時(shí)候,想按照自己的的數(shù)據(jù)庫(kù),例如:oracle/sqlserver2005此類的數(shù)據(jù)庫(kù),tomcat中設(shè)置了數(shù)據(jù)源,可還是報(bào)錯(cuò)!
          可以交流交流?
          wdmcln@hotmail.com
          wdmcln@gmail.com  回復(fù)  更多評(píng)論
            
          # re: Mondrian之初體驗(yàn)
          2007-12-27 17:01 | 小立飛刀
          @wdmcln
          需要您在工程的 $\WEB-INF\mondrian.properties中配置數(shù)據(jù)庫(kù)。
          以O(shè)racle DB為例:
          #For Oracle DB
          mondrian.test.connectOracle=Provider=mondrian; Jdbc=jdbc:oracle:thin:@%Ur_IP%:1521:%Ur_DB_Name%; JdbcUser=%User_Name%; JdbcPassword=%User_Pwd%; Catalog=file:///%Ur_Tomcat_Path%/webapps/mondrian/WEB-INF/queries/mondriantest.xml; JdbcDriver=oracle.jdbc.driver.OracleDriver  回復(fù)  更多評(píng)論
            
          # re: Mondrian之初體驗(yàn)[未登錄](méi)
          2008-06-17 15:58 | 小白
          博主你好
          我剛在看mondrian,編譯例子時(shí)遇到這么個(gè)問(wèn)題:NoClassDefFoundError: org/eigenbase/xom/XOMUtil ?
          我試過(guò)許多不同版本的mondrian都有這個(gè)問(wèn)題
          請(qǐng)問(wèn)那個(gè)eigenbase包是什么,能在哪里下到
          直接引用進(jìn)去能解決問(wèn)題嗎?
          望能賜教,多謝了
          我郵箱是hkharryking@gmail.com  回復(fù)  更多評(píng)論
            
          # re: Mondrian之初體驗(yàn)
          2008-06-17 17:05 | 小立飛刀
          @小白
          沒(méi)遇到過(guò)您的問(wèn)題,看起來(lái)應(yīng)該是缺少Jar包,在www.docjar.com上找找看。  回復(fù)  更多評(píng)論
            
          # re: Mondrian之初體驗(yàn)[未登錄](méi)
          2009-04-27 15:51 | 無(wú)名
          不知道這是你引用別人的,還是別人引用你的。 一個(gè)字都沒(méi)有更改的。  回復(fù)  更多評(píng)論
            

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          <2007年12月>
          2526272829301
          2345678
          9101112131415
          16171819202122
          23242526272829
          303112345

          生存或毀滅,這是個(gè)必答之問(wèn)題:是否應(yīng)默默的忍受坎苛命運(yùn)之無(wú)情打擊,還是應(yīng)與深如大海之無(wú)涯苦難奮然為敵,并將其克服。此二抉擇,究竟是哪個(gè)較崇高?

          常用鏈接

          留言簿(12)

          隨筆分類(43)

          相冊(cè)

          收藏夾(7)

          朋友的博客

          電子資料

          搜索

          •  

          積分與排名

          • 積分 - 302798
          • 排名 - 192

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 长乐市| 伊春市| 七台河市| 绥德县| 昔阳县| 策勒县| 喀什市| 奉化市| 高州市| 西畴县| 雷山县| 瓮安县| 淮阳县| 垫江县| 新蔡县| 准格尔旗| 宜川县| 菏泽市| 涞源县| 府谷县| 垦利县| 青龙| 竹山县| 太原市| 老河口市| 连南| 桐柏县| 江北区| 荃湾区| 开原市| 汉川市| 开平市| 绥德县| 石林| 侯马市| 怀来县| 扎兰屯市| 鄂伦春自治旗| 凤凰县| 通山县| 梧州市|