報表工具選型對比系列 - 多源關聯效能

bubblegum發表於2020-10-21

報表呈現有這麼幾個階段:取數、報表計算、生成 html 及頁面渲染,報表計算是考察報表效能中較為重要的一環。多資料來源(集)關聯報表是一種計算量隨規模增長較大的報表,適合用於進行此項測試。本文將對比報表的關聯運算效能,產品依然是三款:潤乾報表、FineReport、smartbi,均使用最新版本,涉及報表資料來源為同庫同表。

測試採用多資料集間關聯計算,報表格式很簡單,具體可參考下面的說明。

用例

POS 交易情況統計,統計所有商戶(包括還未使用但已申請且開頭 pos 刷卡業務的),使用本行 pos 機刷本行卡,和他行卡刷本行 pos 的資料(另外區分儲蓄卡和信用卡),彙總值包括筆數和交易金額。

imagepng

資料集 5 個:

1、 所有商戶(ds1):select * from 商戶 where c_code<=?
2、 本行儲蓄類(ds2):SELECT * FROM pos交易資料 where tran_type=1 and c_code<=?
3、 本行信用卡類(ds3):SELECT * FROM pos交易資料 where tran_type=2 and c_code<=?
4、 他行儲蓄類(ds4):SELECT * FROM pos交易資料 where tran_type=3 and c_code<=?
5、 他行信用卡類(ds5):SELECT * FROM pos交易資料 where tran_type=4 and c_code<=?1、 所有商戶(ds1):select * from 商戶 where c_code<=?2、 本行儲蓄類(ds2):SELECT * FROM pos交易資料 where tran_type=1 and c_code<=?3、 本行信用卡類(ds3):SELECT * FROM pos交易資料 where tran_type=2 and c_code<=?4、 他行儲蓄類(ds4):SELECT * FROM pos交易資料 where tran_type=3 and c_code<=?5、 他行信用卡類(ds5):SELECT * FROM pos交易資料 where tran_type=4 and c_code<=?

透過 c_code(商戶編碼)關聯。

報表模板:

imagepng

注:本例是對實際業務場景簡化後進行的對比,實際情況涉及的 sql 及計算場景複雜的多,可參考:

測試結果

以下資料規模中,“*”左側資料為商戶記錄條數,右側為其他 4 個每資料集的記錄條數,如 5000,則 ds2 到 ds5 每個資料集都是 5000 條資料。“報表計算”為從完成取數到生成 html 前時間。另外,報表每頁按 100 行分頁。

imagepng

從資料上可看出,潤乾稍優於帆軟,資料量越大表現越明顯,但差距不算大,都比較不錯。smartbi 相對較差,20000*20000 規模已有 4、50 倍差距。 以上結果和之前測試渲染及報表容量中報表計算階段的資料體現也是一致的。

總結

本文對比報表工具解決多源(集)關聯計算問題,也是“報表計算”階段(取數都同庫同表同走 jdbc,無區別)考察報表計算能力的情況之一,從資料可以看出潤乾效能最高,得益於計算模型的最佳化,帆軟次之,兩家都不差,有較強的實用性。smartbi 和帆軟報表的製作過程幾乎一樣,但計算效率卻差了數十倍,說明其計算模型有待改進。

相關連結


報表工具對比選型系列 - 容量及相關效能


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

相關文章