雙子星座

           

          置頂隨筆

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

                                  eclipse enropa 即將發(fā)布 birt 的新功能一覽
          最新的eclipse enropa 即將在6月29號發(fā)布了.官方說會有21個項目同時發(fā)布.其中我只關(guān)心三個項目.一個是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 翻譯是發(fā)射,我想應(yīng)該是可以預覽和打印的輸出格式吧)
          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        現(xiàn)在可以顯示所有的屬性了.

          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 動態(tài)的數(shù)據(jù)源鏈接
          7 . Report Parameter Changes    增加了一種組合框的parameter view.類似與選省份和城市的那種雙選框.

          2.2 RC0
          1 . Web Service ODA             新增加的Web Service 的數(shù)據(jù)源.可以支持像ebay , amazon的那種Web Service 的數(shù)據(jù)了.
          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提供的這個功能更加的強大.而且很容易就能夠?qū)崿F(xiàn),定制化也比較強(就是說它提供API ,讓你自己編程實現(xiàn)這些功能).
              
          一下子看到BIRT太多的功能了,希望能夠正式發(fā)布的時候birt能夠比較穩(wěn)定吧.


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

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

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

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

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

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

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

           

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

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

               摘要:   閱讀全文

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

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

               摘要:   閱讀全文

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

          [置頂]在tomcat上部署pentaho 1.5.3

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

          1 . 首先需要下載pentaho-j2ee-deployment- , pentaho-data- 和 pentaho-solution- 三個包,分別解壓到三個不同的地方
          2 . 從命令行進入pentaho-j2ee-deployment 目錄,運行ant -p 會列出所有的ant 任務(wù),執(zhí)行war-pentaho-tomcat-hypersonic任務(wù),成功之后會生成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 ,如果你執(zhí)行的是war-pentaho-mysql就是在tomcat目錄下有個mysql5目錄,里面一樣是pentaho.war.我選用的是 hsqldb .
          3 . 在你的tomcat的安裝目錄下找到conf / server.xml 文件,在其中的host 元素下加上如下這一段,這一段是從pentaho的文檔里面抄來的,manual-deployment-pentaho- ,其中它列出來的有些多余,這個文檔應(yīng)該使用confluence 用pdf 方式導出的,抄的時候注意檢查一下xml 元素排版上的問題.它列出的resource 元素太多了,你查看pentaho-data- 包里面,應(yīng)該只有四個數(shù)據(jù)庫hibernate,sampledata,shark,quartz ,把不用的resource元素都刪掉,(應(yīng)該是最上面的四個).如果你的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目錄下,它會自動解壓的,然后關(guān)閉tomcat , 找到pentaho/WEB-INF/web.xml 文件,找到solution-path元素,指向你解壓后的pentaho-solution- 目錄,注意java里面是用正斜杠 / ,如果你從windows的地址欄copy的話注意把反斜杠改一下.
          5 . 修改pentaho/WEB-INF/classes 目錄下的log4j.xml文件,把   里面的value改成INFO,或者更高,這一步是可選項,主要是啟動的時候出現(xiàn)很多不必要的debug 信息.如果你啟動的時候出錯了,再改回來。(一般都是solution-path沒有找對,我用7-zip解壓的時候老是解壓到一個新的目錄,所以后來指 定 solution-path 的時候,目錄地址高了一級.)
          6 . 啟動pentaho-data- 目錄里面的hsqldb數(shù)據(jù)庫.
          7 . 這個時候啟動tomcat ,應(yīng)該是不報任何錯誤的.你把瀏覽器指向http://localhost:8080/pentaho ,會看到pentaho的界面的,只不過是沒有什么顏色的那種.
          8 . 把編譯後的三個war文件copy到tomcat 的webapps目錄下,等它們自動解壓之后,再進去看,發(fā)現(xiàn)有了樣式了。安裝就完成了.

          貼幾張圖:
          pentaho成功啟動后應(yīng)該有 Pentaho BI 平臺服務(wù)器就緒 這句話.


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


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


          sampledata 里面的數(shù)據(jù)




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


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

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

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

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

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

          開源的ETL工具的列表 (排名是亂排的)
          kettle  http://kettle.pentaho.org/  ,pentaho官方的ETL工具,是一個metadata-driven 的ETL工具,不需要自己寫code .
          talend  http://www.talend.com/    talend是talend自己公司的產(chǎn)品,宣傳的是全功能的Data Integration 解決方案,基于eclipse 平臺,包括很多的模塊來實現(xiàn)商業(yè)流程建模,數(shù)據(jù)流程建模,最后輸出的是perl 和 Java code
          jasperETL  http://www.jaspersoft.com/   JasperETL是基于talend的平臺,不太清楚有什么區(qū)別,jaspersoft開發(fā)的ETL產(chǎn)品.
          Octopus   http://www.enhydra.org/tech/octopus/index.html    octopuc是enhydra 的一個ETL工具,enhydra是一個產(chǎn)品跨度非常大的開源站點,它有個開源的Workflow ,Shark ,pentaho就是使用的這個Workflow ,這個組織從workflow 到application server , 從ETL工具到application framework ,還有一些其他的中間件,octopus非常的原始,支持任何的JDBC數(shù)據(jù)源,用XML語言來定義的.也支持JDBC-DOBC ,和excel 和 access ,csv-files, XML files ,用Ant 和 JUnit 來創(chuàng)建表和測試.
          CloverETL http://cloveretl.berlios.de/   CloverETL是提供給你一組API,用XML來定義ETL過程,同樣支持JDBC數(shù)據(jù)源, CloverETL是開源的,但是它是沒有圖形界面的,它提供一個有圖形界面的CloverGUI 來進行ETL的圖形化開發(fā)過程,但是不是開源的,需要購買商業(yè)許可證.
          KETL   http://www.ketl.org/    聽說是幾個前IBM員工做出來的ETL產(chǎn)品,
          另外還有很多.不一一寫介紹了,只列個表吧,
          Joost        http://joost.sourceforge.net/    最近有個web2.0 網(wǎng)站也叫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/

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

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


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

          [置頂]商業(yè)智能平臺研究(九) ETL 中的數(shù)據(jù)質(zhì)量控制

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

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


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

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



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

          oracle warehouse builder 提供查看選中表的結(jié)構(gòu)信息和數(shù)據(jù)信息




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










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

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

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

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



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

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


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

          其中對于應(yīng)用了數(shù)據(jù)轉(zhuǎn)化規(guī)則的列,oracle warehouse builder 又提供四種策略來使數(shù)據(jù)達到我們想要的程度,

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

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


          在你進行數(shù)據(jù)轉(zhuǎn)化之后,你對數(shù)據(jù)的質(zhì)量滿意了,你可以設(shè)置Data Auditor 來監(jiān)控以后傳入的數(shù)據(jù)的質(zhì)量



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

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

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


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

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

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

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

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


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

          具體解釋到kettle來說,metadata就是你定義的每一個動作.kettle的repository里面有如下一些表,我沒有列出全部,從表的結(jié)構(gòu)看一下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 表里面包含了所有支持的數(shù)據(jù)庫鏈接信息,一共是25種,算是支持非常的多了.

          2. 任務(wù)設(shè)計部分的表,R_JOB_HOP 是指兩個數(shù)據(jù)之間的鏈接部分, 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有關(guān),我感覺很奇怪,BulkLoad 是數(shù)據(jù)庫批量處理的方式,大型數(shù)據(jù)庫都是支持的,比如oracle就有sqlloader來支持批量處理,其他的大型數(shù)據(jù)庫應(yīng)該也有吧,而且在 transform里面kettle也有oracle的支持,在任務(wù)設(shè)計的時候就只有mysql的支持,不知道什么原因.
          最后一個Dummy Job Entry 就是什么都不做.

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

          4. 每一步操作的表格與你使用的數(shù)據(jù)庫

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

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

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

          我個人也做過測試。數(shù)據(jù)庫是oracle 10.2.0.1,內(nèi)網(wǎng)連接,從一臺機器的oracle到本地機器,沒有集群,速度也大概是4000 多一點 ,數(shù)據(jù)量大概是16萬。

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


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

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

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

          下一篇介紹ETL的數(shù)據(jù)質(zhì)量控制。


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

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

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

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

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


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


          ETL的功能。

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

          支持的平臺,支持數(shù)據(jù)源,流程設(shè)計,Metadata管理,可擴展性 , API , 數(shù)據(jù)驗證,數(shù)據(jù)質(zhì)量管理 ,

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

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


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

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



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


          下一篇介紹ETL 的metadata .


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

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

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

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

          2008年3月21日

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

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

          5 join dataset

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

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

          1. 用視圖來拼數(shù)據(jù)

             對于  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 表根據(jù)customerid 和其他四個視圖join 起來.

            select customername ,  autototal  , housetotal , estatetotal , othertotal

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

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

           

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

           

          2. 使用Birt 的Joined Data Set

             Birt 提供的Joined Data Set 跟數(shù)據(jù)庫里面的視圖是差不多的概念,使不過一個是在數(shù)據(jù)庫內(nèi)部join 數(shù)據(jù),一個是使用Java 循環(huán)的方式j(luò)oin 數(shù)據(jù).

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

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

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

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

           

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

          1. 性能

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

          2. 左右連接的問題

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

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

          for ( 按照主數(shù)據(jù)循環(huán))  {

              row.customerid = customers.customerid;

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

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

                     b++

               }

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

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

          }

           

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

           

          3. ETL

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

           

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

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

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

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

          2007年6月19日

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

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

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

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

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

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

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

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



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

          2007年6月17日

          eclipse enropa 即將發(fā)布 birt 的新功能一覽

                                  eclipse enropa 即將發(fā)布 birt 的新功能一覽
          最新的eclipse enropa 即將在6月29號發(fā)布了.官方說會有21個項目同時發(fā)布.其中我只關(guān)心三個項目.一個是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 翻譯是發(fā)射,我想應(yīng)該是可以預覽和打印的輸出格式吧)
          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        現(xiàn)在可以顯示所有的屬性了.

          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 動態(tài)的數(shù)據(jù)源鏈接
          7 . Report Parameter Changes    增加了一種組合框的parameter view.類似與選省份和城市的那種雙選框.

          2.2 RC0
          1 . Web Service ODA             新增加的Web Service 的數(shù)據(jù)源.可以支持像ebay , amazon的那種Web Service 的數(shù)據(jù)了.
          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提供的這個功能更加的強大.而且很容易就能夠?qū)崿F(xiàn),定制化也比較強(就是說它提供API ,讓你自己編程實現(xiàn)這些功能).
              
          一下子看到BIRT太多的功能了,希望能夠正式發(fā)布的時候birt能夠比較穩(wěn)定吧.


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

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

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

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

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

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

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

           

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

          2007年6月10日

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

               摘要:   閱讀全文

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

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

               摘要:   閱讀全文

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

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

               摘要:   閱讀全文

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

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

               摘要:   閱讀全文

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

          2007年6月9日

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

               摘要:   閱讀全文

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

          2007年6月2日

          在tomcat上部署pentaho 1.5.3

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

          1 . 首先需要下載pentaho-j2ee-deployment- , pentaho-data- 和 pentaho-solution- 三個包,分別解壓到三個不同的地方
          2 . 從命令行進入pentaho-j2ee-deployment 目錄,運行ant -p 會列出所有的ant 任務(wù),執(zhí)行war-pentaho-tomcat-hypersonic任務(wù),成功之后會生成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 ,如果你執(zhí)行的是war-pentaho-mysql就是在tomcat目錄下有個mysql5目錄,里面一樣是pentaho.war.我選用的是 hsqldb .
          3 . 在你的tomcat的安裝目錄下找到conf / server.xml 文件,在其中的host 元素下加上如下這一段,這一段是從pentaho的文檔里面抄來的,manual-deployment-pentaho- ,其中它列出來的有些多余,這個文檔應(yīng)該使用confluence 用pdf 方式導出的,抄的時候注意檢查一下xml 元素排版上的問題.它列出的resource 元素太多了,你查看pentaho-data- 包里面,應(yīng)該只有四個數(shù)據(jù)庫hibernate,sampledata,shark,quartz ,把不用的resource元素都刪掉,(應(yīng)該是最上面的四個).如果你的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目錄下,它會自動解壓的,然后關(guān)閉tomcat , 找到pentaho/WEB-INF/web.xml 文件,找到solution-path元素,指向你解壓后的pentaho-solution- 目錄,注意java里面是用正斜杠 / ,如果你從windows的地址欄copy的話注意把反斜杠改一下.
          5 . 修改pentaho/WEB-INF/classes 目錄下的log4j.xml文件,把   里面的value改成INFO,或者更高,這一步是可選項,主要是啟動的時候出現(xiàn)很多不必要的debug 信息.如果你啟動的時候出錯了,再改回來。(一般都是solution-path沒有找對,我用7-zip解壓的時候老是解壓到一個新的目錄,所以后來指 定 solution-path 的時候,目錄地址高了一級.)
          6 . 啟動pentaho-data- 目錄里面的hsqldb數(shù)據(jù)庫.
          7 . 這個時候啟動tomcat ,應(yīng)該是不報任何錯誤的.你把瀏覽器指向http://localhost:8080/pentaho ,會看到pentaho的界面的,只不過是沒有什么顏色的那種.
          8 . 把編譯後的三個war文件copy到tomcat 的webapps目錄下,等它們自動解壓之后,再進去看,發(fā)現(xiàn)有了樣式了。安裝就完成了.

          貼幾張圖:
          pentaho成功啟動后應(yīng)該有 Pentaho BI 平臺服務(wù)器就緒 這句話.


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


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


          sampledata 里面的數(shù)據(jù)




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


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

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

          2007年5月22日

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

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

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

          開源的ETL工具的列表 (排名是亂排的)
          kettle  http://kettle.pentaho.org/  ,pentaho官方的ETL工具,是一個metadata-driven 的ETL工具,不需要自己寫code .
          talend  http://www.talend.com/    talend是talend自己公司的產(chǎn)品,宣傳的是全功能的Data Integration 解決方案,基于eclipse 平臺,包括很多的模塊來實現(xiàn)商業(yè)流程建模,數(shù)據(jù)流程建模,最后輸出的是perl 和 Java code
          jasperETL  http://www.jaspersoft.com/   JasperETL是基于talend的平臺,不太清楚有什么區(qū)別,jaspersoft開發(fā)的ETL產(chǎn)品.
          Octopus   http://www.enhydra.org/tech/octopus/index.html    octopuc是enhydra 的一個ETL工具,enhydra是一個產(chǎn)品跨度非常大的開源站點,它有個開源的Workflow ,Shark ,pentaho就是使用的這個Workflow ,這個組織從workflow 到application server , 從ETL工具到application framework ,還有一些其他的中間件,octopus非常的原始,支持任何的JDBC數(shù)據(jù)源,用XML語言來定義的.也支持JDBC-DOBC ,和excel 和 access ,csv-files, XML files ,用Ant 和 JUnit 來創(chuàng)建表和測試.
          CloverETL http://cloveretl.berlios.de/   CloverETL是提供給你一組API,用XML來定義ETL過程,同樣支持JDBC數(shù)據(jù)源, CloverETL是開源的,但是它是沒有圖形界面的,它提供一個有圖形界面的CloverGUI 來進行ETL的圖形化開發(fā)過程,但是不是開源的,需要購買商業(yè)許可證.
          KETL   http://www.ketl.org/    聽說是幾個前IBM員工做出來的ETL產(chǎn)品,
          另外還有很多.不一一寫介紹了,只列個表吧,
          Joost        http://joost.sourceforge.net/    最近有個web2.0 網(wǎng)站也叫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/

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

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


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

          僅列出標題  下一頁

          導航

          統(tǒng)計

          常用鏈接

          留言簿(3)

          隨筆檔案

          相冊

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 邵东县| 运城市| 会昌县| 伊吾县| 张掖市| 南京市| 阳山县| 宁陕县| 新和县| 浮梁县| 洞头县| 吴川市| 湖南省| 保山市| 资中县| 甘孜县| 沅江市| 余江县| 咸宁市| 罗甸县| 天柱县| 长汀县| 武功县| 兰溪市| 临城县| 西充县| 卓资县| 阿坝县| 葫芦岛市| 乃东县| 昌图县| 临清市| 日土县| 枞阳县| 卫辉市| 彭泽县| 靖安县| 绥芬河市| 杭州市| 鹤山市| 达州市|