又到一年盤點時。在剛剛經歷了“大年(新產品集中發布)”之后,2013年數據庫市場依舊保持了快步發展的節奏。隨著數據量的極速增長以及技術的完善成熟,企業對數據分析的需求達到了前所未有的高度,海量數據中蘊含的商業價值等待被挖掘。與此同時,云數據庫技術以及數據庫即服務(DBaaS)的出現讓企業可以把更多基礎架構運維的工作轉移給服務提供商,而傳統數據庫管理員(DBA)的價值究竟如何體現,這是個問題。為此我們在本文中,將從多個角度為您總結數據庫領域在過去一年中幾個值得關注的話題。
數據分析崛起 列式存儲+內存分析引領“潮流”
傳統做交易數據庫的廠商今年都忙著推出最新的分析型數據庫,這是他們之前并不太關注的領域。事實上交易型數據庫管理系統的技術復雜度與門檻要遠高于分析型系統,對于這種廠商集體“向后轉,齊步走”的行為,IBM的負責人總結的很好:數據分析市場的增長速度非常之快,客戶對應用的需求已經從之前的記錄系統(system of record)應用逐漸轉向員工系統(system of engagement)應用。也就是說從交易型工作負載轉移到了范圍更廣、發展速度更快的分析型工作負載。可以說分析已經無處不在。
分析型數據庫中的一個主要技術就是列式存儲,將數據以列的方式存儲在數據庫當中,一方面能夠對數據進行更深度的壓縮,控制數據量同時減少I/O,提升數據分析性能。列式數據存儲并不是什么新技術,在當年的Sybase IQ以及Vertica等數據庫產品中已經得到了廣泛的應用。在新一輪的數據分析浪潮當中,內存技術的崛起讓列式數據庫有了更廣闊的發揮空間,壓縮過的數據可以全部放到內存中進行分析,把數據庫性能推向了極致。列式存儲+內存分析在某種程度上已經成為新時代數據庫技術的“標配”。
IBM推出DB2 BLU技術,加速大數據分析
今年對于DB2來說是不同尋常的一年,因為這個關系型數據庫的鼻祖迎來了它“30歲的生日”。我們也專門為DB2策劃了一個專題,回顧了它過去30年的發展歷程。今年4月份,IBM推出了最新版的DB2 10.5數據庫,其中增加了BLU加速器功能,讓用戶的目光再次聚焦在IBM的旗艦級關系型數據庫之上。
DB2 BLU加速器是一個壓縮優化、內存優化的基于列式的數據庫產品。在技術方面它的亮點主要包括:查詢功能完全管道化(pipelining ),表掃描可以共享;數據忽略(Data Skipping)功能能夠有效降低I/O;基于單指令多數據結構(SIMD)的矢量化(Vectorization );概率緩存取代傳統LRU(Least Recently Used),經常被引用的數據塊出現在內存當中的幾率就越大。這一功能的背后還有更復雜的隨機算法支持;“自動化工作負載管理”功能,IBM認為查詢之間的資源爭用是造成資源浪費的主要原因,這一功能讓BLU加速器與傳統DB2數據庫相比在并發性上產生差異性優勢。
當然,DB2 BLU加速器也存在一些的限制和不足。通過與IBM技術人員的溝通我們發現,DB2 BLU加速器并不會自動化地區分哪些數據庫表該用列式存儲,哪些該用傳統的行式存儲,IBM認為數據庫的負載變化是不好預測的,因此目前的技術還沒有達到要求。另外DB2 BLU加速器目前還只是支持縱向擴展(Scale-up),也就是說基于單一服務器,這也影響了內存技術發揮其更大的作用。希望IBM能夠盡快解決這一問題。
Oracle“服軟”,內存數據庫選件挑戰SAP神經
雖然嘴上說與SAP HANA沒有可比性,但明眼人都能看出來今年10月份推出的Oracle內存數據庫選件(in-memory database option)是沖著SAP來的。目前大部分SAP的應用是跑在Oracle數據庫上的,但誰也不能保證10年以后還是這樣,因為SAP在大力推廣他們的HANA數據庫并且收到了不錯的效果。就連數據庫技術大牛Michael Stonebraker也預測未來Oracle會感受到來自SAP的壓力。那么現在問題變成了,當Oracle也有類似產品,并且能夠保證應用的無縫遷移時,客戶會選誰家的產品?
每次開大會,Oracle幾乎都不會忘了吐槽SAP兩句,今年的OpenWorld也不例外。但今年SAP沒有再選擇隔空喊話,而是直接把飛機開到舊金山上空“砸場”。SAP的史維學還特意錄了視頻歡迎Oracle加入內存數據庫派對,開玩笑問為什么Larry花了4年的時間才醒悟過來HANA的路是正確的。那么Oracle的內存數據庫和HANA相比究竟有哪些區別呢?
首先Oracle內存數據庫選件支持兩種方式的數據存儲格式,即傳統的行式存儲,以及新的列存儲。針對同一個數據和表,Oracle內存數據庫能夠同時以兩種格式進行存儲,并同時進行更新(增刪改)并保持一致。比如增加一行數據到一張表,以列格式存儲的數據也會同步更新。對OLAP方面的性能提升無需多言,而且它刪除了大量原來用于統計的索引,也間接提升了OLTP性能。此外,所有傳統的Oracle數據庫可用性功能在啟用新的內存數據庫選項時,都不會發生變化。應用也可以無縫運行在Oracle內存數據庫選件上,這對于SAP應用的客戶來說是非常有吸引力的。事實上,數據庫平臺的遷移會帶來大量底層架構以及前端應用的變動,這是客戶無法接受的。如果客戶可以使用原來的技術同時又能保證未來系統對性能的需求,那么相信沒有誰會想這么折騰。
SAP HANA:體現的是平臺價值
SAP已經把HANA視為最重要的技術,而包括應用軟件(Business Suite、HCM)、云計算以及移動等平臺在未來都將圍繞HANA進行構建。其優勢在于它已經在列式存儲+內存分析這條路上走了3年多時間,如果算上之前的Sybase IQ已經有十幾年的時間,而包括IBM的DB2 BLU也只是剛剛發布,Oracle的內存數據庫選件正式發布時間還未確定。雖然占比不高,但SAP HANA確實已經有一些上線的安裝基礎了,這確實是IBM、Oracle無法與SAP相比的地方。
SAP認為,企業的系統核心、數據結構以及處理流程越一致,其ERP所能發揮的效能就越高。SAP在努力說服客戶從Oracle遷移到HANA平臺上,忽略底層技術的復雜性,更關注于最終實現功能的周期以及系統性能的提升。因為客戶對新技術的抵觸情緒是阻礙HANA進一步普及的主要原因之一,客戶需要看到更多HANA成功案例,而SAP自己就是最大的證明,他們只用了一年的時間就將公司的BW、CRM和ERP系統遷移到了HANA平臺上。
今年五月份,SAP宣布Business Suite on HANA正式GA(general availability),預計到年底 Business Suite on HANA的目標客戶將達到600以上。而SAP認為HANA還有很大的提升空間,比如接近實時的處理非常復雜的查詢,以及更高的查詢速度。另外SAP也與合作伙伴努力打造HANA生態系統,推出單一服務器的HANA一體機,比如HP的服務器已經支持12-48TB的DRAM;IBM也在x86架構服務器上為HANA提供了解決方案,通過獨特的設計能夠讓HANA的性能發揮到極致;SAP還通過AWS為用戶提供HANA one平臺服務。在橫向擴展(scale out)方面,SAP還實現了1萬個CPU核心,250 TB數據的HANA集群部署。
“SAP HANA不是無聊的數據庫,而是企業未來創新的基礎平臺。”這是SAP想傳遞給客戶的關鍵信息。擴展閱讀:SAP HANA:凸顯平臺的價值
微軟SQL Server 2014主打內存OLTP
雖然在企業級層面微軟的數據庫技術同上述三大廠商相比還有一定差距,但微軟一直在努力縮短這一差距。在SQL Server 2012剛剛發布一年多時間之后,下一代數據庫平臺SQL Server 2014也即將問世。目前微軟已經完成了第二版的社區預覽,也正式版之前的最后一個測試版本,在明年年初SQL Server 2014就將迎來最終發布。
與IBM、Oracle以及SAP不同,微軟SQL Server 2014主打的并不是分析系統,而是利用內存技術提升OLTP性能。據了解,微軟這一以“Hekaton”為代號的項目將正式更名為SQL Server內存OLTP引擎。微軟針對在OLTP操作進行了大量的優化,這些操作將在內存中完成,能夠在提升性能的同時,支持更大的讀負載。與其他類似產品不同的是,SQL Server 2014的內存數據庫功能將不依賴于昂貴的硬件,用戶可以自行選擇哪些數據庫表放到內存里,哪些放在硬盤上。而像HANA這樣的產品是完全基于內存的,需要購買成本較高的硬件設備進行支持。SQL Server 2014使用現有的硬件設備就可以充分利用微軟內存數據庫的優勢。
此外,SQL Server 2014還將與Windows Azure進行更緊密的集成,包括將Azure VM用作AlwaysOn高可用性組的副本,內置了Azure備份支持等。在列存儲方面,SQL Server 2014也將推出新一代的xVelocity ColumnStore技術,它可以對數據進行持續加載,同時列存儲索引能夠讓SQL Server在索引中對數據進行壓縮,從而進一步提升查詢性能。與之前的版本相比,SQL Server 2014可以在已有的列存儲索引中對數據進行加載和刪除操作。