//
四種BI 開源工具介紹-SpagoBI,openI,JasperSoft,Pentaho - 天善智能:專注于商業(yè)智能BI和數(shù)據(jù)分析、大數(shù)據(jù)領(lǐng)域的垂直社區(qū)平臺(tái)
https://ask.hellobi.com/blog/liangyong/1658
1 BI系統(tǒng)的簡(jiǎn)述
從技術(shù)角度來說 BI 包含了 ETL、DW、OLAP、DM等多環(huán)節(jié)。簡(jiǎn)單的說就是把交易系統(tǒng)已經(jīng)發(fā)生過的數(shù)據(jù),通過ETL工具抽取到主題明確的數(shù)據(jù)倉庫中,OLAP后生成Cube或報(bào)表,透過Portal展現(xiàn)給用戶,用戶 利用這些經(jīng)過分類、聚集、描述和可視化的數(shù)據(jù),支持業(yè)務(wù)決策。
這些眾多的BI項(xiàng)目從規(guī)模和對(duì)BI系統(tǒng)支撐的完善程度上來說,大體可以分為Framework、Stand-alone Tools和BI Suit三種類型。
Framework
開源框架,這是在商業(yè)BI系統(tǒng)中所沒有的。我們可以使用它們來構(gòu)建自己的BI工具,或者增強(qiáng)和擴(kuò)展我們的BI解決方案。
Stand-alone Tools
獨(dú)立的BI工具,這是開源項(xiàng)目中數(shù)量最多的一類。很多工具只側(cè)重BI系統(tǒng)中的某個(gè)環(huán)節(jié)和方面,如ETL、Report、OLAP和Database等等。
BI Suit
在統(tǒng)一的架構(gòu)下提供了多種BI系統(tǒng)的特性的工具集合。就目前的情況看,不管是商業(yè)軟件還是開源軟件,還沒有任何一個(gè)套件提供了完整的端到端的BI解決方案。這些開源的BI Suit是通過連接多個(gè)其他的組件和工具的方式形成套件的,由于BI系統(tǒng)涉及到的工具是非常多的,所以整合一套完整的BI解決方案是很困難的。
2 BI解決方案中的工具
一個(gè)完整的BI解決方案中有多種工具來完成BI系統(tǒng)中各個(gè)階段的工作。
2.1 ETL工具
數(shù)據(jù)抽取、轉(zhuǎn)換和加載工具。優(yōu)秀的ETL工具應(yīng)該具有以下特性:
Workflow Management, Job Execution and Scheduling Manager。能方便地定義流程并自動(dòng)化執(zhí)行ETL任務(wù);
Centralized Metadata Repository and Management。集中存儲(chǔ)和管理符合業(yè)界標(biāo)準(zhǔn)的元數(shù)據(jù);
Data Profile and Validation。可以檢驗(yàn)數(shù)據(jù)的質(zhì)量;
High Performance。在大負(fù)荷的任務(wù)執(zhí)行中仍然有良好的性能;
Scalable, Platform Independent。具有良好的彈性,支持多種操作系統(tǒng)和數(shù)據(jù)庫系統(tǒng),能操作多種異構(gòu)的數(shù)據(jù)源;
Open Architecture and API。具有開放的架構(gòu)和易于使用的二次開發(fā)接口。
目前較為知名的開源ETL工具有:
KETL,由具有IBM和KPMG背景的Kinetic Networks公司開發(fā),現(xiàn)在已經(jīng)有三年多的產(chǎn)品應(yīng)用歷史,成功應(yīng)用于一些產(chǎn)品中,在點(diǎn)擊流(ClickStream)分析應(yīng)用中表現(xiàn)出色。KETL采用Plug-in的架構(gòu),使用Java開發(fā);
KETTLE,為一個(gè)元數(shù)據(jù)驅(qū)動(dòng)的ETL工具。已經(jīng)加入Pentaho;
Clover ETL,為一個(gè)基于Java的ETL Framework,可以用來開發(fā)自己的ETL應(yīng)用;
Enhydra Octopus,為一個(gè)基于Java的ETL工具,使用JDBC來連接各種數(shù)據(jù)源,易于使用和部署。曾有人應(yīng)用于電信網(wǎng)絡(luò)資源分析系統(tǒng)中。
2.2 報(bào)表工具
優(yōu)秀的報(bào)表工具通常具有以下特性:
支持多種數(shù)據(jù)源;
直觀的可視化設(shè)計(jì)器,簡(jiǎn)單易用的報(bào)表定制功能;
方便的數(shù)據(jù)訪問和格式化,豐富的數(shù)據(jù)呈現(xiàn)方式;
符合數(shù)據(jù)呈現(xiàn)的通用標(biāo)準(zhǔn),能和應(yīng)用程序很好地進(jìn)行結(jié)合;
易于擴(kuò)展和部署;
目前較為知名的開源報(bào)表工具有:
JasperReports,一個(gè)優(yōu)秀的Java報(bào)表工具,始于2001,現(xiàn)在JasperSoft公司持續(xù)開發(fā)和支持該工具。該工具類似于商業(yè)軟件Crystal Report,支持PDF、HTML、XLS、CSV和XML文件輸出格式,現(xiàn)在是Java開發(fā)者最常用的報(bào)表工具;
OpenReports,提供基于web的靈活報(bào)表解決方案,通過瀏覽器自動(dòng)生成動(dòng)態(tài)PDF,XLS,HTMLCSV 和Chart報(bào)表,它是用Java開發(fā)的,使用JasperReports 作為報(bào)表引擎,利用到的開源技術(shù)有Hibernate,Veloctiy,Webwork;
JFreeReport,現(xiàn)在是Pentaho的一部分,它是一個(gè)優(yōu)秀的用來生成報(bào)表的Java類庫。它為Java應(yīng)用程序提供一個(gè)靈活的打印 功能并支持輸出到打印機(jī)和PDF, Excel, HTML和XHTML, PlainText, XML和CSV文件中;
Eclipse BIRT,是Eclipse下面的一個(gè)企業(yè)智能和報(bào)表 工具,能為J2EE的WEB應(yīng)用程序創(chuàng)建漂亮醒目的PDF或者HTML格式的報(bào)表,它提供了核心的報(bào)表功能。
2.3 OLAP工具
聯(lián)機(jī)分析處理工具。目前開源的OLAP工具也分為MOLAP(多維型)、ROLAP(關(guān)系型)和HOLAP(混合型),優(yōu)秀的OLAP工具通常有以下特性:
良好的執(zhí)行性能,能快速地進(jìn)行分析處理工作;
良好的適用性和可伸縮性;
開放式接口和豐富的API;
目前較為知名的開源OLAP工具有:
Mondrian,是Pentaho的一部分,為一個(gè)用Java開發(fā)的OLAP服務(wù)器,實(shí)現(xiàn)了MDX語言、XML解析和JOLAP規(guī)范,可以不寫SQL就能分析存儲(chǔ)于SQL 數(shù)據(jù)庫的龐大數(shù)據(jù)集,可以封裝JDBC數(shù)據(jù)源并把數(shù)據(jù)以多維的方式展現(xiàn)出來;
JPivot,是一個(gè)JSP 自定制的標(biāo)簽庫,可以繪制一個(gè)OLAP表格和圖表。用戶可以執(zhí)行 典型的OLAP導(dǎo)航,如下鉆,切片和方塊。它使用Mondrian 作為其OLAP服務(wù)器。它使用WCF (Web Component Framework) ,基于XML/XSLT來渲染W(wǎng)eb UI組件。JPivot在元數(shù)據(jù)緩存方面的過于簡(jiǎn)化的整體性初始化裝載的做法將限制它只能處理很小的立方體(Cube)。
2.4 數(shù)據(jù)庫
開源的數(shù)據(jù)庫也有很多,大多數(shù)為關(guān)系型數(shù)據(jù)庫,少數(shù)為應(yīng)用于數(shù)據(jù)倉庫環(huán)境做了專門的優(yōu)化工作。Bizgres以PostgreSQL為基礎(chǔ)進(jìn)行了數(shù)據(jù)倉庫環(huán)境下的優(yōu)化,提高了分析查詢性能。
3 開源BI套件
下面列出相對(duì)成熟和完整,并且有借鑒意義的開源BI套件。
openI
Openi是一個(gè)Java開發(fā)的Web應(yīng)用,能對(duì)OLAP服務(wù)器、關(guān)系數(shù)據(jù)庫和數(shù)據(jù)挖掘服務(wù)器進(jìn)行分析和報(bào)表展示,非常易于使用和部署,界面美觀友好,后續(xù)還將支持?jǐn)?shù)據(jù)挖掘和ETL等。Openi主要包括:
OLAP展示:JPivot
報(bào)表工具:JFreeChart
分析數(shù)據(jù)源連接器
Openi架構(gòu):
RDL是Report Define LanguageopenI具有一個(gè)BI應(yīng)有的大部分特性了,report : jasperreport ,JFreeChartolap : mondrian + JPivotdata mining: weka它的各層銜接的非常的緊,好像用了eigenbase做數(shù)據(jù)管理,不是很清楚這部分,openI在做數(shù)據(jù)挖掘的時(shí)候它沒有調(diào)度器,它的Portlet Interface 主要是指在用JPivot的時(shí)候JPivot可以到處使用openI沒有自己的開發(fā)專屬工具,入門門檻也相對(duì)較低。
JasperSoft
Jaspersoft商務(wù)智能套件是建立在模塊的基礎(chǔ)上的,因此很容易建立,以此證明其遞增價(jià)值。Jaspersoft主要包括:
JasperServer:為商業(yè)用戶的互動(dòng),特定和預(yù)設(shè)查詢與報(bào)告服務(wù)器
JasperAnalysis:為商業(yè)用戶的互動(dòng)提供OLAP數(shù)據(jù)分析
JasperETL:開發(fā)人員和數(shù)據(jù)庫管理員的高性能的圖形數(shù)據(jù)整合
JasperReports:開發(fā)人員所用的Java報(bào)表函數(shù)庫
JasperSoft最重要的就是它的報(bào)表,但是它支持輸出的格式很多,管理的方式也很多,也用了eigenbase做數(shù)據(jù)管理。
有比較完善的權(quán)限控制,用的acegi,支持多種數(shù)據(jù)源,只要有JDBC驅(qū)動(dòng)。它的產(chǎn)品已經(jīng)形成了一個(gè)產(chǎn)品線,最著名當(dāng)然還是它的JasperReport。
你可以看到它為了更好的管理各種報(bào)表和數(shù)據(jù),有自己專屬的展現(xiàn)平臺(tái)JasperServer,這個(gè)平臺(tái)是 06/26/2006才創(chuàng)建的,完全是JasperSoft為了實(shí)現(xiàn)BI而邁出的重要一步。jasper沒有數(shù)據(jù)挖掘。
有任務(wù)調(diào)度器,用了quartz;有自己專屬的ETL: JasperETL;它有自己的OLAP SERVER : jasperAnalysis;展示層用到了AJAX和applet, 也有DashBoard;查詢語句支持SQL, Hibernate (HQL), XPath (XML), EJBQL, MDX(多維查詢語言,OLAP專用,SQLSERVER用的是XMLA)。
SpagoBI
SpagoBI 集成了Mondrain和JProvit,能夠通過OpenLaszlo產(chǎn)生實(shí)時(shí)報(bào)表。SpagoBI使用java開發(fā),不依賴于具體的操作系統(tǒng),有很強(qiáng)的擴(kuò)展能力。它主要包括:
報(bào)表工具:JasperReports /Eclipse BIRT/ iReport
OLAP Server:Mondrian
OLAP展示:JPivot
數(shù)據(jù)挖掘組件:Weka
Map引擎:Geo
ETL:BIE
搜索引擎:Lucene
Dashboard:OpenLaszlo
Portal Server:JBoss/ Tomcat/ JOnAS
根據(jù)其Roadmap可以看出,SpagoBI將融入更多的BI功能,甚至BI之外的功能。
SpagoBI架構(gòu):
spagoBI平臺(tái)功能很強(qiáng)大,也很復(fù)雜。它的各個(gè)組件之間模塊化很好,Plugin加載,來看一下它的各個(gè)組件:report : BirtReportDriver , BirtReportEngine , JasperReportDriver ,JasperReportEngine;GEO : GeoDriver , GeoEngine(用地圖顯示數(shù)據(jù)和查詢的);OLAP : JPivotDriver , JPivotEngine;QBE : QbeDriver, QbeEngine ; Data Mining : WekaDriver , WekaEngine;Security : ExoPortalSecurityProvider;Booklet (小冊(cè)子) : BookletsComponent : it is a component for booklets generation.主要包括文件上傳,工作流,OpenOffice支持;它還有文檔管理,用的是apache的JackRabbit,有搜索功能,用的lucene。是做cms,portlet,workflow出身的,技術(shù)很強(qiáng)。spagoBI的使用的工具也比較多:Report : Bird , JasperReport;ETL : Octupus 和 talend;OLAP : Mondrian 和 JPivot;Data Mining : Weka;Portal : eXoPortal;
它的展現(xiàn)層也使用了AJAX特性,另外它在DashBoard也使用了openlaszlo,(一個(gè)用Java code 生成Flash的框架,主頁是http://www.openlaszlo.org/。新版的4.0好像也要支持生成DHTML) 所以spagoBI的DashBoard界面很友好。
spagoBI的ETL是非常之牛的。你可以看到它下面的數(shù)據(jù)處理層是單獨(dú)分出來的。
Pentaho
Pentaho是一個(gè)以工作流為核心的、強(qiáng)調(diào)面向解決方案而非工具組件的BI套件,整合了多個(gè)開源項(xiàng)目,目標(biāo)是和商業(yè)BI相抗衡。它包括:
工作流引擎:Shark and JaWE
數(shù)據(jù)庫:Firebird RDBMS
集成管理和開發(fā)環(huán)境:Eclipse
報(bào)表工具:Eclipse BIRT
ETL工具:Enhydra/Kettle
OLAP Server:Mondrian
OLAP展示:JPivot
數(shù)據(jù)挖掘組件:Weka
應(yīng)用服務(wù)器和Portal服務(wù)器:JBoss
單點(diǎn)登陸服務(wù)及LDap認(rèn)證:JOSSO
自定義腳本支持:Mozilla Rhino Javascript腳本處理器
由上可見Pentaho是一個(gè)很完善的BI解決方案。Pentaho偏向于與業(yè)務(wù)流程相結(jié)合的BI解決方案,側(cè)重于大中型企業(yè)應(yīng)用。
Pentaho架構(gòu):
pentaho的體系結(jié)構(gòu)跟spagoBI非常相像,不過pentaho喜歡把自己的東西稱作solution,以下引用自pentaho的whitepaper:
pentaho BI 平臺(tái)不同于傳統(tǒng)的BI產(chǎn)品。它是一個(gè)以流程為中心的,面向解決方案的(Solution)的框架,具有商業(yè)智能(BI)組件,使得公司可以開發(fā)商業(yè)智能問題的完整解決方案pentaho一樣把數(shù)據(jù)處理層看的很重要,多種數(shù)據(jù)顯示方式,甚至有RSS輸出。
pentaho是有各種開源組件組成的。
ETL : Kettle (界面上顯示的是pentaho Data Integration ,previously Kettle)Report : Pentaho Report (它也支持Birt 和 JasperReport 的集成 ,還有專門的文檔)OLAP : Mondrian 和 JPivot (Mondrian已經(jīng)加入了pentaho)Platform : Pentaho PlanformData Mining: Weka (Weka也加入了pentaho)
官方站點(diǎn)
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