雙子星座

           

          置頂隨筆

          [置頂]eclipse enropa 即將發布 birt 的新功能一覽

                                  eclipse enropa 即將發布 birt 的新功能一覽
          最新的eclipse enropa 即將在6月29號發布了.官方說會有21個項目同時發布.其中我只關心三個項目.一個是WTP , 一個是TPTP 最后一個是BIRT .
          我看了一下BIRT 所增加的新功能,從2.2M4 開始
          http://www.eclipse.org/birt/phoenix/project/notable2.2M4.php
          http://www.eclipse.org/birt/phoenix/project/notable2.2M5.php
          http://www.eclipse.org/birt/phoenix/project/notable2.2M6.php
          http://www.eclipse.org/birt/phoenix/project/notable2.2RC0.php


          2.2 M4
          1 . 和WTP集成的BIRT Tag .
          2 . Word Emitter                 支持WORD 的 emitter . (emitter 翻譯是發射,我想應該是可以預覽和打印的輸出格式吧)
          3 . XML Source Editor            支持xml 格式的編輯器
          4 . Property Editor Changes
          5 . Highlight Style              對于特定條件的Item 進行高亮顯示.

          2.2 M5
          1 . BIRT Chart Improvements             
          2 . Viewer Improvements
          3 . Emitters                   增強了PDF 的emitters
          4 . Advanced Properties        現在可以顯示所有的屬性了.

          2.2 M6
          1 . BIRT Chart Improvements    新增加了一種chart tag library 和chart view servlet
          2 . XLS Emitter Prototype      新增加了一種XLS 輸出的格式
          3 . Linking Cascading Style Sheets      情理之中的事情
          4 . BIRT Viewer Changes        
          5 . Report Examples View        新提供了一些example,提供給初學者和想了解birt新功能的愛好者.
          6 . Dynamic Connection Profiles 動態的數據源鏈接
          7 . Report Parameter Changes    增加了一種組合框的parameter view.類似與選省份和城市的那種雙選框.

          2.2 RC0
          1 . Web Service ODA             新增加的Web Service 的數據源.可以支持像ebay , amazon的那種Web Service 的數據了.
          2 . Charting Improvements       新增加使用script 來處理chart的事件.好像是用的javascript.
          3 . PPT Emitter                 新增加對Power Point  的emitter.
          4 . Dynamic Crosstab Support    
              這是最讓我激動的功能.完全就是OLAP的功能的一部分.Palo的demo中,是通過一個Excel 的Plug-in,是excel 支持olap的,不過它不能跨平臺,甚至連excel 都跨不出去,
              而birt提供的這個功能更加的強大.而且很容易就能夠實現,定制化也比較強(就是說它提供API ,讓你自己編程實現這些功能).
              
          一下子看到BIRT太多的功能了,希望能夠正式發布的時候birt能夠比較穩定吧.


          沒有找到WTP2.0 和 TPTP 4.3 的新功能列表.
          其中我只關心在TPTP 4.2.2 Callisto 中的TPTP經常性的Block 的Issue 解決了沒有.
          同樣希望TPTP也能夠穩定吧。功能倒是其次. java 中profiler 工具倒是不少,可是大多好的都是商業的,難得有一個這么好的開源的版本,要是bug問題不解決就不好了.

          聽說eclipse 的SOA 建模工具第一次發布.我倒是不關心,目前還是把精力focus birt上了,覺得eclipse 本身可能已經沒有太多新功能發展了,主要就是把plugin 做好,
          然后想辦法能夠解決plugin 之間版本的兼容性問題就夠了. 最近也試用了一下NetBean ,沒有深入用,還是有點失望的,希望NetBean 的堅定擁護者不要扁我. 字體丑,界面丑
          也就算了,但是跑出來嚇人就是你的不對了嘛! 丑也就算了,速度也稍微慢一點(我說的是稍微).本來想看一下它的Porfiler 功能怎么樣的,后來還是算了,畢竟自己沒打算
          用.就算是自己沒有深入用過,不懂吧,亂說了話,希望不要引起Netbean 支持者的海扁.

          最近在collab下載svn 的時候無意中看到了它的svn enterprise 版的.其中有一個是支持eclipse 的 Mylyn 插件的(21個項目其中一個),做項目管理的.不知道eclipse 搞
          Mylyn 是不是有打算進入項目管理領域 . 它居然還是2.0版.不知道有哪位用過.

          最近使用firefox的時候 ,有時候打開一個網頁莫名其妙的就firefox 掛掉了,也不是真的掛了,就是有時候等個2分鐘它又好了,有時候firefox整個不見了,但是進程里面
          它還在,你點開一個新的firefox  然后兩個人就手拉手的都跑出來了. 不知道是不是大家也有遇到過相同情況的. 裝了Opera , firefox 掛掉的時候就用Opera , 里面有一個
          打電話的功能我覺得倒是非常的有意思,創意呀! 不希望firefox 獨大 , 也不希望eclipse 獨大 ,更不希望Microsoft 獨大 , 同樣不希望 Intel 獨大(AMD hold on) .
          有競爭才能推動發展嘛.

          最近在msn 上認識了許多朋友. 有一位跟我聊起了JBoss , 我對JBoss 的認識還停留在JBoss 服務器上.后來聽他說才知道JBoss 已經發展了一套完整的J2EE 框架了,包括很多
          方面,才恍然大悟 原來現在中間件這么重要. Red Hat 跟exadel 結盟要推新的SOA 工具,好像SOA是很火的,不過還是認為如果公司不是做SOA 的,學SOA 沒有什么用.
          SOA 要在中國成熟還要很多年的.那時候都不知道是個什么樣子了.不過將來一個公司面對使用多種操作系統,多種數據庫,多種軟件平臺,多種編程語言,總會需要一個框架
          來解決這些問題的,就算SOA 成功了也好,SOA 失敗了也好,需求總是會有的.還是等SOA 成熟了再觀望一下吧, 廣告看看還可以,要真掏錢出來還是要謹慎的。
          純屬個人認識,說的不對還請高手指點.

          寫的比較雜,就當是看八卦吧.

          最近學習Birt ,主要是它的新功能.然后還是準備學會如何在pentaho里面集成 birt 吧.希望能夠和birt 愛好者,尤其是高手一起交流.

           

          posted @ 2007-06-17 16:33 gemini 閱讀(461) | 評論 (0)編輯 收藏

          [置頂] 商業智能研究(十四) mondrian + oracle 部署foodmart demo

               摘要:   閱讀全文

          posted @ 2007-06-10 18:56 gemini 閱讀(1167) | 評論 (0)編輯 收藏

          [置頂] 商業智能研究 (十三) oracle warehouse 一些基本概念

               摘要:   閱讀全文

          posted @ 2007-06-09 21:54 gemini 閱讀(622) | 評論 (0)編輯 收藏

          [置頂]在tomcat上部署pentaho 1.5.3

          最近一直在做mondrian的foodmart的實驗,有位朋友的公司要部署一個pentaho的demo來做演示,我跟他說直接運行demo就可以 了,但是他們公司非要自己從頭配一個,所以我就自己做了一下實驗基于最新的1.5.3的,其實步驟都差不多,其他版本也應該可以,希望能給喜歡 pentaho的朋友一點幫助。

          1 . 首先需要下載pentaho-j2ee-deployment- , pentaho-data- 和 pentaho-solution- 三個包,分別解壓到三個不同的地方
          2 . 從命令行進入pentaho-j2ee-deployment 目錄,運行ant -p 會列出所有的ant 任務,執行war-pentaho-tomcat-hypersonic任務,成功之后會生成4個war包,pentaho-portal- layout.war , pentaho-style.war 和 sw-style.war ,(sw-style.war 是steel-wheel-style ,是可選項,可能是pentaho的一個例子或者是pentaho的一種style風格),還有多出一個tomcat目錄下的hsqldb目錄下有一個 pentaho.war ,如果你執行的是war-pentaho-mysql就是在tomcat目錄下有個mysql5目錄,里面一樣是pentaho.war.我選用的是 hsqldb .
          3 . 在你的tomcat的安裝目錄下找到conf / server.xml 文件,在其中的host 元素下加上如下這一段,這一段是從pentaho的文檔里面抄來的,manual-deployment-pentaho- ,其中它列出來的有些多余,這個文檔應該使用confluence 用pdf 方式導出的,抄的時候注意檢查一下xml 元素排版上的問題.它列出的resource 元素太多了,你查看pentaho-data- 包里面,應該只有四個數據庫hibernate,sampledata,shark,quartz ,把不用的resource元素都刪掉,(應該是最上面的四個).如果你的tomcat啟動不了了,檢查一下你添加的部分是不是有錯。


           1 
           2 <Context path="/pentaho" docbase="webapps/pentaho/">
           3     <Resource name="jdbc/SampleData" auth="Container"
           4         type="javax.sql.DataSource" maxActive="20" maxIdle="5" maxWait="10000"
           5         username="pentaho_user" password="password"
           6         factory="org.apache.commons.dbcp.BasicDataSourceFactory"
           7         driverClassName="org.hsqldb.jdbcDriver"
           8         url="jdbc:hsqldb:hsql://localhost/sampledata" />
           9     <Resource name="jdbc/Hibernate" auth="Container"
          10         type="javax.sql.DataSource"
          11         factory="org.apache.commons.dbcp.BasicDataSourceFactory"
          12         maxActive="20" maxIdle="5" maxWait="10000" username="hibuser"
          13         password="password" driverClassName="org.hsqldb.jdbcDriver"
          14         url="jdbc:hsqldb:hsql://localhost/hibernate" />
          15     <Resource name="jdbc/Quartz" auth="Container"
          16         type="javax.sql.DataSource"
          17         factory="org.apache.commons.dbcp.BasicDataSourceFactory"
          18         maxActive="20" maxIdle="5" maxWait="10000" username="pentaho_user"
          19         password="password" driverClassName="org.hsqldb.jdbcDriver"
          20         url="jdbc:hsqldb:hsql://localhost/quartz" />
          21     <Resource name="jdbc/Shark" auth="Container"
          22         type="javax.sql.DataSource"
          23         factory="org.apache.commons.dbcp.BasicDataSourceFactory"
          24         maxActive="20" maxIdle="5" maxWait="10000" username="sa" password=""
          25         driverClassName="org.hsqldb.jdbcDriver"
          26         url="jdbc:hsqldb:hsql://localhost/shark" />
          27 </Context>
          28 



          4 . 把pentaho.war copy到tomcat 的webapps目錄下,它會自動解壓的,然后關閉tomcat , 找到pentaho/WEB-INF/web.xml 文件,找到solution-path元素,指向你解壓后的pentaho-solution- 目錄,注意java里面是用正斜杠 / ,如果你從windows的地址欄copy的話注意把反斜杠改一下.
          5 . 修改pentaho/WEB-INF/classes 目錄下的log4j.xml文件,把   里面的value改成INFO,或者更高,這一步是可選項,主要是啟動的時候出現很多不必要的debug 信息.如果你啟動的時候出錯了,再改回來。(一般都是solution-path沒有找對,我用7-zip解壓的時候老是解壓到一個新的目錄,所以后來指 定 solution-path 的時候,目錄地址高了一級.)
          6 . 啟動pentaho-data- 目錄里面的hsqldb數據庫.
          7 . 這個時候啟動tomcat ,應該是不報任何錯誤的.你把瀏覽器指向http://localhost:8080/pentaho ,會看到pentaho的界面的,只不過是沒有什么顏色的那種.
          8 . 把編譯後的三個war文件copy到tomcat 的webapps目錄下,等它們自動解壓之后,再進去看,發現有了樣式了。安裝就完成了.

          貼幾張圖:
          pentaho成功啟動后應該有 Pentaho BI 平臺服務器就緒 這句話.


          安裝了style 和 portal 包之后的登錄界面


          在pentaho-data- 目錄的lib 目錄下執行java -cp hsqldb.jar org.hsqldb.util.DatabaseManager  出現的hsqldb 的manager 登錄畫面
          用戶名和密碼都在相應目錄的數據庫文件里面,hsqldb的數據庫文件是可以用
          文本編輯器打開的,搜索password就可以找到用戶名和密碼了


          sampledata 里面的數據




          我在安裝的時候也碰到了諸多的問題,
          1 . 一開始編譯的時候使用的ant war-pentaho-tomcat 任務,它直接報錯,說找不到rdbms目錄,后來猜想這個任務應該是留給其他數據庫編譯的時候擴展的.直接就換了war-pentaho-tomcat- hypersonic 任務重新編譯了一次
          2 . 后來從文檔里copy出數據源的那句話出錯了,導致tomcat啟動不了,因為從pdf文件copy的那段話排版有問題,后來把它粘貼到eclipse (裝了WTP插件的)里面,一格式化就看出來了,context 元素和后面的屬性path中間的空格沒了,還有多出來了幾個resource元素.
          3 . 指定solution-path的時候目錄高了一級.
          4 . 啟動tomcat的時候出現了很多不必要的debug信息,修改log4j文件就可以了,它在tomcat/bin 目錄下還會生成幾個log文件,像是server.log 和ReportEngine_.log 文件。


          寫這篇文章的目的更多的是希望喜歡pentaho的朋友在用pentaho做實驗的時候能夠學會思考,出現了問題先在網上找資料,而不是無論遇到什么問題都求別人來回答你,知識是長期積累的過程,新技術總是不斷的出現,比如最近火的不得了的JavaFX,
          也許將來pentaho可能會用JavaFX 來做OLAP 和 DashBoard 也不一定的 。關鍵還是要掌握學習的方法,學會思考問題 . 我安裝的時候也遇到了很多問題,但是只要你細細的分析問題的原因,總是可以找出解決的辦法的.

          posted @ 2007-06-02 18:07 gemini 閱讀(538) | 評論 (0)編輯 收藏

          [置頂]商業智能平臺研究 (十) ETL 選型

          商業智能平臺研究 (十) ETL 選型
          ETL (Extract-Transform-Load的縮寫,即數據抽取、轉換、裝載的過程)作為BI/DW(Business Intelligence)的核心和靈魂,能夠按照統一的規則集成并提高數據的價值,是負責完成數據從數據源向目標數據倉庫轉化的過程,是實施數據倉庫的 重要步驟。如果說數據倉庫的模型設計是一座大廈的設計藍圖,數據是磚瓦的話,那么ETL就是建設大廈的過程。在整個項目中最難部分是用戶需求分析和模型設 計,而ETL規則設計和實施則是工作量最大的,約占整個項目的60%~80%,這是國內外從眾多實踐中得到的普遍共識。

          ETL工具從廠商來分為兩種,一種是數據庫廠商自帶的ETL工具,Oracle warehouse builder 就是這種,另外一種是第三方工具提供商.開源世界也有一大票的ETL工具,功能各異,強弱不一,你可以從一下地址找到開源ETL工具的列表 http://www.manageability.org/blog/stuff/open-source-etl/view  , 提醒一句,選用工具的時候要慎重,真的,千萬要慎重,不管你是選用商業的ETL工具(一般比較貴),還是開源的工具,都要在你充分了解產品的特性才去選 擇,千萬不要聽某某人說什么這個工具好,就購買了那個工具,一定要自己了解產品.

          開源的ETL工具的列表 (排名是亂排的)
          kettle  http://kettle.pentaho.org/  ,pentaho官方的ETL工具,是一個metadata-driven 的ETL工具,不需要自己寫code .
          talend  http://www.talend.com/    talend是talend自己公司的產品,宣傳的是全功能的Data Integration 解決方案,基于eclipse 平臺,包括很多的模塊來實現商業流程建模,數據流程建模,最后輸出的是perl 和 Java code
          jasperETL  http://www.jaspersoft.com/   JasperETL是基于talend的平臺,不太清楚有什么區別,jaspersoft開發的ETL產品.
          Octopus   http://www.enhydra.org/tech/octopus/index.html    octopuc是enhydra 的一個ETL工具,enhydra是一個產品跨度非常大的開源站點,它有個開源的Workflow ,Shark ,pentaho就是使用的這個Workflow ,這個組織從workflow 到application server , 從ETL工具到application framework ,還有一些其他的中間件,octopus非常的原始,支持任何的JDBC數據源,用XML語言來定義的.也支持JDBC-DOBC ,和excel 和 access ,csv-files, XML files ,用Ant 和 JUnit 來創建表和測試.
          CloverETL http://cloveretl.berlios.de/   CloverETL是提供給你一組API,用XML來定義ETL過程,同樣支持JDBC數據源, CloverETL是開源的,但是它是沒有圖形界面的,它提供一個有圖形界面的CloverGUI 來進行ETL的圖形化開發過程,但是不是開源的,需要購買商業許可證.
          KETL   http://www.ketl.org/    聽說是幾個前IBM員工做出來的ETL產品,
          另外還有很多.不一一寫介紹了,只列個表吧,
          Joost        http://joost.sourceforge.net/    最近有個web2.0 網站也叫Joost,名字相同而已.
          Xineo        http://software.xineo.net/xil.jspx
          BabelDoc        http://sourceforge.net/projects/babeldoc
          CB2XML        http://sourceforge.net/projects/cb2xml
          mec-eagle        http://sourceforge.net/projects/mec-eagle/
          Transmorpher        http://transmorpher.inrialpes.fr/
          XPipe        http://xpipe.sourceforge.net/Articles/Miscellaneous/fog0000000018.html
          DataSift        http://www.datasift.org/
          Xephyrus Flume        http://www.xephyrus.com/flume/flume-intro.Prlx
          Smallx        https://smallx.dev.java.net/
          Nux        http://dsd.lbl.gov/nux/index.html
          Netflux        http://www.netflux.org/
          OpenDigger       https://opendigger.dev.java.net/
          ServingXML        http://servingxml.sourceforge.net/
          Scriptella        http://scriptella.javaforge.com/
          ETL Integrator        http://www.glassfishwiki.org/jbiwiki/Wiki.jsp?page=ETLSE
          Jitterbit        http://www.jitterbit.com/
          Apatar        http://www.apatar.com/
          Spring Batch       http://static.springframework.org/spring-batch/

          大多數站點都是在sf.net上的.其中最后一個是Spring的,大名鼎鼎的Spring 也往ETL插一腳.實在是..........
          根據talend官方介紹的數據,ETL工具的市場份額在2006好像是有160多億美元.由于BI項目的成功,ETL的這一市場份額還會擴大,這也不難 理解,為什么這么多的公司都在做ETL工具了.開源世界也免不了想要分一杯羹.再次廢話一句,開源的東西你可以免費得到和使用,但是當你想應用到企業級開 發的時候,省錢可不是唯一應該考慮的因素.還是那句話,慎重呀慎重.

          下一篇介紹BI的基本概念.


          posted @ 2007-05-22 21:41 gemini 閱讀(1503) | 評論 (0)編輯 收藏

          [置頂]商業智能平臺研究(九) ETL 中的數據質量控制

          商業智能平臺研究(九) ETL 中的數據質量控制
          數據質量一直是ETL工具的一個高級特性,為了解釋清楚這個問題,讓我們看看oracle的商業ETL工具Oracle Warehouse Builder 在數據質量上是如何管理的

          oracle在官方網站上有一篇專門介紹如何使用oracle warehouse builder的文章,地址為http://www.oracle.com/technology/pub/articles/rittman-owb.html?
          rssid=rss_otn_articles?msgid=4931461 , 是mark rittman所寫,rittman公司本身也是一個專業的oracle 數據倉庫 和商業智能方面的顧問公司,在oracle 方面非常的有發言權,如果你對oracle和數據倉庫,或者oracle商業智能有興趣的話,可以看一下上面的這篇文章,本文所有圖片引自上面的這篇文 章。


          ETL難以成功有以下幾個難點:
          1 . 數據倉庫的數據來自于多個數據源,所以數據的一致性很難得到保證,很多情況下需要一種硬性的標準來決定數據的取舍問題.
          2 . 數據格式問題,例如數據缺失,超出數據范圍,無效數據格式等等。
          3 . 出現錯誤之后沒有正確的處理問題,導致數據的質量不斷的下降。
          4 . 數據一致性問題,處于數據庫性能考慮,有時候可能會有意的去掉一些外間或者檢查約束。
          5 . 業務邏輯問題.由于數據庫在最初設計時就不夠嚴格和謹慎。

          我們怎么判斷數據的質量好壞的呢,一般用戶拿原有系統的顯示方式查看某一查詢條件的數據與用商業智能報表所產生出來的數據進行對比,看有多大的出入,這個 可能需要原先系統有足夠的能力顯示這些數據并且商業智能工具的報表有足夠強大的查詢和報表展示能力,或者是用商業智能的報表與OLAP運行出來的報表進行 對比,看有多大的出入,出入一般都是會存在的,因為數據不可能完全的準確,但是一定要搞清楚哪里數據出現了問題,并且盡量不要讓這些誤差擴大到用戶無法接 受的地步,否則就認為BI失敗了。(咋同是一個工具做出來的,數據的出入就這么大呢?)



          oracle warehouse builder 提供三個特性來使ETL的過程簡單
          1 . Graphical Data Profiler 可以查看數據的結構,語義,內容,異常,和大綱,數據規則 , 這就是在前一篇說的,kettle的數據管理沒有oracle warehouse builder 強大的特性.kettle也提供查看表結構,column的結構,但是它不會判斷一個column是不是主鍵或外鍵,一個字符串的最小長度是多少,最大長 度是多少,一個整數的長度是多少,一個double的精度是多少。
          2 . Correction Wizard 把數據規則應用到你的ETL過程中,自動映射并更正,清理,轉化數據, 相當于oracle warehouse builder 提供一些默認的值來幫助你更快的創建映射規則,這個功能也比kettle強大。
          3 . Data Auditor 獲取數據規則并監控數據轉換的過程。kettle也提供數據監控的機制,并把log記入下來,并告訴你重復的記錄數,讀寫多少條記錄,更新拒絕多少條記錄,時間,速度,步驟是否成功等信息.

          oracle warehouse builder 提供查看選中表的結構信息和數據信息




          數據歸檔編輯器有很多面板。這些面板顯示已歸檔的對象和歸檔的結果。為了方便解釋,可以將整個面板分成6個部分,分別是左上角的面板(有兩個tab)叫做 1號面板,左邊中間的property面板,叫做2號面板,左下角的monitor面板,叫做3號面板,右上角的Profile Results Canvas 面板(有10個tab),叫4號面板,右邊中間的Data Grid Panal ,叫5號面板,右下角的Data Rule Panal ,叫6號面板。
          1號面板顯示已歸檔的表、視圖、物化視圖(oracle 10g新加的特性)、外部表、維度和事實等對象以及已經創建的任何更正模塊的詳細信息。
          2號面板顯示與數據歸檔關聯的屬性的列表。使用該屬性列表,您可以優化數據歸檔的參數;啟用或禁用某些數據歸檔組件并啟用選定表的數據規則歸檔。
          3號面板是監視器面板。該面板顯示已提交的所有歸檔作業的進度。數據歸檔需要時間,所以可以在后臺完成的作業,同時執行其他 Oracle Warehouse Builder 任務;當作業完成時,Oracle Warehouse Builder 會發出通知,kettle 在執行監控上提供的信息比oracle warehouse builder 多一些,包括速度和時間,還可以看到你啟動多少線程組和線程,線程進行到那一步都顯示的出來。
          4號面板提供最多的信息,所以分成了10格tab,包含大量歸檔結果匯總的tab,
          5號面板顯示數據的統計信息,某一個column出現的值,出現的次數,占的百分比,有了這個功能,如果出現了錯誤的數據,將可以更容易的看到和清除.
          6號面板顯示數據規則.










          其中4號面板有10個tab,其中有幾個tab非常有用.(看上面的圖)
          Data Type tab詳細說明表中每列的列名,數據格式,主要的數據類型,主要的數據類型所占的百分比,數據的長度,最大值和最小值,主要的長度,主要的長度所占的百分 比,類型的精度。其中所謂的主要長度類型在Date那一列為40%,可見有些值為空,它不光列出最小值和最大值,而且還有主要值的長度和它所占百分比,統 計方面功能比較強大,這種初步的數據統計不知道算不算接近于OLAP分析,功能上比kettle強大些.

          Unique Key tab顯示檢測到唯一鍵或主鍵的所有列。該選項卡還顯示唯一值的數量多得足以建議刪除或更正非唯一行時可以定義唯一鍵的列。你可以看到圖中有Six Sigma 列。這是一個 1 到 7 之間的數字,它指明“每千個的缺陷”數量,即對象中未能通過唯一約束的行。

          Profile Object tab 相當于kettle中的 sql 編輯器 ,顯示所有的數據并加上查詢條件。

          Domain tab 為歸檔對象的每列顯示建議的域,以及數據與該域的一致程度。域就是列的一組允許的值,Oracle Warehouse Builder 認為出現兩次或以上值的列就叫域。從圖上看到,PACK_COUNT , PROD_ID , PROD_NAME 都是唯一性比較高的列,所以沒有domain,這個面板同樣也有 Six Sigma 值。



          創建數據轉化規則
          在它給出的例子中,MANUF_COUNTRY的國家列包含Not Known , Canada ,USA , UK 和 Mexico ,它想把所有的England轉化為 UK , 在Product 表中,把所有REORDER_YN為 'N' 的記錄刪掉,并使MARKET_SEGMENT 表的所有值為 ' Economy ' 或 ' Executive ' .

          當你完成了數據規則的建立后,在實際轉換的過程中,有可能出現你沒有考慮到的情況,oracle warehouse builder 提出了三種操作,
          Igore 這個不用解釋吧.
          Report 在一個新建的ERR$$$表中記錄下這條記錄。數據繼續轉化。
          Cleanse 應用轉化規則來清理數據.


          如果沒有什么特殊的原因,一般最好不要使用第一種策略,你即不知道有沒有數據處錯了,也不知道有多少數據出錯了,這樣很容易讓你的數據誤差越來越大,第二 種Report策略能讓我們知道那些數據出錯了,并記錄下來,當我們需要找到數據誤差原因的時候,或者我們需要更正這些數據誤差的時候有依據。當然如果我 們真正的清楚數據轉換規則的話,第三種策略是最好的,把這種誤差消失在ETL的過程之中.

          其中對于應用了數據轉化規則的列,oracle warehouse builder 又提供四種策略來使數據達到我們想要的程度,

          1 . Remove ,把我們認為滿足特定數據條件的數據刪除,例子中就是要把REORDER_YN = Y 的數據刪掉。
          2 . Similarity Match 把不在我們規定的域內的數據自動更改為最接近的值,這個值是oracle 用特定算法算出來的,我不清楚到底是怎么樣的規則。不過我猜是不是按照字典的順序來排序,誰接近就轉化成誰,比如有applet,book ,orange ,如果要轉化book的話,就把book轉化為applet,因為b 開頭的單詞比o 開頭的單詞離的近一些,中文的話可能不會支持吧。當然,這只是我猜的.具體是怎么樣只有問那些高手了.
          3 . Soundex Match oracle有一個函數叫做SOUNDEX , 它是應用以下規則,保留首字母,把所有的元音 a , e , i , o , u 和 w , y 刪掉。把剩下的字符串按如下數字相加
          b , f , p ,v =1
          c, g, j, k, q, s, x, z = 2
          d, t = 3
          l = 4
          m, n = 5
          r = 6
          如果兩個或兩個以上有相同的數字接近原來的值(在第一步之前),或者接近除去h 和 w 的值 , 忽略掉除第一個字母以外的數字. 返回4個字節。格式大概如下:
          SELECT name, SOUNDEX(namecol) FROM test;
          SELECT * FROM test WHERE SOUNDEX(namecol) = SOUNDEX('SMITH');
          以上例子摘自http://www.psoug.org/reference/string_func.html,如果你對算法有疑問可以自己去看看。

          4 . Custom 使用自定義的轉化規則來清理數據,大多數時候都是使用這種方式。例子中的把MANUF_COUNTRY 的 England 轉化為 UK 就是這種情況。


          在你進行數據轉化之后,你對數據的質量滿意了,你可以設置Data Auditor 來監控以后傳入的數據的質量



          Data Auditor 使用定義的數據規則,生成關于數據的一致程度的統計報告,然后將其存儲在錯誤記錄表中。還可以對 Data Auditor 進行編程,指定 Data Auditor 在分數低于一定的閾值后向您發出通知,然后在特定情況運行清理映射來清理數據。運行該清理映射后,可以對 Data Auditor 進行編程,使其僅在設計分數高于特定級別或 Six Sigma 值時才繼續進行余下的 ETL 過程,避免將錯誤數據載入數據倉庫,使數據倉庫的質量能夠得到保證。

          ETL是非常重要的一步,往往一個項目的成敗就是看ETL過程的成功與否.選用一個好的ETL工具會讓項目更加的有信心.

          下一篇介紹ETL的各種工具.


          posted @ 2007-05-22 21:40 gemini 閱讀(627) | 評論 (0)編輯 收藏

          [置頂]商業智能平臺研究(八) ETL 之metadata

          商業智能平臺研究(八)  ETL 之metadata
          metadata
          網上有很多寫metadata的文章,如果覺得我沒有寫清楚,也可以參考一下其他人的文章,
          元數據的定義就是:描述數據的數據,你非要問什么描述元數據,還是元數據本身,UML中也有這種概念,只不過是描述的對象不一樣罷了。

          讓我們解釋的更加通俗易懂一些吧,在javaSE中也有metadata的概念,最早的就算是JavaDoc了,在5.0之后,Annotation就是 大量的使用metadata了,這是關于源代碼的數據,具體來說就是關于Java的類、方法、字段等關聯的附加數據。這些數據可以被Java的編譯器或者 其它工具(比如Java IDE 象eclipse+junit一樣)來發現和使用。
          junit在4.0后也使用了Annotation也算是metadata的一種應用。
          可見metadata并不是什么高不可攀的技術,我們時刻都在使用。

          再來看看metadata在BI系統上的定義吧 , 如果你覺得下面這段話很無聊,請直接跳過下面這段 。
          元數據(Metadata)是關于數據、操縱數據的進程,以及應用程序的結構、意義的描述信息,其主要目標是提供數據資源的全面指南。元數據是描述數據倉 庫內數據結構和建立方法的數據,可將其按用途分為兩類:技術元數據(Technical Metadata)、業務元數據(Business Metadata)和內聯映射元數據(Inter-Mapping Metadata)。
          技術元數據是存儲關于數據倉庫系統技術細節的數據,是用于開發和管理數據倉庫的數據,主要包括數據倉庫結構的描述(各個主題的定義,星型模式或雪花型模式 的描述定義等)、ODS層(操作數據存儲ODS .Operation Data Storage)的企業數據模型描述(以描述關系表及其關聯關系為形式)、對數據稽核規則的定義、數據集市定義描述與裝載描述(包括Cube的維度、層 次、度量以及相應事實表、概要表的抽取規則)。另外,安全認證數據也作為元數據的一個重要部分進行管理。
          業務元數據從業務角度描述了數據倉庫中的數據,它提供了介于使用者和實際系統之間的語義層,使得不懂計算機技術的業務人員也能夠理解數據倉庫中的數據。業 務元數據包括以下信息:使用者的業務術語所表達的數據模型、對象名和屬性名;訪問數據的原則和數據來源;系統所提供的分析方法及公式、報表信息。
          內聯映射元數據(Inter-Mapping Metadata)實現技術元數據與業務元數據的層間映射,使得信息系統的概念模型與物理模型相互獨立,使企業的概念、業務模型重組,以及物理模型的變化相互透明。
          內聯映射元數據從技術上為業務需求驅動、企業數據驅動的雙驅動建設模型提供了重要保證,使信息系統的建設具有更高的靈活性與適應性


          元數據是跟特定的數據對象有關的,換句話說,talend和kettle的元數據就是不一樣的。ETL的元數據就和pentaho report 的元數據不一樣,因為他們要描述的東西不一樣。這些元數據的存儲格式可以有多種,可以儲存成XML格式的也可以是放在數據庫里面的。事實上這兩種最通用 的,也是可以互補的兩種,沒有誰比誰重要之說。
          metadata儲存在repository的地方,我不知道是不是所有的ETL工具都喜歡這么叫.每個repository都會選用數據庫來儲存,他們 都是按照一定的格式,這些格式最后也是可以變成XML形式的.這是看每個工具的支持程度,kettle 就支持導出到XML格式,其他的工具我就不知道了.

          具體解釋到kettle來說,metadata就是你定義的每一個動作.kettle的repository里面有如下一些表,我沒有列出全部,從表的結構看一下kettle的metadata有哪些
          1. R_DATABASE            R_DATABASE_ATIRIBUTE        R_DATABASE_CONTYPE        R_DATABASE_TYPE
          2. R_JOB            R_JOB_HOP            R_JOBENTRY            R_JOBENTRY_ATIRIBUTE            R_JOBENTRY_TYPE
          3. R_LOG            R_LOGLEVEL
          4. R_STEP            R_STEP_DATABASE
          5. R_TRANS_ATIRIBUTE        R_TRANS_HOP            R_TRANS_CONDITION
          6. R_USER            R_VALUE                R_PERMISSION
          7. R_CLUSTER            R_CLUSTER_SLAVE            R_SLAVE
          8. R_PARTITION            R_PARTITION_SCHEMA

          1 . database的鏈接信息.在R_DATABASE_TYPE 表里面包含了所有支持的數據庫鏈接信息,一共是25種,算是支持非常的多了.

          2. 任務設計部分的表,R_JOB_HOP 是指兩個數據之間的鏈接部分, R_JOBENTRY_TYPE 是目前支持的操作種類,一共有27種,包括Transformation , Job , Shell , Mail , SQL ,FTP ,Table exists ,File Exists , JavaScript , Secure FTP , HTTP , Create File , Delete File , Wait for File , Put a file with SFTP , File Compare , BulkLoad into Mysql , Display Msgbox Info , Wait for , Zip file , XSL Transformatio, BulkLoad from Mysql into File , Abort Job , Get mails from POP , Ping a host , Dummy Job Entry .
          其中BulkLoad 只跟Mysql有關,我感覺很奇怪,BulkLoad 是數據庫批量處理的方式,大型數據庫都是支持的,比如oracle就有sqlloader來支持批量處理,其他的大型數據庫應該也有吧,而且在 transform里面kettle也有oracle的支持,在任務設計的時候就只有mysql的支持,不知道什么原因.
          最后一個Dummy Job Entry 就是什么都不做.

          3. Log記錄,loglevel 一共有6種,Nothing at all , Minimal loggin , Basic loggin , Detailed loggin , Debugging , RowLevel(very detailed).根據你自己的需要來選擇log的級別.

          4. 每一步操作的表格與你使用的數據庫

          5. 轉換的定義.一共有70種不同的轉化,你不會想看到全部列出來的,其中有幾種很有用的,比如DimensionLookup , 它的解釋就是"在一個數據倉庫里更新一個漸變維,或者在這個維里查詢信息.
            還有基于關鍵字刪除記錄,
            cuebOutput, 把數據寫入一個cube,
            從一個excel文件讀數據,執行一個sql腳本,調用數據庫的儲存過程,
            OraBulkLoader ,調用oracle 的bulk loader to load data ,(應該是指Oracle的SQLLOADER吧).
            ProSAPCONN, 從一個SAP系統取數據.
            MergeRows,合并兩個數據流, 并根據某個關鍵字排序.  這兩個數據流被比較,以標識相等的、變更的、刪除的和新建的記錄.

          插一句關于merge的概念,從網上copy下來的:
          MERGE語句是Oracle9i新增的語法,用來合并UPDATE和INSERT語句。通過MERGE語句,根據一張表或子查詢的連接條件對另外一張表 進行查詢,連接條件匹配上的進行UPDATE,無法匹配的執行INSERT。這個語法僅需要一次全表掃描就完成了全部工作,執行效率要高于INSERT+ UPDATE。
           
          6. 用戶與權限.一開始建立的用戶有兩種,admin和guest ,權限有5種,Read only access , Administrator , Use transformations , Use Jobs , Use schemas .

          7. pentaho官方網站上面有一個新聞是關于在mysql的
          Kettle集群新記錄:
          最近Kettle集群基于 Amazon Elastic Computing Cloud做了一次測試,單臺服務器輸出4000 rows/sec ,數據庫為MySQL. 如果你發送數據通過sockets從一個master到5個slave servers, 你將獲得 5x4000 row inserts/sec。集群的效果非常好.

          我個人也做過測試。數據庫是oracle 10.2.0.1,內網連接,從一臺機器的oracle到本地機器,沒有集群,速度也大概是4000 多一點 ,數據量大概是16萬。

          8 . 數據庫分區是數據庫的高級特性之一,oracle的XE版和Enterprise版本的有一個差別就是XE版不支持分區。


          kettle還支持metadata搜索,可搜索的選項包括步驟,數據庫連接和注釋 ,可見metadata對于ETL的重要性就是它能夠更好的管理你的數據,而不只是讓你的數據呆在數據庫里面。kettle對與數據庫的元數據管理并不是 很好,所謂數據庫的元數據就比如數據庫中表的名字,每一個column的信息,column的長度,每一個表的constrain,index等,而只有 提供這些信息的管理才能夠將ETL過程做的更好。下一篇介紹ETL質量控制的時候會看到oracle warehouse builder 對于這些數據管理是多么的強大,目前kettle的能力還不能算是非常的強大的。

          pentaho平臺本身還有一種metadata , 在官方主頁上是這么寫的:
                 pentaho metadata的能力是讓管理員定義一個抽象層來顯示數據庫信息和商業流程,管理員用關系型數據庫的表來表現相互之間的關系,為了復雜和含義模糊的數據 庫表和列而創建商用術語,為特性用戶而設定權限參數,指定默認的數據格式,為多種語言部署提供翻譯,商業用戶可以使用pentaho新的ad hoc query能力查詢他們想要的報表,比如訂單的數量和按地區排序的客戶開銷,SQL可以自動取得這些信息。

          數據倉庫的建模也需要用到metadata, oracle的數據倉庫建模就是用的一種叫 Common Warehouse Metamodel 的metadata , CWM提供一個數據倉庫的標準讓不同的廠商集成和管理他們的數據,CWM建立在開發的標準XMI(XML for Metadata interchange)  XML 和 UML2 作為建模語言。CWM 用UML2 定義一組核心類,這些類分作package(或者叫做子模型submodels),每一個提供一個特定的數據倉庫的domain , 比如 Relational , OLAP ,Transformation , CWM 提供一個強大的數據模型來實現數據倉庫的Extraction , transformation , loading , integration and analysis   ,沒有一個單獨的模型能夠滿足各種應用程序和開發工具的需求,但是CWM 為這些工具提供特定的擴展,它被設計用來支持關于metadata的快速開發,使用戶能夠通過擴展來滿足他們的需求。(上面這段話翻譯自http: //www.corba.org/vendors/pages/oracleCWM.html , 翻譯的不是很好,如果各位有興趣可以自己去看看)

          下一篇介紹ETL的數據質量控制。


          posted @ 2007-05-22 21:39 gemini 閱讀(600) | 評論 (0)編輯 收藏

          [置頂]商業智能平臺研究(七) ETL 的選型

          商業智能平臺研究(七)   ETL 的選型
          看了一段關于魔獸世界的視頻,講的是4個小孩子被一個人PK,那四個小孩子拼命練級最后打敗那個人的故事,其中有一句話翻譯的很好,
          gentleman ,we are dealing with the guy have absolutely no life .
          先生們,我們正在對付一個徹頭徹尾的宅男。

          總是有很多事情覺得應該去做,總是說等有了時間去做??烧娴挠辛藭r間又沒有去做。想到了eygle (oracle一個很厲害的DBA) 的一篇文章,天道酬勤。
          http://www.eygle.com/archives/2006/02/the_sun_repays_industriously.html
          一年有四個計劃,然后又加了一個計劃,如以上目標不能實現,則順延至下一年.
          希望自己的計劃列表上也不要有這一條吧,加油加油。
          引用steve jobs 在stanford上的最后一句話
          Stay Hungry. Stay Foolish
          求知若飢,虛心若愚。

          openI : openI 并沒有指定的ETL 工具
          spagoBI : spagoBI 官方是支持多種ETL工具的,但他們的合作伙伴是 talend . talend 最近剛剛發布了2.0版本 , 自己聲稱是業績第一個開源的ETL工具.基于eclipse平臺。1.1版最后處理數據的方式是用perl,2.0版剛剛加了用java處理的方式,不過 支持的數據源比較少.
          jaspersoft : jasperETL ,一個基于talend的工具,不知道有什么不一樣,大概是購買了talend的二次開發許可證。
          pentaho : kettle ,現在已經改名叫pentaho data integration 了,不過一樣可以叫kettle ,是pentaho獨立的一個子項目,最近剛剛發布了2.5版本,非常容易安裝和使用,跟pentaho一樣,人氣很旺。


          讓我們先看看ETL過程的設計是如何的定義的:
          1 .數據抽取、   轉換和加載,是數據倉庫實現過程中,數據由數據源系統向數據倉庫加載的主要方法,整個數據處理過程如下:
          2 .數據抽取  : 從數據源系統抽取數據倉庫系統所需的數據,數據抽取采用統一的接口,可以從數據庫抽取數據,也可以從文件抽取。對于不同數據平臺、源數據形式、性能要求的 業務系統,以及不同數據量的源數據,可能采用的接口方式不同,為保證抽取效率,減少對生產運營的影響,對于大數據量的抽取,采取“數據分割、縮短抽取周 期”的原則,對于直接的數據庫抽取,采取協商接口表的方式,保障生產系統數據庫的安全。
          3 . 數據轉換  :  數據轉換是指對抽取的源數據根據數據倉庫系統模型的要求,進行數據的轉換、清洗、拆分、匯總等,保證來自不同系統、不同格式的數據和信息模型具有一致性和完整性,并按要求裝入數據倉庫。
          4 . 數據加載  :  數據加載是將轉換后的數據加載到數據倉庫中,可以采用數據加載工具,也可以采用API編程進行數據加載。數據加載策略包括加載周期和數據追加策略,對于電 信企業級應用,采用對ETL工具進行功能封裝,向上提供監控與調度接口的方式。數據加載周期要綜合考慮經營分析需求和系統加載的代價,對不同業務系統的數 據采用不同的加載周期,但必須保持同一時間業務數據的完整性和一致性。


          ETL的功能。

          ETL 功能的強弱很難用一個指標來評價,大概從以下幾個方面可以粗略的考慮

          支持的平臺,支持數據源,流程設計,Metadata管理,可擴展性 , API , 數據驗證,數據質量管理 ,

          *支持的平臺
          很多的服務器不是運行在Windows系統上,所以平臺的支持非常的重要,Windows,Linux, Solaris,HP-UX , IBM AIX ,都是服務器常用的操作系統,至于Applet OSX我就不敢說了,如果哪個ETL工具只綁定在Windows平臺上,恐怕支持的程度會很低,所以用java做的東西會占一點點的上風,企業用的東西還 是要有一點跨平臺的能力滴。

          *支持的數據源
          這里把數據源分為三種,數據庫,文件,第三方應用程序
          主流的數據庫如 Mysql , Oracle , MS SQL Server , IBM DB2 , Sybase 還包括各種各樣的數據庫比如MS Access , PostgreSQL , Informix , Firebird SQL , Hypersonic , SAP DB , CA Ingres , SAP R/3 System 和任何支持ODBC的數據庫,有人會對MS Access 和 Hypersonic 數據庫上榜有疑問,我承認他們不是商業型數據庫,可是我們不能否認他們的存在。這里要提一下JDBC 的好處了,JDBC的標準使數據庫的通用性提高了很多。
          支持的文件格式也算是ETL數據源一種很重要的輸入,其中有兩種是必須支持的,普通文本格式文件和CSV文件,另外還包括zip文件,XML文件,當然是 按照一定格式輸出的,有的是數據庫本身輸出的比如oracle的,有的是第三方工具輸出的,也有是自身的ETL工具輸出的格式,對文件格式支持又分為 Read和Write,Read就是輸入,要求支持的格式盡可能的多,而Write則因工具而不同,可能有的特性包括:按照field分隔數據,多種文件 格式輸出,追加的方式輸出,按照文件大小或指定的行數自動分割文件等等。
          支持的第三方應用程序也是ETL的附加特性,比如支持SAP 或者一些流行的ERP 數據格式的處理,但是并不是每個ETL工具都會有的特性,這個因工具而異。


          *流程設計
          ETL數據處理是非常復雜的,一個好的ETL流程設計工具不是憑一兩個功能就算是成功的工具,流程設計也不可能因為一兩個步驟就完成,我只是盡量挑些我知道的說吧,如果大家有補充的話,也歡迎留言或給我發email:  jj12tt@yahoo.com.cn
          由于ETL過程的復雜性,為了方便的管理,高性能,可擴展性,大多采用象多線程,分布式架構,來提高管理和性能,所以GUI設計工具也要有相應的支持才能更好的完成工作.

          輸入和輸出的時候要能夠備份和恢復,你也可以認為這是數據流向臨時表.
          要能夠方便的更改數據的結構,最好還有版本控制支持,不一定要非常的強大,至少要記錄下每次更改的過程.
          字段的轉化功能要盡可能的強大,talend的轉化設置還可以支持正則表達式.最好很多轉換都有默認值,能夠支持公式.
          可以自定義函數,當然函數本身不能大復雜,跟公式轉化能夠搭配.
          支持復雜的過濾,分組,查詢.能夠按照行或列進行聚合.
          能夠有基于時間的調度方式,事實上這也是必須的.
          要有好的性能,能夠批量的處理請求,并且這些性能是可視化的,也就是要有一個度量.每次轉化多少數據用了多少秒或分鐘,kettle官方上寫的性能指標是 4000/s,如果一條數據算1k 的話,一秒鐘就是4M 的數據量,1GB就是256秒,大約4分鐘多,應該算是非常可以接受的值了,不然別人也不會寫在官方網站上了.
          所有的任務都是能夠集中管理的.也就是說,多個不同的客戶端ETL工具有一個共用的服務器來設計任務,每個人可以設計自己的部分,但是執行的時候是一個整體在執行.
          要有好的異常處理方式.出錯是在所難免的,問題是出錯了之后你怎么處理的問題.
          是否支持集群,大型的數據庫可能都會避免不了使用集群,如果轉化的時候支持集群速度可能會提高非常之多,而且集群的特點就是只讀服務器比較多,而ETL本身就是只讀的,所以和集群也是非常和的來的.



          流程是分步驟的,一個步驟又有可能是由多個任務來組成的,所以一個好的GUI是必不可少的,所以我們也說說GUI的特性:
          1 . drag and drop 特性是必不可少的。而且有的時候需要一些對話框和向導來收集用戶的行為。
          2 . 任務是可以復制和剪切的。
          3 . 每一個動作都是可以描述的。也是可以取消和重做的。取消和重做的次數不說是無限次數,也要盡可能的大。
          4 . 每一個任務都是必須要有起點和終點的,起點只有一個,但是終點就不一定了。
          5 . 要有圖形化建立數據庫鏈接的方式。能用圖形化建立每一步,每個任務的方式。
          6 . 界面的可定制性要好,顏色要選鮮艷一點的,字體可以調的,圖形化界面要可以放大和縮小的,(不是吧,這也算)。當你要面對數十個任務的時候,數據錯綜復雜,顏色鮮艷一點不至于讓你睡著了,你就知道為什么需要了。
          7 . 支持多條路線,也就是一個數據點可以把數據分散到多個不同的下一級數據點,多個下一級數據點又可以把數據匯集到同一個數據點。
          8 . 可以預覽,所謂的預覽就是把指定數量的數據而不是全部數據進行處理,查看結果是否滿意。
          9 . 可以在數據運行的時候動態的pause , cancel , redo .尤其是在進行耗時很長的動作的時候,或者你發現前一個步驟出錯的時候。
          10 . 顯示數據處理時的狀態要清楚。你正在鏈接到一個database ,你正在讀8000條記錄,你正在更新這些記錄而不是新建記錄,每一步操作所處的狀態要明確。
          11 . 要支持緩存 .這應該算是提高性能的好方法,但是緩存不能丟失。
          12 . 所有的操作可以存儲。不論你是存儲成XML格式的,還是用元數據儲存在database里面。
          13 . 存儲的操作可以讀取。并且是不丟失任何數據的讀取。
          14 . 識別不同的數據庫數據類型。long , String , data , text ,還包括table , index, sequence 等等。
          15 . 對數據庫要有編輯器的支持。要有可視化圖形的建立 query 的方式。旁邊應該有group , order by , sum , avg 等標準函數的支持。


          下一篇介紹ETL 的metadata .


          posted @ 2007-05-22 21:39 gemini 閱讀(695) | 評論 (0)編輯 收藏

          [置頂]四個開源商業智能平臺比較 (一)

               摘要: 四個開源商業智能平臺比較
          本人最近花了一些時間研究了一下開源的商業智能平臺,想和大家交流一下。
          在開始本blog之前,我想先說一句話:其實,我只是一個粗人
          所以如果有什么寫的不好,還請見量。  閱讀全文

          posted @ 2007-04-14 16:52 gemini 閱讀(1992) | 評論 (0)編輯 收藏

          2008年3月21日

          商業智能需要站在全局角度考慮問題

          首先看一下下面這個表樣.這個表樣是潤乾的一個示例表樣,接著介紹birt 是如何做的

          5 join dataset

          這個表樣算是報表中最常見的一種需求了,把不同粒度的數據聚合到同一粒度上.

          我們用automobile 表示汽車表, 用houseproperty 表示房產表, 用estate表示土地表,用others 表示其他表.他們都有customerid 來表示客戶名稱.customers 表有customerid 和customername

          1. 用視圖來拼數據

             對于  automobile 聚合使用一個autoview , sql 如下

             select sum(automobile price* quantity) autototal, customerid  from automobile group by customerid

            對于 houseproperty 使用如下view

             select sum( house price * quantity ) housetotal, customerid  from houseproperty group by customerid

            對于 土地和其他也是差不多類型的sql

           

            得到了上面這四個視圖之后, 就把customers 表根據customerid 和其他四個視圖join 起來.

            select customername ,  autototal  , housetotal , estatetotal , othertotal

             from  customers c , automobile a , houseproperty h , estate e , others o

             where 四個視圖和customers的連接條件

           

            由于這個表樣并不涉及到以 汽車,房產,土地, 其他表中的任何一個客戶為主, 所以暫時也不考慮左右連接的問題.

           

          2. 使用Birt 的Joined Data Set

             Birt 提供的Joined Data Set 跟數據庫里面的視圖是差不多的概念,使不過一個是在數據庫內部join 數據,一個是使用Java 循環的方式join 數據.

             跟上面創建視圖一樣,創建四個DataSet , 輸出兩個字段: customerid 和 total.

             然后創建一個Joint Data Set , 把customers 表和 autototal DataSet 按照customerid join起來.這時得到四個字段 customers.customername , customers.customerid  ,  auto DataSet.customerid ,auto DataSet.autotal . 最后我們把這個Joint DataSet 命名為jdataSet1 (代表的是autoDataSet 和 customers 產生的Joint DataSet ).

            然后繼續創建另一個Joint Data Set 把customers 的customerid 和前一步創建的jDataSet1 按照customerid join 起來得到一個第二個Joint DataSet1 ,我們命名為jDataSet2 .

            以此類推,最后我們輸出5個字段: customers.name   ,   auto.total ,  house.total  , estate.total , others.total , 實際輸出可能在customers.customerid 上重復了4次.

           

          上面兩種方式報表的做法主要有兩點差別:

          1. 性能

              如果本身數據庫單獨執行一個視圖的sql 結果比較小,而本身的automobile 表數據量比較大(也就是說一個customer對非常多的automobile 記錄) , 那么使用數據庫視圖就會比較慢. 因為數據庫在嘗試得到4個視圖的結果進行了一些不必要的按照automobiel表的customerid和customers的customerid進 行的比較操作( 如果有索引肯定是對索引進行了多次不必要的讀) ,這時候使用Java的這種循環方式會比較快一點 . 如果本身結構集比較大,那么還是用數據庫本身的排序和join 比較快, 這個道理比較類似于數據庫中如果結構集大于5% 就不要走索引,直接進行全表掃描.只不過這是一個java 版的.

          2. 左右連接的問題

             如果這個表的數據不是以customers里面的數據為主,而是以四個視圖其中的一個為主.這時候要情況可能會比較復雜一些.由于我不太清楚birt 里面joint data set 計算的方式是怎樣的,所以也不太好評論.不過如果不使用joint data set , 就是使用一般的編程的方式.那么按照下面這個思路會比較好:

          a , b , c , d ,e  為customers , automobiles view  (后面簡寫avlist 表示這個集), housetotal view , 里面的指針.  四個view 都已經排好了序.group by 是默認排序的. outlist 表示最后需要的輸出 , row表示最后輸出的一條數據

          for ( 按照主數據循環)  {

              row.customerid = customers.customerid;

              if( customers.customerid == avlist[b].customerid) {

                     outlist[x].autotaol = avlist[b].autotal ;

                     b++

               }

              四個view 同一個判斷方式, 但是每個view 的指針指的是不一樣的.

              最后:   outlistSet . add (outlist[x])

          }

           

          如果數據源本身的數據量也很大,需要輸出的數據也很多,則上面兩種方式都會有性能問題,這時可以考慮商業智能里面的萬金油方式: ETL

           

          3. ETL

              從上面這個表樣看來,可能會有兩個隱含條件.一個是聚合的數據粒度在時間上是月,另一個在銷售地點粒度上是:支行086001-301 , 所以用ETL一開始就聚合數據可能會更好的解決性能問題.另外一個是如果用戶想要排序和過濾數據的話用一個單獨的ETL聚合表也比拼數據的方式好的多.

           

          這篇文章的目的并不只是想解釋一個做表的問題,而是說明商業智能的一些問題不光需要站在一個獨立的角度思考,有些問題本身可能隨著環境的一些變化而 采取對應的措施,比如上面為了解決排序,過濾,左右連接,性能問題都需要從不同的角度來考慮問題.有時候可能一個做表的問題不光只是要限定在sql 或某個報表軟件的本身,有時候某個ETL問題可能不關只是ETL就能解決的,隨著情況的復雜可能需要從整個商業智能的全局來進行考慮,商業智能越來越傾向 與多個解決方法的融合.

          本文原文在 http://www.gemini5201314.net

          如果你對ETL中性能優化問題有興趣的話,也可以查看另一篇關于在ETL中性能優化要站在全局的角度,而不是只在數據庫角度的文章.

          posted @ 2008-03-21 12:16 gemini 閱讀(385) | 評論 (0)編輯 收藏

          2007年6月19日

          重新學習Birt 中......

          重新學習Birt 中......
          又重新回到birt的學習中,以前用的時候本身功能也不算太好,再加上自己是個比較浮躁的人,什么都想了解一點,所以學的 也不是很好,最近計劃又重新系統的學習一下Birt ,網上搜了一下,除了eclipse 官方的資料外,幾乎沒有什么有用的資料,要么就是太舊了,要么根本就是沒有用,你抄我的,我抄他的,最后大家都抄成了一樣的了,
          算了,還是自己動手,豐衣足食吧,決定還是好文章自己寫, 先寫下自己的計劃吧 , 把roadmap 放出來,也算給自己一種鞭策吧.

          第一篇 : 把birt  用 ecilpse 跑出來.最簡單的Java 程序. (eclipse 官方的例子)
                   把birt 放到 tomcat 跑起來.                   (eclipse 官方的例子)

          第二篇 : 利用eclipse 的可視化報表設計器設計模板,主要介紹,參數,sorting ,  grouping  ,  mapping  ,  filtering , hightlighting ,
                   (eclipse 官方flash演示的文字版)

          第三篇 : 利用birt  的desing api 和 report api 來做java 編程,主要還是集成到servlet  環境.

          第四篇 : 把 birt 和pentaho 集成起來 .  (其實pentaho 官方有一份這個文檔,不過我的例子稍微會介紹的更加實用一點)

          大約時間是一個月吧,如果超期了,我就請大家吃飯,呵呵,只要你能夠找的到我 ,
          要真到了那個時候, 我只能說:
          地球是很危險的,我還是回火星去吧.

          有很多朋友都說birt 讓他們很失望,其實birt 有一點性能問題外,基本還算可以,如果你非要說有這些,那些不爽,我只能說一句話:
          還記得大話西游里面,周星馳率領一群土匪圍攻白晶晶她們, 她們在周星馳重要部位點了兩次火,然后吳孟達說:都焦了,割了算了吧.
          記得周星馳說什么嗎?
          不記得就再去重溫一遍經典吧?



          posted @ 2007-06-19 23:07 gemini 閱讀(449) | 評論 (0)編輯 收藏

          2007年6月17日

          eclipse enropa 即將發布 birt 的新功能一覽

                                  eclipse enropa 即將發布 birt 的新功能一覽
          最新的eclipse enropa 即將在6月29號發布了.官方說會有21個項目同時發布.其中我只關心三個項目.一個是WTP , 一個是TPTP 最后一個是BIRT .
          我看了一下BIRT 所增加的新功能,從2.2M4 開始
          http://www.eclipse.org/birt/phoenix/project/notable2.2M4.php
          http://www.eclipse.org/birt/phoenix/project/notable2.2M5.php
          http://www.eclipse.org/birt/phoenix/project/notable2.2M6.php
          http://www.eclipse.org/birt/phoenix/project/notable2.2RC0.php


          2.2 M4
          1 . 和WTP集成的BIRT Tag .
          2 . Word Emitter                 支持WORD 的 emitter . (emitter 翻譯是發射,我想應該是可以預覽和打印的輸出格式吧)
          3 . XML Source Editor            支持xml 格式的編輯器
          4 . Property Editor Changes
          5 . Highlight Style              對于特定條件的Item 進行高亮顯示.

          2.2 M5
          1 . BIRT Chart Improvements             
          2 . Viewer Improvements
          3 . Emitters                   增強了PDF 的emitters
          4 . Advanced Properties        現在可以顯示所有的屬性了.

          2.2 M6
          1 . BIRT Chart Improvements    新增加了一種chart tag library 和chart view servlet
          2 . XLS Emitter Prototype      新增加了一種XLS 輸出的格式
          3 . Linking Cascading Style Sheets      情理之中的事情
          4 . BIRT Viewer Changes        
          5 . Report Examples View        新提供了一些example,提供給初學者和想了解birt新功能的愛好者.
          6 . Dynamic Connection Profiles 動態的數據源鏈接
          7 . Report Parameter Changes    增加了一種組合框的parameter view.類似與選省份和城市的那種雙選框.

          2.2 RC0
          1 . Web Service ODA             新增加的Web Service 的數據源.可以支持像ebay , amazon的那種Web Service 的數據了.
          2 . Charting Improvements       新增加使用script 來處理chart的事件.好像是用的javascript.
          3 . PPT Emitter                 新增加對Power Point  的emitter.
          4 . Dynamic Crosstab Support    
              這是最讓我激動的功能.完全就是OLAP的功能的一部分.Palo的demo中,是通過一個Excel 的Plug-in,是excel 支持olap的,不過它不能跨平臺,甚至連excel 都跨不出去,
              而birt提供的這個功能更加的強大.而且很容易就能夠實現,定制化也比較強(就是說它提供API ,讓你自己編程實現這些功能).
              
          一下子看到BIRT太多的功能了,希望能夠正式發布的時候birt能夠比較穩定吧.


          沒有找到WTP2.0 和 TPTP 4.3 的新功能列表.
          其中我只關心在TPTP 4.2.2 Callisto 中的TPTP經常性的Block 的Issue 解決了沒有.
          同樣希望TPTP也能夠穩定吧。功能倒是其次. java 中profiler 工具倒是不少,可是大多好的都是商業的,難得有一個這么好的開源的版本,要是bug問題不解決就不好了.

          聽說eclipse 的SOA 建模工具第一次發布.我倒是不關心,目前還是把精力focus birt上了,覺得eclipse 本身可能已經沒有太多新功能發展了,主要就是把plugin 做好,
          然后想辦法能夠解決plugin 之間版本的兼容性問題就夠了. 最近也試用了一下NetBean ,沒有深入用,還是有點失望的,希望NetBean 的堅定擁護者不要扁我. 字體丑,界面丑
          也就算了,但是跑出來嚇人就是你的不對了嘛! 丑也就算了,速度也稍微慢一點(我說的是稍微).本來想看一下它的Porfiler 功能怎么樣的,后來還是算了,畢竟自己沒打算
          用.就算是自己沒有深入用過,不懂吧,亂說了話,希望不要引起Netbean 支持者的海扁.

          最近在collab下載svn 的時候無意中看到了它的svn enterprise 版的.其中有一個是支持eclipse 的 Mylyn 插件的(21個項目其中一個),做項目管理的.不知道eclipse 搞
          Mylyn 是不是有打算進入項目管理領域 . 它居然還是2.0版.不知道有哪位用過.

          最近使用firefox的時候 ,有時候打開一個網頁莫名其妙的就firefox 掛掉了,也不是真的掛了,就是有時候等個2分鐘它又好了,有時候firefox整個不見了,但是進程里面
          它還在,你點開一個新的firefox  然后兩個人就手拉手的都跑出來了. 不知道是不是大家也有遇到過相同情況的. 裝了Opera , firefox 掛掉的時候就用Opera , 里面有一個
          打電話的功能我覺得倒是非常的有意思,創意呀! 不希望firefox 獨大 , 也不希望eclipse 獨大 ,更不希望Microsoft 獨大 , 同樣不希望 Intel 獨大(AMD hold on) .
          有競爭才能推動發展嘛.

          最近在msn 上認識了許多朋友. 有一位跟我聊起了JBoss , 我對JBoss 的認識還停留在JBoss 服務器上.后來聽他說才知道JBoss 已經發展了一套完整的J2EE 框架了,包括很多
          方面,才恍然大悟 原來現在中間件這么重要. Red Hat 跟exadel 結盟要推新的SOA 工具,好像SOA是很火的,不過還是認為如果公司不是做SOA 的,學SOA 沒有什么用.
          SOA 要在中國成熟還要很多年的.那時候都不知道是個什么樣子了.不過將來一個公司面對使用多種操作系統,多種數據庫,多種軟件平臺,多種編程語言,總會需要一個框架
          來解決這些問題的,就算SOA 成功了也好,SOA 失敗了也好,需求總是會有的.還是等SOA 成熟了再觀望一下吧, 廣告看看還可以,要真掏錢出來還是要謹慎的。
          純屬個人認識,說的不對還請高手指點.

          寫的比較雜,就當是看八卦吧.

          最近學習Birt ,主要是它的新功能.然后還是準備學會如何在pentaho里面集成 birt 吧.希望能夠和birt 愛好者,尤其是高手一起交流.

           

          posted @ 2007-06-17 16:33 gemini 閱讀(461) | 評論 (0)編輯 收藏

          2007年6月10日

          商業智能研究(十七) Mondrian 如何使用 materialized view

               摘要:   閱讀全文

          posted @ 2007-06-10 19:02 gemini 閱讀(540) | 評論 (0)編輯 收藏

          商業智能研究(十六)materialized view+dimension提高mondrian性能(二)

               摘要:   閱讀全文

          posted @ 2007-06-10 18:58 gemini 閱讀(470) | 評論 (0)編輯 收藏

          商業智能研究(十五) materialized view+dimension提高mondrian性能

               摘要:   閱讀全文

          posted @ 2007-06-10 18:57 gemini 閱讀(512) | 評論 (0)編輯 收藏

          商業智能研究(十四) mondrian + oracle 部署foodmart demo

               摘要:   閱讀全文

          posted @ 2007-06-10 18:56 gemini 閱讀(1167) | 評論 (0)編輯 收藏

          2007年6月9日

          商業智能研究 (十三) oracle warehouse 一些基本概念

               摘要:   閱讀全文

          posted @ 2007-06-09 21:54 gemini 閱讀(622) | 評論 (0)編輯 收藏

          2007年6月2日

          在tomcat上部署pentaho 1.5.3

          最近一直在做mondrian的foodmart的實驗,有位朋友的公司要部署一個pentaho的demo來做演示,我跟他說直接運行demo就可以 了,但是他們公司非要自己從頭配一個,所以我就自己做了一下實驗基于最新的1.5.3的,其實步驟都差不多,其他版本也應該可以,希望能給喜歡 pentaho的朋友一點幫助。

          1 . 首先需要下載pentaho-j2ee-deployment- , pentaho-data- 和 pentaho-solution- 三個包,分別解壓到三個不同的地方
          2 . 從命令行進入pentaho-j2ee-deployment 目錄,運行ant -p 會列出所有的ant 任務,執行war-pentaho-tomcat-hypersonic任務,成功之后會生成4個war包,pentaho-portal- layout.war , pentaho-style.war 和 sw-style.war ,(sw-style.war 是steel-wheel-style ,是可選項,可能是pentaho的一個例子或者是pentaho的一種style風格),還有多出一個tomcat目錄下的hsqldb目錄下有一個 pentaho.war ,如果你執行的是war-pentaho-mysql就是在tomcat目錄下有個mysql5目錄,里面一樣是pentaho.war.我選用的是 hsqldb .
          3 . 在你的tomcat的安裝目錄下找到conf / server.xml 文件,在其中的host 元素下加上如下這一段,這一段是從pentaho的文檔里面抄來的,manual-deployment-pentaho- ,其中它列出來的有些多余,這個文檔應該使用confluence 用pdf 方式導出的,抄的時候注意檢查一下xml 元素排版上的問題.它列出的resource 元素太多了,你查看pentaho-data- 包里面,應該只有四個數據庫hibernate,sampledata,shark,quartz ,把不用的resource元素都刪掉,(應該是最上面的四個).如果你的tomcat啟動不了了,檢查一下你添加的部分是不是有錯。


           1 
           2 <Context path="/pentaho" docbase="webapps/pentaho/">
           3     <Resource name="jdbc/SampleData" auth="Container"
           4         type="javax.sql.DataSource" maxActive="20" maxIdle="5" maxWait="10000"
           5         username="pentaho_user" password="password"
           6         factory="org.apache.commons.dbcp.BasicDataSourceFactory"
           7         driverClassName="org.hsqldb.jdbcDriver"
           8         url="jdbc:hsqldb:hsql://localhost/sampledata" />
           9     <Resource name="jdbc/Hibernate" auth="Container"
          10         type="javax.sql.DataSource"
          11         factory="org.apache.commons.dbcp.BasicDataSourceFactory"
          12         maxActive="20" maxIdle="5" maxWait="10000" username="hibuser"
          13         password="password" driverClassName="org.hsqldb.jdbcDriver"
          14         url="jdbc:hsqldb:hsql://localhost/hibernate" />
          15     <Resource name="jdbc/Quartz" auth="Container"
          16         type="javax.sql.DataSource"
          17         factory="org.apache.commons.dbcp.BasicDataSourceFactory"
          18         maxActive="20" maxIdle="5" maxWait="10000" username="pentaho_user"
          19         password="password" driverClassName="org.hsqldb.jdbcDriver"
          20         url="jdbc:hsqldb:hsql://localhost/quartz" />
          21     <Resource name="jdbc/Shark" auth="Container"
          22         type="javax.sql.DataSource"
          23         factory="org.apache.commons.dbcp.BasicDataSourceFactory"
          24         maxActive="20" maxIdle="5" maxWait="10000" username="sa" password=""
          25         driverClassName="org.hsqldb.jdbcDriver"
          26         url="jdbc:hsqldb:hsql://localhost/shark" />
          27 </Context>
          28 



          4 . 把pentaho.war copy到tomcat 的webapps目錄下,它會自動解壓的,然后關閉tomcat , 找到pentaho/WEB-INF/web.xml 文件,找到solution-path元素,指向你解壓后的pentaho-solution- 目錄,注意java里面是用正斜杠 / ,如果你從windows的地址欄copy的話注意把反斜杠改一下.
          5 . 修改pentaho/WEB-INF/classes 目錄下的log4j.xml文件,把   里面的value改成INFO,或者更高,這一步是可選項,主要是啟動的時候出現很多不必要的debug 信息.如果你啟動的時候出錯了,再改回來。(一般都是solution-path沒有找對,我用7-zip解壓的時候老是解壓到一個新的目錄,所以后來指 定 solution-path 的時候,目錄地址高了一級.)
          6 . 啟動pentaho-data- 目錄里面的hsqldb數據庫.
          7 . 這個時候啟動tomcat ,應該是不報任何錯誤的.你把瀏覽器指向http://localhost:8080/pentaho ,會看到pentaho的界面的,只不過是沒有什么顏色的那種.
          8 . 把編譯後的三個war文件copy到tomcat 的webapps目錄下,等它們自動解壓之后,再進去看,發現有了樣式了。安裝就完成了.

          貼幾張圖:
          pentaho成功啟動后應該有 Pentaho BI 平臺服務器就緒 這句話.


          安裝了style 和 portal 包之后的登錄界面


          在pentaho-data- 目錄的lib 目錄下執行java -cp hsqldb.jar org.hsqldb.util.DatabaseManager  出現的hsqldb 的manager 登錄畫面
          用戶名和密碼都在相應目錄的數據庫文件里面,hsqldb的數據庫文件是可以用
          文本編輯器打開的,搜索password就可以找到用戶名和密碼了


          sampledata 里面的數據




          我在安裝的時候也碰到了諸多的問題,
          1 . 一開始編譯的時候使用的ant war-pentaho-tomcat 任務,它直接報錯,說找不到rdbms目錄,后來猜想這個任務應該是留給其他數據庫編譯的時候擴展的.直接就換了war-pentaho-tomcat- hypersonic 任務重新編譯了一次
          2 . 后來從文檔里copy出數據源的那句話出錯了,導致tomcat啟動不了,因為從pdf文件copy的那段話排版有問題,后來把它粘貼到eclipse (裝了WTP插件的)里面,一格式化就看出來了,context 元素和后面的屬性path中間的空格沒了,還有多出來了幾個resource元素.
          3 . 指定solution-path的時候目錄高了一級.
          4 . 啟動tomcat的時候出現了很多不必要的debug信息,修改log4j文件就可以了,它在tomcat/bin 目錄下還會生成幾個log文件,像是server.log 和ReportEngine_.log 文件。


          寫這篇文章的目的更多的是希望喜歡pentaho的朋友在用pentaho做實驗的時候能夠學會思考,出現了問題先在網上找資料,而不是無論遇到什么問題都求別人來回答你,知識是長期積累的過程,新技術總是不斷的出現,比如最近火的不得了的JavaFX,
          也許將來pentaho可能會用JavaFX 來做OLAP 和 DashBoard 也不一定的 。關鍵還是要掌握學習的方法,學會思考問題 . 我安裝的時候也遇到了很多問題,但是只要你細細的分析問題的原因,總是可以找出解決的辦法的.

          posted @ 2007-06-02 18:07 gemini 閱讀(538) | 評論 (0)編輯 收藏

          2007年5月22日

          商業智能平臺研究 (十) ETL 選型

          商業智能平臺研究 (十) ETL 選型
          ETL (Extract-Transform-Load的縮寫,即數據抽取、轉換、裝載的過程)作為BI/DW(Business Intelligence)的核心和靈魂,能夠按照統一的規則集成并提高數據的價值,是負責完成數據從數據源向目標數據倉庫轉化的過程,是實施數據倉庫的 重要步驟。如果說數據倉庫的模型設計是一座大廈的設計藍圖,數據是磚瓦的話,那么ETL就是建設大廈的過程。在整個項目中最難部分是用戶需求分析和模型設 計,而ETL規則設計和實施則是工作量最大的,約占整個項目的60%~80%,這是國內外從眾多實踐中得到的普遍共識。

          ETL工具從廠商來分為兩種,一種是數據庫廠商自帶的ETL工具,Oracle warehouse builder 就是這種,另外一種是第三方工具提供商.開源世界也有一大票的ETL工具,功能各異,強弱不一,你可以從一下地址找到開源ETL工具的列表 http://www.manageability.org/blog/stuff/open-source-etl/view  , 提醒一句,選用工具的時候要慎重,真的,千萬要慎重,不管你是選用商業的ETL工具(一般比較貴),還是開源的工具,都要在你充分了解產品的特性才去選 擇,千萬不要聽某某人說什么這個工具好,就購買了那個工具,一定要自己了解產品.

          開源的ETL工具的列表 (排名是亂排的)
          kettle  http://kettle.pentaho.org/  ,pentaho官方的ETL工具,是一個metadata-driven 的ETL工具,不需要自己寫code .
          talend  http://www.talend.com/    talend是talend自己公司的產品,宣傳的是全功能的Data Integration 解決方案,基于eclipse 平臺,包括很多的模塊來實現商業流程建模,數據流程建模,最后輸出的是perl 和 Java code
          jasperETL  http://www.jaspersoft.com/   JasperETL是基于talend的平臺,不太清楚有什么區別,jaspersoft開發的ETL產品.
          Octopus   http://www.enhydra.org/tech/octopus/index.html    octopuc是enhydra 的一個ETL工具,enhydra是一個產品跨度非常大的開源站點,它有個開源的Workflow ,Shark ,pentaho就是使用的這個Workflow ,這個組織從workflow 到application server , 從ETL工具到application framework ,還有一些其他的中間件,octopus非常的原始,支持任何的JDBC數據源,用XML語言來定義的.也支持JDBC-DOBC ,和excel 和 access ,csv-files, XML files ,用Ant 和 JUnit 來創建表和測試.
          CloverETL http://cloveretl.berlios.de/   CloverETL是提供給你一組API,用XML來定義ETL過程,同樣支持JDBC數據源, CloverETL是開源的,但是它是沒有圖形界面的,它提供一個有圖形界面的CloverGUI 來進行ETL的圖形化開發過程,但是不是開源的,需要購買商業許可證.
          KETL   http://www.ketl.org/    聽說是幾個前IBM員工做出來的ETL產品,
          另外還有很多.不一一寫介紹了,只列個表吧,
          Joost        http://joost.sourceforge.net/    最近有個web2.0 網站也叫Joost,名字相同而已.
          Xineo        http://software.xineo.net/xil.jspx
          BabelDoc        http://sourceforge.net/projects/babeldoc
          CB2XML        http://sourceforge.net/projects/cb2xml
          mec-eagle        http://sourceforge.net/projects/mec-eagle/
          Transmorpher        http://transmorpher.inrialpes.fr/
          XPipe        http://xpipe.sourceforge.net/Articles/Miscellaneous/fog0000000018.html
          DataSift        http://www.datasift.org/
          Xephyrus Flume        http://www.xephyrus.com/flume/flume-intro.Prlx
          Smallx        https://smallx.dev.java.net/
          Nux        http://dsd.lbl.gov/nux/index.html
          Netflux        http://www.netflux.org/
          OpenDigger       https://opendigger.dev.java.net/
          ServingXML        http://servingxml.sourceforge.net/
          Scriptella        http://scriptella.javaforge.com/
          ETL Integrator        http://www.glassfishwiki.org/jbiwiki/Wiki.jsp?page=ETLSE
          Jitterbit        http://www.jitterbit.com/
          Apatar        http://www.apatar.com/
          Spring Batch       http://static.springframework.org/spring-batch/

          大多數站點都是在sf.net上的.其中最后一個是Spring的,大名鼎鼎的Spring 也往ETL插一腳.實在是..........
          根據talend官方介紹的數據,ETL工具的市場份額在2006好像是有160多億美元.由于BI項目的成功,ETL的這一市場份額還會擴大,這也不難 理解,為什么這么多的公司都在做ETL工具了.開源世界也免不了想要分一杯羹.再次廢話一句,開源的東西你可以免費得到和使用,但是當你想應用到企業級開 發的時候,省錢可不是唯一應該考慮的因素.還是那句話,慎重呀慎重.

          下一篇介紹BI的基本概念.


          posted @ 2007-05-22 21:41 gemini 閱讀(1503) | 評論 (0)編輯 收藏

          僅列出標題  下一頁

          導航

          統計

          常用鏈接

          留言簿(3)

          隨筆檔案

          相冊

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 松潘县| 越西县| 漳平市| 萨嘎县| 织金县| 吴江市| 会理县| 阿克陶县| 吴旗县| 安图县| 大埔县| 中宁县| 东城区| 沙河市| 陵川县| 海阳市| 高唐县| 巴青县| 华阴市| 六枝特区| 深圳市| 沁阳市| 满城县| 时尚| 会理县| 南平市| 静乐县| 丹棱县| 福清市| 佛坪县| 天门市| 三都| 防城港市| 陈巴尔虎旗| 临泉县| 马龙县| 琼中| 兴城市| 津市市| 承德县| 宝山区|