基於檔案系統實現可追加的資料集市

2021-09-02 02:09:34 字數 1546 閱讀 8110

絕大多數的應用系統中,一開始資料的儲存和計算基本都是由資料庫來完成的,同時服務於業務交易和報表查詢;不過在經過幾年資訊化建設和資料積累後,常常都會遇到資料庫壓力變大,從而導致效能瓶頸的問題。

究其原因,往往發現針對歷史資料查詢的報表在其中佔了很大比重。進一步分析會發現,這類報表通常都有如下特徵:

1、資料變化小:供查詢的歷史資料幾乎不再發生變化;

2、資料量大:資料量隨時間不斷增加;

由於大多數資料庫的jdbc效能都很低下(jdbc取數過程要做資料物件轉換,比從檔案中讀取資料會慢乙個數量級),如果資料始終存放在資料庫中,當涉及資料量較大或併發較多的時候,報表的效能會急劇下降,進一步還會嚴重影響相關的業務操作,如市場營銷、資料整理再匯報等。

針對這一問題,常見的解決方案是在生產庫和應用之間再增加乙個前置資料庫,利用etl工具定時從生產庫中提取資料,清洗後再匯入到前置資料庫中,所有的歷史報表查詢都基於前置資料庫,從而和生產庫分離,緩解生產庫壓力。

不過這種方案增加了很多不必要的成本、多餘的元件和工作量,同時也加大了後期的管理和維護難度;更為重要的是,當資料量比較大時,報表查詢還是很慢,因為上面已經提到過的根本問題並沒有得到解決,大多數資料庫的io效能遠低於檔案系統,而報表效能又嚴重依賴於資料庫取數環節,也就是說,沒能從根子上解決問題。

要從根子上解決問題,我們可以假設如果檔案擁有計算能力的話,將這些變化不大的歷史資料搬出資料庫,採用檔案系統儲存,而不是前置資料庫,那麼將可能獲得比資料庫高得多的io效能,這樣不僅能夠解決大資料量報表查詢慢的難題,我們還將獲得如下這些好處:

1、管理方便;檔案天然支援多級目錄,而且複製、轉移、拆分都比資料庫簡單、高效得多,這樣,使用者就可以按照業務模組、時間順序等規則分類管理資料,在應用程式下線時,也可以按照目錄刪除該應用對應的資料。資料管理因此變得簡單清晰,工作量顯著降低。

2、成本低廉;既然是檔案,那就可以簡單地儲存在廉價硬碟中,無需購買昂貴的資料庫專用軟硬體。

3、降低資料庫擴容壓力;資料庫吞吐負擔降低,就可以顯著推遲擴容臨界點的到來,資料庫可以繼續服役,也可以節省大量的擴容成本。

4、資源利用率高;用檔案來儲存資料並非要拋棄資料庫,相反的,檔案應當只儲存安全要求不高、但資料量巨大的外圍資料以及庫外檔案,而資料庫仍然儲存核心資料。如此一來,檔案儲存和資料庫儲存各司其職,資源利用率顯著提高。

那麼,如何才能有效地為檔案賦予計算能力呢?下面將要介紹的潤幹集算器,就是這樣一款利器,通過集算器,可以實現複雜計算與報表展現的分離,其內建的集算引擎可以使檔案擁有計算能力,輕鬆應對各種疑難雜症。下圖顯示了常規情況和引入集算器後的報表系統結構對比,應該說,引入集算器後,整個體系架構變得更加清新與合理了:

場景說明,具體實現方式可閱讀原文(內容詳細) :

基於C語言實現的檔案系統

2 需求說明 2.1基本要求 設計並實現乙個目錄列表函式 無須支援選項,如ls a ls l等 用來顯示當前目錄下包含的檔案資訊 設計並實現乙個改變目錄函式 無須處理路徑名,如.directoryname等 用來把當前目錄切換到上一層目錄或當前目錄的子目錄 設計並實現乙個刪除檔案函式,使用當前目錄中...

基於C語言的簡單檔案系統的實現

1 題目介紹 通過具體的檔案儲存空間的管理 檔案物理結構 目錄結構和檔案操作的實現,加深對檔案系統內部的資料結構 功能以及實現過程的理解。1.1 要求 在記憶體中開闢乙個虛擬磁碟空間作為檔案儲存分割槽,在其上實現乙個簡單的基於多級目錄的單使用者單任務系統中的檔案系統。在推出該檔案系統的使用時,應將虛...

基於C語言的簡單檔案系統的實現

1 題目介紹 通過具體的檔案儲存空間的管理 檔案物理結構 目錄結構和檔案操作的實現,加深對檔案系統內部的資料結構 功能以及實現過程的理解。1.1 要求 在記憶體中開闢乙個虛擬磁碟空間作為檔案儲存分割槽,在其上實現乙個簡單的基於多級目錄的單使用者單任務系統中的檔案系統。在推出該檔案系統的使用時,應將虛...