//
四種BI 開源工具介紹-SpagoBI,openI,JasperSoft,Pentaho - 天善智能:專注于商業智能BI和數據分析、大數據領域的垂直社區平臺
https://ask.hellobi.com/blog/liangyong/1658
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??梢詸z驗數據的質量;
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 LanguageopenI具有一個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的框架,主頁是http://www.openlaszlo.org/。新版的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 http://openi.sourceforge.net
jaspersoft http://www.jaspersoft.com/
spagoBI http://spago.eng.it
pentaho http://www.pentaho.com/
開源BI套件里面還有saiku,olap的工具,開源里面有apache kylin