潤乾集算報表提升效能之可控緩衝,報表可控

來源:互聯網
上載者:User

潤乾集算報表提升效能之可控緩衝,報表可控

         使用緩衝可以提升報表效能是不爭的事實,一般高端報表工具都會提供報表緩衝的功能,用於將整個報表計算結果緩衝到檔案系統中,以便使用者在下次訪問同參數報表時可以快速讀取緩衝結果進行報表展現,集算報表也具有這種常規緩衝功能。但是,有些情況下報表開發人員希望能夠控制緩衝的內容,比如有時希望緩衝的不是整個報表結果而是其中的部分,有時緩衝內容可被其它報表或程式複用,有時希望對不同的緩衝結果設定不同的逾時時間,以應對資料量和即時性方面的不同情況。這時,一般的報表緩衝就無法滿足需求了。

         集算報表內建了可程式化的資料計算引擎,允許開發人員靈活控制緩衝內容。這裡我們將開發人員在使用集算報表開發中可以控制的緩衝內容稱為可控緩衝。可按緩衝可以帶來更大的靈活性和好處,下面就前述提到的三點展開來說。

緩衝部分結果

         在報表開發中,有時並不希望將所有報表結果進行緩衝,這樣可以避免耗費過高的緩衝成本(磁碟空間和應用伺服器資源開銷)。另外,當報表中的部分資料即時性要求很高,需要即時與資料庫互動進行資料查詢,那麼這部分資料就不適合進行緩衝,這時通過集算報表的可控緩衝就可以將變化不太頻繁的中間結果緩衝起來。報表再次請求時,即時性要求高的資料仍然即時從資料庫中讀取,並結合緩衝中的資料進行報表計算,得到最終報表結果集。常規緩衝方案沒有這種緩衝部分結果的功能,只能設定整個報表是否進行緩衝,這樣在報表涉及各部分資料的時效性不同時就會發生矛盾;而集算報表在這方面更加靈活,效率更高。

 

緩衝結果複用

         集算報表中可控緩衝是可以複用的,一個報表的緩衝結果(部分或全部)可以被其他報表或程式讀取並使用,而不必再次緩衝同樣的結果(常規報表緩衝方案則會重複),這會大幅度提供整體緩衝的效率。與緩衝部分結果適應即時性要求的情況類似,當其他報表或程式使用某個報表的緩衝結果時,只需要從緩衝中(一般是磁碟檔案)讀取,並與報表中其他資料來源(可能是DB、檔案,或是另一個報表的緩衝)進行混合運算最終得到報表結果集。常規的報表緩衝則是以報表範本為單位單立的,彼此無法複用,會造成一定的資源浪費以及增加一定的效能開銷,而集算報表在這方面更加靈活,效率更高。

 

設定不同逾時時間

         我們都熟知的緩衝一定會有逾時時間,逾時時間外緩衝會被清除,報表訪問時重建快取檔案。一般的報表工具的緩衝逾時時間會在設定檔中設定,如3600s或7200s,這種設定對應用中的報表在所有參數情況甚至所有的報表均有效,換句話說,整個報表甚至整個系統必須使用同樣的設定。

         然而,事實並不希望這樣,如果能夠針對不同的報表情境設定不同的逾時時間,那樣會更有效。比如,針對大量的曆史資料查詢的報表,由於曆史資料的變化不大,我們希望報表的緩衝結果可以儲存較長時間,以便每次查詢時都能從緩衝中快速讀取結果,這時需要設定較長的逾時時間;而針對資料變化頻繁,即時性要求較高的報表則逾時時間會較短,以便滿足資料的即時性要求。

         集算報表的結果緩衝允許開發人員針對不同的報表設定不同的逾時時間,以應對上述提到的報表情境。同樣,這種做法提供了更高的靈活性,使得報表緩衝達到真正意義上的人為可控。

 

舉例

         具體實現上可以參考集算報表的相關文檔資料,這裡通過一個例子簡單說明結果緩衝的使用方法,可以參考如下步驟(舉例說明):

1、使用集算報表內建的集算器編寫指令碼產生/讀取快取檔案,這個過程處於報表資料來源的計算階段。


        上述指令碼首先指定緩衝目錄,並根據參數設定快取檔案名稱,並根據檔案名稱尋找快取檔案是否存在(A4),若存在並且未逾時則直接讀緩衝;否則,進行串連資料庫取數運算,並將計算結果產生快取檔案。

 

         如果報表中不使用緩衝,那麼指令碼只需要這樣編寫:


        2、在集算報表中調用上述集算指令碼,編輯報表運算式完成報表製作。

 

         需要注意的是,集算報表的可控緩衝也有其適用情境,並不能完全取代常規緩衝,常規緩衝手段會連同報表計算結果以及呈現屬性一起,而這裡的可控緩衝只快取資料,在呈現時還要再次進行外觀計算,更適用於資料計算強度較高,但外觀計算強度較低的情境。實際應用中,兩者可以結合使用。


集算報表:www.raqsoft.com.cn/?p=208 .

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.