現(xiàn)在市場(chǎng)上開源 BI 產(chǎn)品比較多壶硅,各個(gè)產(chǎn)品的側(cè)重點(diǎn)不同威兜,有的以報(bào)表為主、有的以可視化為主庐椒、有的以查詢分析為主椒舵。這里我們選取了一些主流的開源 BI 產(chǎn)品,從產(chǎn)品功能约谈、可視化能力笔宿、數(shù)據(jù)源支持以及使用文檔等方面進(jìn)行對(duì)比,希望對(duì)你有幫助棱诱。
Superset
由Airbnb貢獻(xiàn)的輕量級(jí)BI產(chǎn)品泼橘,目前在GitHub上有3萬多顆星,其受歡迎程度可見一斑迈勋。Superset提供了Dashboard和多維分析兩大類功能炬灭,后者可以將制作的結(jié)果發(fā)布到Dashboard上也可以單獨(dú)使用。
數(shù)據(jù)源方面靡菇,Superset支持CSV重归、MySQL、Oracle镰官、Redshift提前、Drill、Hive泳唠、Impala狈网、Elasticsearch等27種數(shù)據(jù)源,并深度支持Druid。
Superset語義層建模(被稱為Table)時(shí)只能基于單表拓哺,多表關(guān)聯(lián)要事先邏輯化成視圖再使用勇垛,這點(diǎn)有點(diǎn)別扭。在Table里要顯示地將字段標(biāo)記成可分組士鸥、可過濾闲孤,指定聚合方式(計(jì)數(shù)、求和等)烤礁,頁面在使用時(shí)需要選擇Group by(并沒有叫做維度)讼积、Metrics和Filter進(jìn)行查詢。
Superset可以在多個(gè)時(shí)間維度上觀察脚仔,商業(yè)分析中的很多問題都是與時(shí)間密切相關(guān)的勤众。Superset 有 4 種專門針對(duì)時(shí)間序列的圖表,使用這些圖表時(shí)鲤脏,你需要指定一個(gè)字段為時(shí)間維度们颜,之后就可以對(duì)時(shí)間維度做豐富的操作。
?? 從不同時(shí)間粒度去查看你關(guān)心的指標(biāo)(小時(shí)/日/周/月/季度/年)
?? 對(duì)時(shí)間序列做移動(dòng)平均猎醇,比如看一個(gè)指標(biāo)的 7 日平均線
?? 可以對(duì)時(shí)間序列做偏移窥突,再做對(duì)比,比如把本周的銷售業(yè)績(jī)與上周同期放在一張圖表中對(duì)比
?? 不在圖表上顯示指標(biāo)的絕對(duì)值硫嘶,而是顯示它隨著時(shí)間變化的增長(zhǎng)速度
Superset還提供了直接使用SQL查詢生成圖表的方式(SQL Lab)來強(qiáng)化臨時(shí)分析阻问,方便數(shù)據(jù)分析師編寫SQL查詢數(shù)據(jù)。
Superset的可視化效果非常好音半,直接支持了幾十種圖形则拷,從前面的截圖中可以看到可視化效果很棒。重要的是曹鸠,它還提供了圖形擴(kuò)展支持煌茬,通過開發(fā)插件還可以對(duì)接任意可視化庫,如ECharts彻桃、AntV坛善、HighCharts、VX和D3邻眷,這點(diǎn)對(duì)用戶非常實(shí)用眠屎。
文檔方面,Superset表現(xiàn)比較糟糕肆饶,寫的過于簡(jiǎn)單改衩,雖然在安裝與快速入門方面提供了很完整的文檔,但在具體功能的介紹方面文檔嚴(yán)重缺失驯镊。就算有些功能有文檔葫督,文檔的結(jié)構(gòu)也很混亂竭鞍,所以大部分功能只能自己去嘗試。
Superset作為一個(gè)完整的BI系統(tǒng)橄镜,除了Dashboard和多維分析還包括調(diào)度和郵件報(bào)表偎快,以及系統(tǒng)管理和權(quán)限控制等平臺(tái)管理功能。綜合來看洽胶,Superset作為大廠開源的BI產(chǎn)品還是非常值得一用晒夹。
Grafana
GitHub 上的星星數(shù)比 Superset 還多,之所以把它放在第二個(gè)來說是因?yàn)樗倪m用范圍跟大多數(shù) BI 產(chǎn)品不太一樣姊氓,Grafana 主要用于對(duì)接時(shí)序數(shù)據(jù)庫丐怯,分析展示監(jiān)控?cái)?shù)據(jù)。目前支持的數(shù)據(jù)源包括 InfluxDB他膳、Elasticsearch响逢、Graphite、Prometheus 等棕孙,同時(shí)也支持 MySQL、MSSQL些膨、PG 等關(guān)系數(shù)據(jù)庫蟀俊。
每種數(shù)據(jù)源的查詢語言和功能明顯不同,Grafana 可以將來自多個(gè)數(shù)據(jù)源的數(shù)據(jù)組合到一個(gè)儀表板上订雾,但每個(gè)面板都要綁定到屬于特定組織的特定數(shù)據(jù)源肢预。
話不多說,上張效果圖感受一下可視化效果洼哎。
Grafana 為不同數(shù)據(jù)源提供了不同的編輯器烫映,這樣可以方便使用特定數(shù)據(jù)源的查詢語法,很牛叉噩峦。有時(shí)經(jīng)常拿 Grafana 跟 Kibana 對(duì)比锭沟,在數(shù)據(jù)源種類和查詢支持上 Grafana 要豐富得多。
在可視化構(gòu)建過程中识补,面板(Panel)是可視化基本模塊族淮。每個(gè)面板都提供一個(gè)查詢編輯器(取決于面板中選擇的數(shù)據(jù)源),通過使用查詢編輯器凭涂,可以提取顯示在面板上的完美可視化效果祝辣。有各種各樣的樣式和格式選項(xiàng),面板可以在儀表板上拖放和重新排列切油,也可以調(diào)整大小蝙斜。
Dashboard 是 Grafana 可視化最終展現(xiàn)形式,Dashboard(或特定面板)可以通過多種方式輕松共享澎胡≡熊可以向登錄的 Grafana 的人發(fā)送鏈接娩鹉。可以使用快照功能將當(dāng)前查看的所有數(shù)據(jù)編碼為靜態(tài)和交互式 JSON 文檔岛琼。這比通過電子郵件發(fā)送屏幕截圖要好得多底循。
值得一提的是,Grafana 的文檔寫的很棒槐瑞,除了很詳細(xì)外很多操作步驟都錄成 GIF 放到文檔中讓人一目了然熙涤。
在實(shí)際業(yè)務(wù)中,什么情況下選擇 Superset困檩,什么情況下選擇 Grafana 呢祠挫?
時(shí)間序列,日志與設(shè)備運(yùn)行數(shù)據(jù)分析選 Grafana悼沿;企業(yè)生產(chǎn)經(jīng)營(yíng)數(shù)據(jù)分析則可以選 Superset等舔。
Metabase
Metabase 目前在 GitHub 上受歡迎程度僅次于 Superset,Metabase 也是一個(gè)完整的 BI 平臺(tái)糟趾,但在設(shè)計(jì)理念上與 Superset 大不相同慌植。Metabase 非常注重非技術(shù)人員(如產(chǎn)品經(jīng)理、市場(chǎng)運(yùn)營(yíng)人員)在使用這個(gè)工具時(shí)的體驗(yàn)义郑,讓他們能自由地探索數(shù)據(jù)蝶柿,回答自己的問題。而在 Superset 里非驮,非技術(shù)人員基本上只能看預(yù)先建好的 Dashboard交汤,不懂 SQL 或是數(shù)據(jù)庫結(jié)構(gòu)的他們,很難自己去摸索劫笙。
Metabase 采用“問問題”的方式實(shí)現(xiàn)一步步數(shù)據(jù)探索芙扎,探索的結(jié)果可以保存并發(fā)布為 Dashboard。對(duì)于復(fù)雜問題還提供了 Native query 允許用戶編寫 SQL 或 native query填大。
數(shù)據(jù)源方面戒洼,Metabase 支持 Redshift、Druid栋盹、Google BigQuery施逾、MongoDB、MySQL例获、PG 等 15 種數(shù)據(jù)源汉额。
Metabase 社區(qū)版的文檔寫的簡(jiǎn)單到讓你不知所措的地步,表現(xiàn)十分糟糕榨汤。好在這個(gè)產(chǎn)品使用起來不難(本身定位就是給業(yè)務(wù)用戶使用的)蠕搜。
Redash
如果說 Superset 和 Metabase 是構(gòu)建一個(gè) BI 平臺(tái),那 Redash 目標(biāo)就是更純粹地做好數(shù)據(jù)查詢結(jié)果的可視化收壕。Redash 支持很多種數(shù)據(jù)源妓灌,除了最常用的 SQL 數(shù)據(jù)庫轨蛤,也支持 MongoDB, Elasticsearch, Google Spreadsheet 甚至是一個(gè) JSON 文件。目前 Redash 支持超過 35 種 SQL 和 NoSQL 數(shù)據(jù)源虫埂。
它不需要像 Superset 那樣在創(chuàng)建圖表前先定義表和指標(biāo)祥山,而是可以非常直觀地將一個(gè) SQL 查詢的結(jié)果可視化,這使得它上手很簡(jiǎn)易掉伏》炫唬或者說 Redash 僅僅實(shí)現(xiàn)了 Superset 中 SQL Lab 的功能,但卻把這個(gè)功能做到了極致斧散。
Redash 有兩個(gè)非常實(shí)用的功能供常,Query Snippet 與 Query Parameters。
Query Snippet 很好地解決了查詢片段的復(fù)用問題鸡捐。做數(shù)據(jù)報(bào)表時(shí)經(jīng)常要用到十分復(fù)雜的 SQL 語句栈暇,這些語句中肯定有一些片段是可以在多個(gè)查詢中復(fù)用的。在 Redash 中我們可以將這些片段定義成 Snippet箍镜,之后方便地復(fù)用源祈。
Query Parameters 可以為查詢添加可定制參數(shù),讓這個(gè)圖表變得更靈活色迂。比如一個(gè)移動(dòng)應(yīng)用的日活指標(biāo)新博,我可能有時(shí)要按 iOS/Android 切分,有時(shí)要按地域切分脚草,或是按新老用戶切分。在 Superset 的 Dashboard 上要做三個(gè)表圖原献。Redash 里我可以把查詢的 groupby 做為一個(gè)參數(shù)馏慨,這樣就可以在一張圖上搞定。用的時(shí)候姑隅,運(yùn)營(yíng)人員可以在圖表上方的一個(gè)下拉框里選擇切分的方式写隶,非常直觀好用。
Redash 的 Dashboard 可以通過命名來進(jìn)行分組讲仰,Dashboard 的名字可以有一個(gè)前綴并以冒號(hào)結(jié)尾慕趴,前綴相同的 Dashboard 就會(huì)自動(dòng)被分為一組。例如“ Growth: Daily ”鄙陡,“ Growth: Weekly ”這兩個(gè) Dashboard 都會(huì)被分到“ Growth ”組下冕房。
Redash 在文檔方面做得很好,除了快速入門教程以外趁矾,每一個(gè)功能模塊都有文檔且條理清晰耙册。
當(dāng)然 Redash 也有自己的不足之處,它的可視化種類比 Superset 遜色不少(不過其實(shí)也夠用了)毫捣。另外详拙,由于它只是純粹地把數(shù)據(jù)查詢結(jié)果可視化帝际,所以也沒有 Superset 里那些對(duì)時(shí)間維度上的聚合與對(duì)比的操作。
CBoard
國(guó)內(nèi)由楚果主導(dǎo)的開源 BI 產(chǎn)品饶辙,分社區(qū)版和商業(yè)版蹲诀。CBoard 提供了一個(gè) BI 系統(tǒng),包括 Dashboard弃揽、多維分析脯爪、任務(wù)調(diào)度等方面。
數(shù)據(jù)源方面支持 JDBC 數(shù)據(jù)源蹋宦、ElasticSearch披粟、文本文件(文本需要存放于 CBoard 應(yīng)用服務(wù)器上面,讀取本地文件)冷冗、Saiku2.x 等守屉。
圖形方面直接使用了 ECharts,多維分析和 Dashboard 功能中規(guī)中矩蒿辙,可以滿足大部分 BI 需求拇泛。
文檔方面由于是國(guó)內(nèi)開源的產(chǎn)品,中文文檔對(duì)國(guó)內(nèi)用戶友好思灌,但文檔質(zhì)量一般在使用過程中還需要不斷摸索俺叭。
值得注意的是,CBoard 社區(qū)版和商業(yè)版功能差異較大泰偿,社區(qū)版有很多功能都不支持熄守,使用前要認(rèn)真評(píng)估。
BIRT
與前面提到的幾個(gè) BI 產(chǎn)品注重?cái)?shù)據(jù)探索和可視化不同耗跛,BIRT 主要用于報(bào)表的開發(fā)與呈現(xiàn)裕照,在可視化效果方面表現(xiàn)并不出彩,也不包含多維分析调塌。
BIRT 是一個(gè) Eclipse-based 開放源代碼報(bào)表工具晋南。BIRT 主要由兩部分組成,一個(gè)是基于 Eclipse 的報(bào)表設(shè)計(jì)器和一個(gè)可以加到你應(yīng)用服務(wù)的運(yùn)行期組件羔砾。
need-to-insert-img
BIRT 報(bào)表引擎以 JAR 文件方式打包负间,可以方便的添加到 J2EE 應(yīng)用中。采用 Taglib 方式很容易在 JSP 頁面上集成報(bào)表姜凄。
BIRT 的文檔寫的很差政溃,可能跟產(chǎn)品誕生年代久遠(yuǎn)有關(guān),目前社區(qū)也不太活躍檀葛,好在網(wǎng)上還可以查到很多資料玩祟。
如果你的需求是開發(fā)常規(guī)報(bào)表,那么 BIRT 絕對(duì)是一款可以嘗試的工具屿聋。與 BIRT 類似的還有一款 JasperReports 工具空扎,功能方面大同小異藏鹊。
潤(rùn)乾報(bào)表
潤(rùn)乾報(bào)表是國(guó)內(nèi)為數(shù)不多開源 BI 產(chǎn)品,雖然產(chǎn)品名稱以報(bào)表命名转锈,但實(shí)際已包含所有 BI 功能盘寡。從功能上來看,潤(rùn)乾報(bào)表可以約等于 Superset+BIRT撮慨,也就是提供了多維分析竿痰、Dashboard 和報(bào)表以及平臺(tái)管理功能。
數(shù)據(jù)源方面砌溺,潤(rùn)乾報(bào)表除支持 MySQL影涉、Oracle 等傳統(tǒng) RDBMS 外,還支持 MongoDB规伐、Elasticsearch蟹倾、Redis、Spark 以及 HDFS 等數(shù)據(jù)源猖闪。同時(shí)還可以直接使用 Excel鲜棠、CSV、JSON 進(jìn)行報(bào)表開發(fā)和數(shù)據(jù)分析培慌。
在可視化方面豁陆,潤(rùn)乾報(bào)表表現(xiàn)并不十分顯著,產(chǎn)品內(nèi)置的 30 多種圖形中規(guī)中矩吵护。如果想使用效果更好的可視化圖庫可以通過潤(rùn)乾報(bào)表提供的第三方圖形接口實(shí)現(xiàn)盒音,引入圖庫文件后修改 JS 用于接收數(shù)據(jù)集數(shù)據(jù)即可完成。這跟 Superset 等擴(kuò)展可視化圖庫的方式不太一樣馅而,沒有繁瑣的插件開發(fā)過程里逆,簡(jiǎn)單方便。
潤(rùn)乾報(bào)表提供的多維分析功能與 Superset 類似用爪,通過在頁面上拖拽維度和指標(biāo)進(jìn)行數(shù)據(jù)查詢,同時(shí)可以進(jìn)行切片和旋轉(zhuǎn)等操作胁镐。潤(rùn)乾報(bào)表允許用戶直接基于文件分析偎血,也可以編寫 SQL 進(jìn)行數(shù)據(jù)查詢生成圖表,同時(shí)為了保證性能還可以使用自有的私有存儲(chǔ)格式盯漂。
在語義層建模中颇玷,潤(rùn)乾報(bào)表支持多表關(guān)聯(lián)(JOIN)。特別地就缆,在潤(rùn)乾報(bào)表中需要將維度顯示制定成一個(gè)表帖渠,如果沒有對(duì)應(yīng)的表則需要建立虛擬表,這樣做的好處是前端查詢分析界面可以很方便地實(shí)現(xiàn)多表實(shí)時(shí)關(guān)聯(lián)查詢竭宰,而不必每次都必須基于一個(gè)(物理或邏輯)寬表空郊。
可以通過多維分析拖拽圖表來組織 Dashboard份招,根據(jù)指定(或自定義)布局生成,同時(shí)可以使用全局參數(shù)進(jìn)行數(shù)據(jù)過濾分析狞甚。
潤(rùn)乾報(bào)表的另外一個(gè)優(yōu)勢(shì)是復(fù)雜報(bào)表的處理能力锁摔。
我們知道,國(guó)內(nèi)的報(bào)表具備很強(qiáng)的本土特征哼审,潤(rùn)乾報(bào)表最初是為實(shí)現(xiàn)復(fù)雜報(bào)表而設(shè)計(jì)的報(bào)表工具谐腰,是目前主流產(chǎn)品(含商業(yè))中做的最早也是實(shí)現(xiàn)得最好的一個(gè)。
在這方面涩盾,無論使用上面提到的任意一款工具都無法很好滿足十气。
潤(rùn)乾報(bào)表的定位跟 Redash 很像,都希望提供便捷的方式讓用戶迅速得到分析結(jié)果春霍。同時(shí)也提供了一個(gè)輕量級(jí)的管理平臺(tái)(報(bào)表中心)包括資源管理砸西、權(quán)限控制以及郵件訂閱等功能。
潤(rùn)乾報(bào)表提供了 BI 平臺(tái)的同時(shí)也支持按模塊集成终畅,可以將產(chǎn)品中各個(gè)模塊根據(jù)需要單獨(dú)集成到已有的項(xiàng)目中籍胯,這對(duì)已有平臺(tái)系統(tǒng)的用戶非常方便。
需要注意的是离福,潤(rùn)乾報(bào)表并非所有功能都開源杖狼,目前開源的部分包括:多維分析前端界面、報(bào)表中心和 Dashboard妖爷。如果需要使用基礎(chǔ)報(bào)表蝶涩、多維分析服務(wù)器等部分則需要付費(fèi),不過價(jià)格并不高絮识。
總結(jié)
最后做一下總結(jié)绿聘,拉個(gè)表格方便對(duì)比。
產(chǎn)品 \ 指標(biāo)定位數(shù)據(jù)源支持程度可視化能力文檔質(zhì)量社區(qū)活躍度什么場(chǎng)景下選擇該產(chǎn)品
SupersetBI 平臺(tái)豐富很好差強(qiáng)注重可視化效果
GrafanaBI 平臺(tái)一般好高強(qiáng)監(jiān)控與日志分析
MetabaseBI 平臺(tái)一般好很差強(qiáng)業(yè)務(wù)人員探索數(shù)據(jù)
RedashBI 平臺(tái)豐富好高強(qiáng)快速數(shù)據(jù)查詢與可視化
BIRT報(bào)表工具差一般很差弱簡(jiǎn)單報(bào)表需求
CBoardBI 平臺(tái)一般好一般一般常規(guī) BI 需求
潤(rùn)乾報(bào)表BI 平臺(tái) / 可集成組件豐富好高強(qiáng)復(fù)雜報(bào)表 / 快速數(shù)據(jù)查詢分析
國(guó)內(nèi) BI 項(xiàng)目以企業(yè)級(jí)應(yīng)用解決方案為主次舌,其需求重點(diǎn)落在多維分析式的自助報(bào)表熄攘、Dashboard 以及一些相關(guān)平臺(tái)管理功能,對(duì)于多步驟探索式分析需求相對(duì)較少(這部分功能一般由桌面 BI 解決)彼念。從這個(gè)角度上看挪圾,作為國(guó)內(nèi)產(chǎn)品的潤(rùn)乾報(bào)表,對(duì)這些需求的適應(yīng)性要更好逐沙,除了具備常規(guī) BI 該有功能外哲思,還可以處理本土的復(fù)雜報(bào)表,在選擇開源 BI 的時(shí)候不妨一試吩案。