為什麼說當前報表開發的工作量主要在資料來源環節?又如何解決呢?
我們知道,報表開發主要有兩個階段。
第一階段:資料準備。將原始資料加工成報表需要的結果集(資料來源);
第二階段:資料呈現。根據已準備的結果集(資料來源)編寫表示式將資料以表格或圖形方式呈現。
這兩個階段雖然處於同一報表開發過程,但實現方式卻大不相同。
通常原始資料距離報表“能用”還相去甚遠,透過 SQL/JAVA/ 儲存過程等編碼方式準備報表可用的資料來源是第一階段的目標,過程中可能涉及複雜的資料處理過程,因而這個階段會牽扯較多的精力,佔用的工作量也多。
資料來源準備好後,透過報表工具來解決資料以何種方式(圖表)、何種樣式(外觀)呈現的問題,透過點選設定、編寫少量表示式就可以快速完成,實現簡單,佔用的工作量也少。
可以說,報表開發的工作量主要在資料處理(計算),資料處理後如何呈現,透過工具可以快速完成。
那是不是報表呈現階段就不涉及資料處理了呢?
並不完全是這樣。
早期報表開發
大概 2015 年以前,報表呈現方式主要以表格(或圖表混合)為主,這時透過報表工具實現時就會涉及一定的資料計算,如分組彙總、多源分片、格間計算(同比環比)等。如下圖所示:
計算分佈在資料準備和資料呈現兩個階段,兩個階段的工作量相當(各佔 50%)。這個時期,資料準備階段可以把資料準備得“粗糙”一些,然後利用報表工具的計算能力在呈現階段將資料進一步加工成目標結果進行呈現。比如,我們在資料準備階段完成關聯過濾,再在報表呈現模板中按多個維度分組彙總;或者在呈現模板中計算同比環比。
當前報表開發
隨著報表工具的逐漸成熟,報表工具提供了更豐富的圖形(型別和效果),報表選擇圖形呈現幾乎與表格佔比相當了(佔比仍在增長)
使用圖形呈現,由於沒有“格子”,就無法利用報表工具的計算能力在呈現模板中完成資料處理,而圖形本身並不具備計算能力(不包括硬編碼),這時自然而然就要在資料準備階段將前端需要的資料完全準備好,前端工具接收資料直接圖形呈現。
圖形設定基本沒什麼工作量,而後端資料來源的準備工作就佔了大頭,資料呈現和資料準備所佔的工作量佔比約為 20%:80%。
當前報表開發的工作量主要在資料來源端(資料準備階段),要提升報表開發效率,勢必要解決報表資料來源準備效率問題。這也是為什麼很多時候用上了一流的報表工具,但報表開發的工作量仍然很大的原因。
如何提升報表資料來源端的開發效率,從而整體降低報表開發工作量?
借鑑報表開發的發展歷史,或許可以獲得一些思路。
早期,報表開發靠完全硬編碼,無論資料準備還是報表呈現,後來報表工具出現替代了硬編碼方式,將報表呈現階段的開發工具化,解放了報表呈現階段的人力(你可以感受一下寫程式碼畫報表比用工具做麻煩多少)。
按照這個思路,用工具替代硬編碼就可以提高生產效率,將資料準備階段工具化就可以解決報表資料來源的開發效率,從而進一步提升報表整體開發效率。
資料準備工具可以是獨立的,也可以包含在報表工具內部,後者要求報表工具的能力能夠延伸到資料來源層面。在選擇報表工具時,不妨多考察一下工具的資料處理能力。
參考資料:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69900830/viewspace-2701338/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 什麼是報表的多樣性資料來源問題?如何解決?
- 中間表是什麼?和報表有什麼關係?會帶來怎樣的問題?又如何解決?
- 當雜湊表遇上鍊表會發生什麼呢?
- 什麼是大報表?如何解決大報表的問題?
- 為什麼說敏捷開發是應用程式的未來?敏捷
- 報表怎麼動態選擇資料來源
- 為什麼datawork 資料開發頁面展示不出來?
- 為什麼說 NLP 將是未來資料領域的珠峰?
- 用儲存過程和 JAVA 寫報表資料來源有什麼弊端?儲存過程Java
- 為什麼我變成了開源主義者
- 為什麼說seo思維很重要呢?
- 什麼是YottaChain儲存,為什麼說是未來資料儲存的趨勢?AI
- 為什麼說開源的COLA既是架構也是框架?架構框架
- 趣說開源|為什麼要參與到開源社群中?
- 當css中background或background-image的值為url()或url(#)時,會發生什麼情況?為什麼?如何解決?CSS
- 資料來源(DataSource)是什麼以及SpringBoot中資料來源配置Spring Boot
- 為什麼越來越多的電競選手轉型去當主播?
- 為什麼要建資料倉儲,而不是直連資料來源?
- 終於懂了,為什麼說雲資料庫時代已來資料庫
- 聽說你的物件有個”環“?怎麼發現的呢?物件
- 說好的節操呢
- 為什麼要在GoDaddy註冊域名Go
- 『為什麼有的人熱衷於發彈幕呢?』今日資料行業日報(2019.08.12)行業
- 為什麼開源資料庫改變許可證?資料庫
- 為什麼說 Serverless 是雲的未來?Server
- 為什麼說web前端開發人員的薪資高、待遇好Web前端
- 好端端的資料結構,為什麼叫它SB樹呢?資料結構
- 當我們在聊「開源大資料排程系統Taier」的資料開發功能時,到底在討論什麼?大資料AI
- 為什麼說雲主資料管理(MDM)是企業IT下一個“爆點”?
- 今天有什麼好說的呢
- 為什麼說不要去銀行做軟體開發,而要去做資料分析?
- 為什麼說小程式開發要趁早?原來隱藏著這樣的秘密!
- (分享)為什麼說React是UI的未來ReactUI
- 什麼是大資料?大資料開發是做什麼的?大資料
- JAVA spring&hibernate資料來源配置不當報錯key postgresIsPoolJavaSpring
- 檢視當前 linux 主機支援什麼型別的硬體解碼?Linux型別
- 為什麼說資料服務是資料中臺的標配?
- 當我們在說“併發、多執行緒”,說的是什麼?執行緒