深入淺出FE(十一)報表系統調研2020.6.7

報表系統開發初探

2020.6.7

總體思路

1、自研 使用web端可拖拽特性直接生成線上報表,優點是自定義樣式,缺點是維護和開發工作量較大。

2、開源系統二次開發 (1)基於BIRT報表或者iReport + JasperReports組合開發。優點是開發和操作較簡單,缺點是不支持複雜報表和權限控制,維護性較差。 (2)基於Airbnb 的 Superset,Redash,Metabase等框架做二次開發。優點是界面設計友好,缺點是擴展性較差。

3、付費 如帆軟和思邁特報表系統,優點是支持豐富的業務場景複雜報表,維護和開發成本較低。

一、自研

二、開源系統二次開發

(一)java報表工具

1、 BIRT報表 BIRT是一個Eclipse-based開源報表系統。

優點:

(1)開發和操作簡單。

(2)能夠很方便的將很多數據混合在一個表格中。

缺點:

(1)BIRT沒有權限方面的輔助功能,需要自己寫實現語句實現權限控制。

(2)BIRT的報表設計界面是傳統的條帶式界面,在設計報表樣式,需要的行和列需要畫出;對錶頭比較複雜的中國式報表來說,各種行列對齊也比較複雜;

(3)不支持excel的行列無限擴展,表現之一是不支持XLS,這對習慣了excel的用戶不友好。

(4)沒有表單功能,不能對數據做篩選。

(5)沒有移動端平臺支持。

2、 iReport + JasperReports報表系統

JasperReports支持PDF、HTML、XLS、CSV和XML文件輸出格式。 iReport 和jasperreports是天生一對,是轉爲後者開發的純java的可視化報表設計器。

優點:

(1)iReport 允許用戶可視化編輯包含charts、圖片、子報表等的複雜報表。

(2)iReport 還集成了JFreeChart圖表製作包。

(3)允許用戶可視化地編輯XML JasperDesign文件。

缺點:

(1)iReport + JasperReports報表設計模式爲可視化製表模式,製表界面爲條帶填入式,對中國式複雜報表的製作友好度比較低;

(2)不支持EXCEL模板導入;

(3)格式對齊非常困難;對字體等其他格式的調整也非常麻煩,一般一個簡單的font就要一堆代碼來設置;

(4)表格中的表達式也不能隨着行列變化而實現自動調整,

(5)不支持移動端報表展現。

(6)iReport版本5.5.0之後,終止新功能的開發,可維護性較差。

(二)java和web混合

3、Airbnb 的 Superset

優點:

(1)可視化的選項較多,比如只要定義了Date字段,可以方便的在不同時間維度做Aggregation(日/周/月)。在顯示指標的折線圖時,可以與某段時間之前的指標在一張圖上做對比。或是在折線圖上顯示一個指標的rolling averages。這些在做指標分析時挺有用的。

(2)可以在多個時間維度上觀察,因爲商業分析中的很多問題都是與時間密切相關的。

缺點:

(1)每一張用的表,都需要Sources -> Tables裏定義。每一個用到的指標也需要定義。

(2)SQL Lab雖然可以做adhoc query的可視化,但每次都會生成一堆臨時table,把Sources -> Tables裏面的對象搞得很亂Dashboard不能分類,多了以後很難管理和查找權限系統特別複雜,而且不好用。

(3)Dashboard不能分類,多了以後很難管理和查找。

(4)權限系統特別複雜。

4、Redash

優點:

(1)理念很簡單,就是把一個SQL Query的結果可視化。不需要像Superset裏定義一堆東西之後才能用。

(2)SQL Query可以定製參數。比如一個App的日活指標,可能有時要按iOS/App切分,有時要按地域切分,或是按新老用戶切分。在Superset的Dashboard上我要做三個圖。Redash裏我可以把Query的groupby做爲一個參數,這樣就可以在一張圖上搞定。用的時候,可以在一個Dropdown List選切分的方式。

(3)數據源方面除了支持SQL以外,還支持ElasticSearch, Google Analytics, Google Spreadsheet, URL (JSON-Format)等。

缺點:

(1)可視化的選項不如Superset多。

(2)Redash對於非技術的人員相對Superset不友好。因爲Redash需要報表設計者直接寫SQL。不過實際上即使是Superset大部分運營和產品的人也只會看現成的Dashboard,很少有人會自己構建圖表。不提供centos安裝腳本,內嵌到網頁不便。

5、Metabase

Metabase可以幫助你把數據庫中的數據更好的呈現給更多人,數據分析人員通過建立一個”查詢“(Metabase中定義爲Question)來提煉數據,再通過儀表盤(Dashboards)來組合展示給公司成員。

優點:

(1)開源免費。

(2)工具輕量、安裝依賴的環境簡單、配置簡單清楚。

(3)容易上手,操作門檻低,不會sql語句也能使用。

(4)支持對外共享,權限控制。

(5)Question可以便捷地創建圖表,Dashboards界面整潔美觀。

缺點:

(1)Question每次只能對數據庫中的一張表進行查詢,切換數據表已有的查詢選項會重置。

(2)填寫了sql語句的sql查詢(Native query)模式不能轉到點選查詢(Custom)模式。

(3)不能在Metabase中自由轉換數據表中字段的屬性。

(4)可創建的圖表類型較單一。

總結框架二次開發 :

前端框架:React + Redux等相關框架,基於yarn的開發環境,webpack構建

後端開發:metabase後端語言採用clojure,Ring和toucan等開發框架

三、付費系統

1、 帆軟報表FineReport 國內報表軟件領域發展最成熟也是市場份額最高的。FR報表的設計風格和Excel相似(當然二者本質並不一樣),整個設計窗口是格子式的可視化編輯界面。

優勢:

(1)零代碼開發,web版的類似excel的設計方式,上手簡單。

(2)數據填報功能:自認爲這個報表的兩個核心是填報(往數據庫填入數據)和數據展示。填報:避免了excel收集數據混亂,還能開發各種各樣的流程表單數據展示:打印、導出、數據報表分析移動端報表+可視化大屏,FR做大屏有先天開發優勢。

2、思邁特 目前國內做的比較好的報表開發平臺之一,很多金融公司如銀行、保險和基金等公司在用。缺點是設計器是excel,有時會需要寫腳本,維護較複雜。

3、BDP 個人用戶首選,在線web編輯器設計,指標採用拖拽形式,快速生成報表展示界面。企業用戶功能不瞭解。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章