為什麼說當前報表開發的工作量主要在資料來源環節?又如何解決呢?
我們知道,報表開發主要有兩個階段。
第一階段:資料準備。將原始資料加工成報表需要的結果集(資料來源);
第二階段:資料呈現。根據已準備的結果集(資料來源)編寫表示式將資料以表格或圖形方式呈現。
這兩個階段雖然處於同一報表開發過程,但實現方式卻大不相同。
通常原始資料距離報表“能用”還相去甚遠,透過 SQL/JAVA/ 儲存過程等編碼方式準備報表可用的資料來源是第一階段的目標,過程中可能涉及複雜的資料處理過程,因而這個階段會牽扯較多的精力,佔用的工作量也多。
資料來源準備好後,透過報表工具來解決資料以何種方式(圖表)、何種樣式(外觀)呈現的問題,透過點選設定、編寫少量表示式就可以快速完成,實現簡單,佔用的工作量也少。
可以說,報表開發的工作量主要在資料處理(計算),資料處理後如何呈現,透過工具可以快速完成。
那是不是報表呈現階段就不涉及資料處理了呢?
並不完全是這樣。
早期報表開發
大概 2015 年以前,報表呈現方式主要以表格(或圖表混合)為主,這時透過報表工具實現時就會涉及一定的資料計算,如分組彙總、多源分片、格間計算(同比環比)等。如下圖所示:
計算分佈在資料準備和資料呈現兩個階段,兩個階段的工作量相當(各佔 50%)。這個時期,資料準備階段可以把資料準備得“粗糙”一些,然後利用報表工具的計算能力在呈現階段將資料進一步加工成目標結果進行呈現。比如,我們在資料準備階段完成關聯過濾,再在報表呈現模板中按多個維度分組彙總;或者在呈現模板中計算同比環比。
當前報表開發
隨著報表工具的逐漸成熟,報表工具提供了更豐富的圖形(型別和效果),報表選擇圖形呈現幾乎與表格佔比相當了(佔比仍在增長)
使用圖形呈現,由於沒有“格子”,就無法利用報表工具的計算能力在呈現模板中完成資料處理,而圖形本身並不具備計算能力(不包括硬編碼),這時自然而然就要在資料準備階段將前端需要的資料完全準備好,前端工具接收資料直接圖形呈現。
圖形設定基本沒什麼工作量,而後端資料來源的準備工作就佔了大頭,資料呈現和資料準備所佔的工作量佔比約為 20%:80%。
當前報表開發的工作量主要在資料來源端(資料準備階段),要提升報表開發效率,勢必要解決報表資料來源準備效率問題。這也是為什麼很多時候用上了一流的報表工具,但報表開發的工作量仍然很大的原因。
如何提升報表資料來源端的開發效率,從而整體降低報表開發工作量?
借鑑報表開發的發展歷史,或許可以獲得一些思路。
早期,報表開發靠完全硬編碼,無論資料準備還是報表呈現,後來報表工具出現替代了硬編碼方式,將報表呈現階段的開發工具化,解放了報表呈現階段的人力(你可以感受一下寫程式碼畫報表比用工具做麻煩多少)。
按照這個思路,用工具替代硬編碼就可以提高生產效率,將資料準備階段工具化就可以解決報表資料來源的開發效率,從而進一步提升報表整體開發效率。
資料準備工具可以是獨立的,也可以包含在報表工具內部,後者要求報表工具的能力能夠延伸到資料來源層面。在選擇報表工具時,不妨多考察一下工具的資料處理能力。
參考資料:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69900830/viewspace-2701338/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 什麼是報表的多樣性資料來源問題?如何解決?
- 中間表是什麼?和報表有什麼關係?會帶來怎樣的問題?又如何解決?
- 為什麼說中國式報表特殊-4、報表的格式與資料
- 什麼是大報表?如何解決大報表的問題?
- Linux Foundation資料說話:為什麼開源開發者這麼搶手Linux
- 為什麼說敏捷開發是應用程式的未來?敏捷
- 為什麼datawork 資料開發頁面展示不出來?
- 報表怎麼動態選擇資料來源
- 為什麼不要在Linux上只執行開源軟體?Linux
- 【轉】Firebird資料庫值得信賴嗎?為什麼我要在開發中選擇它?資料庫
- 資料倉儲能為你當前資料庫體系的不足做些什麼? (轉)資料庫
- 用儲存過程和 JAVA 寫報表資料來源有什麼弊端?儲存過程Java
- 為什麼軟體開發,人多,事少,還會工作量大?
- 為什麼說 NLP 將是未來資料領域的珠峰?
- 為什麼我變成了開源主義者
- 趣說開源|為什麼要參與到開源社群中?
- 為什麼說開源的COLA既是架構也是框架?架構框架
- 終於懂了,為什麼說雲資料庫時代已來資料庫
- 什麼是YottaChain儲存,為什麼說是未來資料儲存的趨勢?AI
- 為什麼物件導向的資料庫不普及呢?物件資料庫
- 為什麼要建資料倉儲,而不是直連資料來源?
- 開發區塊鏈大家都是基於什麼開源框架呢區塊鏈框架
- 聽說你的物件有個”環“?怎麼發現的呢?物件
- 為什麼說 Serverless 是雲的未來?Server
- 為什麼說web前端開發人員的薪資高、待遇好Web前端
- 為什麼開源資料庫改變許可證?資料庫
- 好端端的資料結構,為什麼叫它SB樹呢?資料結構
- 為什麼說微軟開源 .Net 也拼不過 Java?微軟Java
- GoCN為什麼沒有使用beego來搭建呢?Go
- 潤乾填報時資料來源為nullNull
- 為什麼說小程式開發要趁早?原來隱藏著這樣的秘密!
- 為什麼說微軟遊戲未來可期微軟遊戲
- 為什麼我要用 C 來開發遊戲?開發遊戲
- 為什麼當刪除整個表中的資料時,需使用TRUNCATE代替DELETEdelete
- 為什麼說不要去銀行做軟體開發,而要去做資料分析?
- 為什麼說雲主資料管理(MDM)是企業IT下一個“爆點”?
- 資料來源(DataSource)是什麼以及SpringBoot中資料來源配置Spring Boot
- Win10系統開啟資料夾提示你當前無權訪問該資料夾如何解決Win10