您好,登錄后才能下訂單哦!
大數據報表熱切換是什么,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
熱切換(Hot Swap)是指在系統不停機的情況下更換系統部件,在報表業務中則是指在不重啟報表及相關應用的情況下完成對報表的維護(新增、修改、刪除),冷切換則恰好相反。
報表業務很不穩定,業務開展的過程中會刺激出更多查詢統計需求,如果每次需求實現后都要等系統空閑(往往是非工作時間)時重啟系統才能讓修改后的報表生效,那將會對業務使用造成非常大影響(延遲)。因此在需求經常會變化的報表業務中,熱切換顯得尤其重要。
事實上,在報表業務中要實現熱切換并不難,只要在開發報表時選擇合適的技術手段,避免使用諸如 JAVA 這樣的編譯型語言(雖然重寫類加載器可以變相實現熱加載,但過于繁瑣,也沒從根本上解決問題)即可。
但在實際應用中我們卻看到大量使用 JAVA 來開發報表,造成無法熱切換的情況。為什么會這樣?
報表業務有兩個特點,一個是報表業務很復雜。報表是一項負責綜合性統計的任務,將原始數據加工成業務需要的報表形式要走很長的路,不僅數據處理邏輯繁瑣,報表呈現樣式也千奇百怪,所謂中國式復雜報表。
另一個特點是嵌入使用。報表經常會作為應用系統的一部分(模塊)嵌入到系統中使用。
現在報表呈現格式方面的問題已經基本得到解決,以國內成熟報表工具為主導的一批國產軟件可以很好地解決中國式復雜報表呈現的問題,而且這些工具大多數采用解釋執行機制,報表模板修改后可以實時生效。
但數據準備階段的問題卻一直沒有解決,復雜的數據處理和業務邏輯控制讓開發人員不得采用硬編碼手段來實現。由于大部分應用系統都采用 JAVA 開發,既然報表是系統的一部分,業務邏輯又這么復雜,硬編碼的首選自然是 JAVA 了。這是導致在報表中大量使用 JAVA 導致無法熱切換的原因。
那么如何解決這個問題?
將報表的數據準備也工具化!
早期,報表開發完全靠硬編碼的時代,大家也普遍采用 JAVA 來“畫”報表,這樣勢必存在無法熱切換的問題,后來報表工具出現解決了呈現模板的熱切換問題。所以,要徹底實現報表熱切換,將數據準備也工具化是一個可行的方向。
然而,報表的數據準備和報表呈現兩個階段分別使用不同工具會造成報表開發和維護上的困擾,因此,最好的方式是增強報表工具自身的計算能力,將兩個階段都融入可以解釋執行的報表模板中,從而徹底實現報表熱切換。
我們知道,報表工具本身具備一定的計算能力,在呈現模板的單元格中可以編寫分組、求和、比值等表達式,但由于格子的限制很難處理復雜的數據邏輯,這也是為什么在報表中需要數據集(JAVA/SQL)來準備數據的原因。
一個可行的辦法是在報表工具中增加可解釋執行的計算腳本(模塊)用于數據準備,這樣在計算模塊中可以實現任意復雜的數據處理邏輯,同時解釋執行的腳本內置在報表模板中實現熱切換。
報表計算模塊(腳本)要具備這樣一些能力:
1. 解釋執行
這是實現熱切換的基本能力,數據準備和報表呈現內置在一個報表模板中,采用解釋執行機制運行;
2. 計算體系完善
能實現所有的數據處理任務,原來在 JAVA 中的報表數據準備計算在腳本中都應該能完成,具備豐富的集合運算類庫;
3. 易開發維護
實現上要足夠簡單,這樣報表開發人員就能直接搞定數據準備和報表呈現,而不再依賴其他專業程序員;同時在一個報表模板里更易于維護。
關于大數據報表熱切換是什么問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。