四種BI 開源工具介紹-SpagoBI,openI,JasperSoft,Pentaho
1 BI系統的簡述
從技術角度來說 BI 包含了 ETL、DW、OLAP、DM等多環節。簡單的說就是把交易系統已經發生過的數據,通過ETL工具抽取到主題明確的數據倉庫中,OLAP後生成Cube或報表,透過Portal展現給用戶,用戶 利用這些經過分類、聚集、描述和可視化的數據,支持業務決策。
這些眾多的BI項目從規模和對BI系統支撐的完善程度上來說,大體可以分為Framework、Stand-alone Tools和BI Suit三種類型。
- Framework
開源框架,這是在商業BI系統中所沒有的。我們可以使用它們來構建自己的BI工具,或者增強和擴展我們的BI解決方案。
- Stand-alone Tools
獨立的BI工具,這是開源項目中數量最多的一類。很多工具只側重BI系統中的某個環節和方面,如ETL、Report、OLAP和Database等等。
- BI Suit
在統一的架構下提供了多種BI系統的特性的工具集合。就目前的情況看,不管是商業軟體還是開源軟體,還沒有任何一個套件提供了完整的端到端的BI解決方案。這些開源的BI Suit是通過連接多個其他的組件和工具的方式形成套件的,由於BI系統涉及到的工具是非常多的,所以整合一套完整的BI解決方案是很困難的。
2 BI解決方案中的工具
一個完整的BI解決方案中有多種工具來完成BI系統中各個階段的工作。
2.1 ETL工具
數據抽取、轉換和載入工具。優秀的ETL工具應該具有以下特性:
- Workflow Management, Job Execution and Scheduling Manager。能方便地定義流程並自動化執行ETL任務;
- Centralized Metadata Repository and Management。集中存儲和管理符合業界標準的元數據;
- Data Profile and Validation。可以檢驗數據的質量;
- High Performance。在大負荷的任務執行中仍然有良好的性能;
- Scalable, Platform Independent。具有良好的彈性,支持多種操作系統和資料庫系統,能操作多種異構的數據源;
- Open Architecture and API。具有開放的架構和易於使用的二次開發介面。
目前較為知名的開源ETL工具有:
- KETL,由具有IBM和KPMG背景的Kinetic Networks公司開發,現在已經有三年多的產品應用歷史,成功應用於一些產品中,在點擊流(ClickStream)分析應用中表現出色。KETL採用Plug-in的架構,使用Java開發;
- KETTLE,為一個元數據驅動的ETL工具。已經加入Pentaho;
- Clover ETL,為一個基於Java的ETL Framework,可以用來開發自己的ETL應用;
- Enhydra Octopus,為一個基於Java的ETL工具,使用JDBC來連接各種數據源,易於使用和部署。曾有人應用於電信網路資源分析系統中。
2.2 報表工具
優秀的報表工具通常具有以下特性:
- 支持多種數據源;
- 直觀的可視化設計器,簡單易用的報表定製功能;
- 方便的數據訪問和格式化,豐富的數據呈現方式;
- 符合數據呈現的通用標準,能和應用程序很好地進行結合;
- 易於擴展和部署;
目前較為知名的開源報表工具有:
- JasperReports,一個優秀的Java報表工具,始於2001,現在JasperSoft公司持續開發和支持該工具。該工具類似於商業軟體Crystal Report,支持PDF、HTML、XLS、CSV和XML文件輸出格式,現在是Java開發者最常用的報表工具;
- OpenReports,提供基於web的靈活報表解決方案,通過瀏覽器自動生成動態PDF,XLS,HTMLCSV 和Chart報表,它是用Java開發的,使用JasperReports 作為報表引擎,利用到的開源技術有Hibernate,Veloctiy,Webwork;
- JFreeReport,現在是Pentaho的一部分,它是一個優秀的用來生成報表的Java類庫。它為Java應用程序提供一個靈活的列印 功能並支持輸出到印表機和PDF, Excel, HTML和XHTML, PlainText, XML和CSV文件中;
- Eclipse BIRT,是Eclipse下面的一個企業智能和報表 工具,能為J2EE的WEB應用程序創建漂亮醒目的PDF或者HTML格式的報表,它提供了核心的報表功能。
2.3 OLAP工具
聯機分析處理工具。目前開源的OLAP工具也分為MOLAP(多維型)、ROLAP(關係型)和HOLAP(混合型),優秀的OLAP工具通常有以下特性:
- 良好的執行性能,能快速地進行分析處理工作;
- 良好的適用性和可伸縮性;
- 開放式介面和豐富的API;
目前較為知名的開源OLAP工具有:
- Mondrian,是Pentaho的一部分,為一個用Java開發的OLAP伺服器,實現了MDX語言、XML解析和JOLAP規範,可以不寫SQL就能分析存儲於SQL 資料庫的龐大數據集,可以封裝JDBC數據源並把數據以多維的方式展現出來;
- JPivot,是一個JSP 自定製的標籤庫,可以繪製一個OLAP表格和圖表。用戶可以執行 典型的OLAP導航,如下鑽,切片和方塊。它使用Mondrian 作為其OLAP伺服器。它使用WCF (Web Component Framework) ,基於XML/XSLT來渲染Web UI組件。JPivot在元數據緩存方面的過於簡化的整體性初始化裝載的做法將限制它只能處理很小的立方體(Cube)。
2.4 資料庫
開源的資料庫也有很多,大多數為關係型資料庫,少數為應用於數據倉庫環境做了專門的優化工作。Bizgres以PostgreSQL為基礎進行了數據倉庫環境下的優化,提高了分析查詢性能。
3 開源BI套件
下面列出相對成熟和完整,並且有借鑒意義的開源BI套件。
openI
Openi是一個Java開發的Web應用,能對OLAP伺服器、關係資料庫和數據挖掘伺服器進行分析和報表展示,非常易於使用和部署,界面美觀友好,後續還將支持數據挖掘和ETL等。Openi主要包括:
- OLAP展示:JPivot
- 報表工具:JFreeChart
- 分析數據源連接器
Openi架構:
RDL是Report Define Language
openI具有一個BI應有的大部分特性了,report : jasperreport ,JFreeChartolap : mondrian + JPivotdata mining: weka它的各層銜接的非常的緊,好像用了eigenbase做數據管理,不是很清楚這部分,openI在做數據挖掘的時候它沒有調度器,它的Portlet Interface 主要是指在用JPivot的時候JPivot可以到處使用openI沒有自己的開發專屬工具,入門門檻也相對較低。JasperSoft
Jaspersoft商務智能套件是建立在模塊的基礎上的,因此很容易建立,以此證明其遞增價值。Jaspersoft主要包括:
- JasperServer:為商業用戶的互動,特定和預設查詢與報告伺服器
- JasperAnalysis:為商業用戶的互動提供OLAP數據分析
- JasperETL:開發人員和資料庫管理員的高性能的圖形數據整合
- JasperReports:開發人員所用的Java報表函數庫
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
SpagoBI 集成了Mondrain和JProvit,能夠通過OpenLaszlo產生實時報表。SpagoBI使用java開發,不依賴於具體的操作系統,有很強的擴展能力。它主要包括:
- 報表工具:JasperReports /Eclipse BIRT/ iReport
- OLAP Server:Mondrian
- OLAP展示:JPivot
- 數據挖掘組件:Weka
- Map引擎:Geo
- ETL:BIE
- 搜索引擎:Lucene
- Dashboard:OpenLaszlo
- Portal Server:JBoss/ Tomcat/ JOnAS
根據其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的框架,主頁是Home - OpenLaszlo Archives。新版的4.0好像也要支持生成DHTML) 所以spagoBI的DashBoard界面很友好。
spagoBI的ETL是非常之牛的。你可以看到它下面的數據處理層是單獨分出來的。
Pentaho
Pentaho是一個以工作流為核心的、強調面向解決方案而非工具組件的BI套件,整合了多個開源項目,目標是和商業BI相抗衡。它包括:
- 工作流引擎:Shark and JaWE
- 資料庫:Firebird RDBMS
- 集成管理和開發環境:Eclipse
- 報表工具:Eclipse BIRT
- ETL工具:Enhydra/Kettle
- OLAP Server:Mondrian
- OLAP展示:JPivot
- 數據挖掘組件:Weka
- 應用伺服器和Portal伺服器:JBoss
- 單點登陸服務及LDap認證:JOSSO
- 自定義腳本支持:Mozilla Rhino Javascript腳本處理器
由上可見Pentaho是一個很完善的BI解決方案。Pentaho偏向於與業務流程相結合的BI解決方案,側重於大中型企業應用。
Pentaho架構:
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 PlanformData Mining: Weka (Weka也加入了pentaho)官方站點
- openI Open Source and FHIR
- jaspersoft Jaspersoft Business Intelligence Software
- spagoBI http://spago.eng.it
- pentaho Pentaho | Data Integration and Business Analytics Platform for Big Data Deployments
推薦閱讀:
※Google 2016 開源項目報告
※當你決定把代碼開源之前先選擇一個合適的 License
※我想把自己寫的程序開源,需要對源碼做哪些處理?