即使回顧十年以前,對于將企業級數據庫管理系統跑在主內存上都是不可想象的。但隨著時間的推移,RAM的價格穩步下降,這使得要做到這一點不再需要付出極為昂貴的代價。內存價格要比過去便宜得多,價格的暴跌也使利用主內存配置數據庫系統成為可能。
內存數據庫用來支撐高性能處理需求已經不再是那些小廠商的游戲,主流數據庫廠商,如IBM、Oracle、Microsoft、SAP等都已經推出了各自的內存數據庫產品,并且投入了大量的研發資金。因為許多大型企業客戶也在考慮將內存數據庫整合進IT系統。
內存數據庫從兩個方面加速了應用的性能。首先,也是最重要的,維護數據的介質從傳統磁盤轉向了更快的內存,如此便優化甚至是消除了與數據庫查詢相關的數據延遲。其次,可選數據庫架構能夠更有效的使用可用內存。例如,很多內存技術會在表中使用列式存儲,而不是基于行的存儲格式。而按列存儲的表更適于壓縮,并能夠快速掃描所有字段來加快查詢執行速度。
內存技術能否帶來成功?
從理論上講,加速應用和優化企業數據都是非常具有吸引力的。但是在現實世界中,IT和數據管理人員在保證已有的技術、資源和新產品投入的基礎上,把交易流程和業務分析過渡到內存架構的時機并不是很好確定。
這個問題所涉及的方面包括權衡對提高數據庫性能的需求和獲取并部署內存平臺的相關成本。盡管RAM成本已經大幅下降,但是擁有大規模內存配置的系統仍然要比只有磁盤存儲的數據庫服務器在價格方面高出一截。企業高管和CFO在看到采購的賬單時還是會嚇一跳。因此要讓內存數據庫物有所值,你需要找到特性相適的應用。
在這個問題上,就要具體情況具體分析了。要看企業對增長的數據規模處理能力的需求,和數據庫響應延遲會給業務帶來多大的影響。比如如果將內存數據庫應用到供應鏈管理,那么多種數據流都能夠得到實時的分析,包括倉庫和零售店的庫存數據、車輛運輸過程中產品的信息、交通和天氣情況的更新數據,這樣決策者在規劃路線、分發產品時就能做出更快更好的決策,保證產品在合適的時間、合適的地點到達。如果能夠實現這一點,內存技術產生的回報也足以蓋過它的成本了。
采用內存技術需三思后行 將企業的總體特征納入考量也是必須的。如果以下列出的幾條中有一項或多項可以用來描述你所在的工作環境,那么就值得考慮采用內存數據庫。
愿意在IT上投入。
即便擴展系統以支持內存計算所帶來的成本要高于購買磁盤數據庫服務器的成本,公司管理層也必須在硬件上愿意花錢以擁有足夠的內存來滿足業務應用程序的處理需求。
靈活快速的分析。內存系統可以增強報表和分析應用的性能,以協助改善業務流程,這一切都是通過使終端用戶在一個較短的周期內做出明智選擇來實現的。例如,銷售預測從每周過渡到每小時就可以創建實時的產品價格模型并由此增加盈利能力,同時定價決策也能夠迅速傳達并執行。
支持混合開發。允許事務和分析應用同時訪問同一數據庫是提供實時分析功能的另外一條途徑。但是資源沖突會在一個傳統關系型數據庫中引起性能問題,這主要是由于查找和訪問存儲在磁盤上的數據記錄引起的延時。而配置了內存數據庫,延時就可以忽略不計了。
數據感知。當海量數據訪問調用只涉及數據庫的一小部分時,內存技術也就有了用武之地。根據Teradata最新發布的白皮書,43%針對數據倉庫的查詢只訪問了可用信息的1%,而92%的查詢只使用了20%的數據。識別頻繁訪問的熱點數據并將其保留在內存中會大大減少查詢響應時間。
總之,企業的業務流程可以從數據實時可用,混合應用的并發性以及明顯加快的報表和分析中得以體現,這些情況都非常適于部署內存數據庫。某些場景下所要做的決策是顯而易見的。但是在大多數情況下,內存軟件的考量必須符合IT支出優先級和公司業務目標,包括一個顯而易見的論據,即通過更快的事務處理和報表訪問以及隨機查詢結果可以讓公司業績的關鍵領域獲得怎樣的改善,而這些都是內存技術的用武之地。