從技術角度來講 BI 包含了 ETL、DW、OLAP、DM等多環節。簡單的說就是把交易系統已經發生過的數據,經過ETL工具抽取到主題明確的數據倉庫中,OLAP後生成Cube或報表,透過Portal展示給用戶,用戶 利用這些通過分類、彙集、描述和可視化的數據,支持業務決策。java
這些衆多的BI項目從規模和對BI系統支撐的完善程度上來講,大致能夠分爲Framework、Stand-alone Tools和BI Suit三種類型。node
開源框架,這是在商業BI系統中所沒有的。咱們可使用它們來構建本身的BI工具,或者加強和擴展咱們的BI解決方案。web
獨立的BI工具,這是開源項目中數量最多的一類。不少工具只側重BI系統中的某個環節和方面,如ETL、Report、OLAP和Database等等。數據庫
在統一的架構下提供了多種BI系統的特性的工具集合。就目前的狀況看,不論是商業軟件仍是開源軟件,尚未任何一個套件提供了完整的端到端的BI解決方案。這些開源的BI Suit是經過鏈接多個其餘的組件和工具的方式造成套件的,因爲BI系統涉及到的工具是很是多的,因此整合一套完整的BI解決方案是很困難的。apache
一個完整的BI解決方案中有多種工具來完成BI系統中各個階段的工做。瀏覽器
數據抽取、轉換和加載工具。優秀的ETL工具應該具備如下特性:緩存
目前較爲知名的開源ETL工具備:服務器
優秀的報表工具一般具備如下特性:網絡
目前較爲知名的開源報表工具備:架構
聯機分析處理工具。目前開源的OLAP工具也分爲MOLAP(多維型)、ROLAP(關係型)和HOLAP(混合型),優秀的OLAP工具一般有如下特性:
目前較爲知名的開源OLAP工具備:
開源的數據庫也有不少,大多數爲關係型數據庫,少數爲應用於數據倉庫環境作了專門的優化工做。Bizgres以PostgreSQL爲基礎進行了數據倉庫環境下的優化,提升了分析查詢性能。
下面列出相對成熟和完整,而且有借鑑意義的開源BI套件。
Openi是一個Java開發的Web應用,能對OLAP服務器、關係數據庫和數據挖掘服務器進行分析和報表展現,很是易於使用和部署,界面美觀友好,後續還將支持數據挖掘和ETL等。Openi主要包括:
Openi架構:
RDL是Report Define Language
openI具備一個BI應有的大部分特性了,
report : jasperreport ,JFreeChart
olap : mondrian + JPivot
data mining: weka
它的各層銜接的很是的緊,好像用了eigenbase作數據管理,不是很清楚這部分,openI在作數據挖掘的時候它沒有調度器,它的Portlet Interface 主要是指在用JPivot的時候JPivot能夠處處使用openI沒有本身的開發專屬工具,入門門檻也相對較低。
Jaspersoft商務智能套件是創建在模塊的基礎上的,所以很容易創建,以此證實其遞增價值。Jaspersoft主要包括:
JasperSoft最重要的就是它的報表,可是它支持輸出的格式不少,管理的方式也不少,也用了eigenbase作數據管理。
有比較完善的權限控制,用的acegi,支持多種數據源,只要有JDBC驅動。它的產品已經造成了一個產品線,最著名固然仍是它的JasperReport。
你能夠看到它爲了更好的管理各類報表和數據,有本身專屬的展示平臺JasperServer,這個平臺是 06/26/2006才建立的,徹底是JasperSoft爲了實現BI而邁出的重要一步。jasper沒有數據挖掘。
有任務調度器,用了quartz;
有本身專屬的ETL: JasperETL;
它有本身的OLAP SERVER : jasperAnalysis;
展現層用到了AJAX和applet, 也有DashBoard;
查詢語句支持SQL, Hibernate (HQL), XPath (XML), EJBQL, MDX(多維查詢語言,OLAP專用,SQLSERVER用的是XMLA)。
SpagoBI 集成了Mondrain和JProvit,可以經過OpenLaszlo產生實時報表。SpagoBI使用java開發,不依賴於具體的操做系統,有很強的擴展能力。它主要包括:
根據其Roadmap能夠看出,SpagoBI將融入更多的BI功能,甚至BI以外的功能。
SpagoBI架構:
spagoBI平臺功能很強大,也很複雜。
它的各個組件之間模塊化很好,Plugin加載,來看一下它的各個組件:
report : BirtReportDriver , BirtReportEngine , JasperReportDriver ,JasperReportEngine;
GEO : GeoDriver , GeoEngine(用地圖顯示數據和查詢的);
OLAP : JPivotDriver , JPivotEngine;
QBE : QbeDriver, QbeEngine ;
Data Mining : WekaDriver , WekaEngine;
Security : ExoPortalSecurityProvider;
Booklet (小冊子) : BookletsComponent : it is a component for booklets generation.主要包括文件上傳,工做流,OpenOffice支持;
它還有文檔管理,用的是apache的JackRabbit,有搜索功能,用的lucene。是作cms,portlet,workflow出身的,技術很強。
spagoBI的使用的工具也比較多:
Report : Bird , JasperReport;
ETL : Octupus 和 talend;
OLAP : Mondrian 和 JPivot;
Data Mining : Weka;
Portal : eXoPortal;
它的展示層也使用了AJAX特性,另外它在DashBoard也使用了openlaszlo,(一個用Java code 生成Flash的框架,主頁是http://www.openlaszlo.org/。新版的4.0好像也要支持生成DHTML) 因此spagoBI的DashBoard界面很友好。
spagoBI的ETL是很是之牛的。你能夠看到它下面的數據處理層是單獨分出來的。
Pentaho是一個以工做流爲核心的、強調面向解決方案而非工具組件的BI套件,整合了多個開源項目,目標是和商業BI相抗衡。它包括:
由上可見Pentaho是一個很完善的BI解決方案。Pentaho偏向於與業務流程相結合的BI解決方案,側重於大中型企業應用。
pentaho的體系結構跟spagoBI很是相像,不過pentaho喜歡把本身的東西稱做solution,如下引用自pentaho的whitepaper:
pentaho BI 平臺不一樣於傳統的BI產品。它是一個以流程爲中心的,面向解決方案的(Solution)的框架,具備商業智能(BI)組件,使得公司能夠開發商業智能問題的完整解決方案pentaho同樣把數據處理層看的很重要,多種數據顯示方式,甚至有RSS輸出。
pentaho是有各類開源組件組成的。
ETL : Kettle (界面上顯示的是pentaho Data Integration ,previously Kettle)
Report : Pentaho Report (它也支持Birt 和 JasperReport 的集成 ,還有專門的文檔)
OLAP : Mondrian 和 JPivot (Mondrian已經加入了pentaho)
Platform : Pentaho Planform
Data Mining: Weka (Weka也加入了pentaho)