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

          ??? 由于項目需要,今天開始接觸OLAP(Online Analytics Process, 聯機分析處理)。說到OLAP,不能不用窮人通用的Mondrian。Mondrian官方網站(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.
          ???? 說白了,Mondrian是一個OpenSource的基于關系數據庫的分析服務器,遵循MDX、XML/A和JOLAP標準。

          ·架構

          ??
          ??Mondrian從架構上可以分為四個層次:表現層、計算層、聚合層、存儲層。
          ??計算層:分析、驗證、執行MDX語句,?先計算坐標軸,然后再計算每個單元格的值,從效率上的考慮,計算層批量從聚合層獲取單元格數據集合。
          ??聚合層:聚合層中緩存了多維查詢結果,即單元格的數據集合,如果計算層所需要的數據不在緩存中,從存儲層中進行查詢獲取數據并緩存。
          ??存儲層:采用關系數據庫實現,一般采用星型模型構建,提供維表、事實表和聚合表。
          ??系統部署結構上,可以分三層結構分開部署,將表現層部署在一臺機器上,計算層和聚合層部署在第二臺,存儲層部署在第三臺。

          ·存儲和聚合

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

          ·初次使用

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

          ??? 關于具體如何使用,請關注我的下一篇文章 :-)


          PS:? 歷史上的Mondrian

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

          ImageImageImageImage

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

          FeedBack:
          # re: Mondrian之初體驗
          2007-08-07 13:36 | bym0909
          很好!我想多了解寫mondrian架構層次方面更多的東西!
          因為我只想使用計算層、聚合層部分。
          以及 和存儲之間的結合。
          期待作者的精彩繼續。
          要是 有好建議 或者 好資料,發給我哈。
          sonic200015@sohu.com   回復  更多評論
            
          # re: Mondrian之初體驗
          2007-08-08 13:37 | 小雪飛刀
          @bym0909
          我對Mondrian也是初涉皮毛,大家共同研究。:)
            回復  更多評論
            
          # re: Mondrian之初體驗
          2007-12-27 16:04 | @wdmcln
          初涉mondrian,配置的時候,想按照自己的的數據庫,例如:oracle/sqlserver2005此類的數據庫,tomcat中設置了數據源,可還是報錯!
          可以交流交流?  回復  更多評論
            
          # re: Mondrian之初體驗
          2007-12-27 16:05 | @wdmcln
          初涉mondrian,配置的時候,想按照自己的的數據庫,例如:oracle/sqlserver2005此類的數據庫,tomcat中設置了數據源,可還是報錯!
          可以交流交流?
          wdmcln@hotmail.com
          wdmcln@gmail.com  回復  更多評論
            
          # re: Mondrian之初體驗
          2007-12-27 17:01 | 小立飛刀
          @wdmcln
          需要您在工程的 $\WEB-INF\mondrian.properties中配置數據庫。
          以Oracle 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  回復  更多評論
            
          # re: Mondrian之初體驗[未登錄]
          2008-06-17 15:58 | 小白
          博主你好
          我剛在看mondrian,編譯例子時遇到這么個問題:NoClassDefFoundError: org/eigenbase/xom/XOMUtil ?
          我試過許多不同版本的mondrian都有這個問題
          請問那個eigenbase包是什么,能在哪里下到
          直接引用進去能解決問題嗎?
          望能賜教,多謝了
          我郵箱是hkharryking@gmail.com  回復  更多評論
            
          # re: Mondrian之初體驗
          2008-06-17 17:05 | 小立飛刀
          @小白
          沒遇到過您的問題,看起來應該是缺少Jar包,在www.docjar.com上找找看。  回復  更多評論
            
          # re: Mondrian之初體驗[未登錄]
          2009-04-27 15:51 | 無名
          不知道這是你引用別人的,還是別人引用你的。 一個字都沒有更改的。  回復  更多評論
            

          只有注冊用戶登錄后才能發表評論。


          網站導航:
          博客園   IT新聞   Chat2DB   C++博客   博問  
           
          <2007年7月>
          24252627282930
          1234567
          891011121314
          15161718192021
          22232425262728
          2930311234

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

          常用鏈接

          留言簿(12)

          隨筆分類(43)

          相冊

          收藏夾(7)

          朋友的博客

          電子資料

          搜索

          •  

          積分與排名

          • 積分 - 302878
          • 排名 - 192

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 乌苏市| 商城县| 新余市| 甘肃省| 南宫市| 靖州| 晋中市| 廊坊市| 双鸭山市| 卫辉市| 铜陵市| 阜城县| 蒲江县| 陵水| 肇州县| 龙山县| 读书| 平湖市| 淮阳县| 区。| 呼玛县| 中牟县| 紫金县| 德钦县| 汉源县| 措美县| 呈贡县| 营口市| 乐昌市| 罗源县| 大田县| 内丘县| 崇信县| 唐海县| 鄂温| 巴塘县| 苏尼特左旗| 瓦房店市| 松潘县| 卓资县| 化州市|