怎麼把報表模組從應用裡拆出來單獨維護?

xiaohuihui發表於2020-06-21

如果報表透過報表工具開發,且報表中只涉及 SQL/ 儲存過程,拆分相對容易些,只需要整理好報表模組需要的資料庫資源即可,比如:會涉及到哪些資料來源、資料庫連線數需要分配多少等,然後將報表模組單獨作為報表應用部署維護即可。

如果報表中涉及 JAVA 編寫的內容(通常是為報表準備資料)會比較麻煩。首先因為 JAVA 程式碼要跟主程式一起打包部署,所以報表模組和主應用是緊耦合在一起的,要解耦報表模組需要另一種方式實現報表中 JAVA 實現的部分。

報表中使用 JAVA 編碼主要基於以下幾種原因:

1、資料計算涉及複雜過程和邏輯控制
為報表準備資料時涉及的計算過於複雜,或者需要做比較複雜的邏輯控制,透過 SQL 不易實現,只能透過 JAVA 硬編碼

2、涉及多樣性資料來源
報表的資料來源多種多樣,當涉及 NoSQL、文字、XML、Hadoop、時序資料庫、Webservice 等資料來源時,報表工具無法實現混合計算,需要用 JAVA 實現報表資料準備

3、方便應用擴充套件
未來業務增長需要對應用進行水平擴充套件(拆分),使用 SQL 不利於未來分庫,只能用 JAVA 實現報表資料計算

4、用於管理
為了管理需要,有時需要記錄報表訪問人、報表查詢次數、每次查詢了哪些資料等資訊,透過 JAVA 編寫監聽類實現

可以直接使用具備這些能力的報表工具完成解耦:
1. 很強的複雜計算能力,能完成較複雜的運算,還容易實現邏輯控制;
2. 多樣性資料來源支援,最好還能混合計算,如 CSV 和 DB 做 join;
3. 計算不依賴資料庫,方便擴充套件
4. 支援熱切換,修改報表不用重啟應用

可以看一下 ,介紹瞭如何使用報表工具解耦報表和主應用,畫個圖感受一下:

imagepng
原來 JAVA 程式把報表和主應用緊緊綁在一起,現在可以把報表模組單獨拆分維護,解釋執行可以熱切換,修改報表可以不必重啟整個應用了。甚至還可以將報表模板單獨部署,在物理上實現分離,實現單獨維護。

工具對複雜計算的支援可以參考
對多樣性資料來源的支援參考

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69900830/viewspace-2699755/,如需轉載,請註明出處,否則將追究法律責任。

相關文章