去年6月份,甲骨文推出數據庫12c產品;時隔一年后的6月, In-memory內存數據庫選件面市。這一前一后兩個產品,是甲骨文數據庫正在編織的一張龐大的網。
這張網既要網住甲骨文數據庫業已擁有的傳統IT用戶,也要網住希望藉由創新技術助力企業轉型的新興公司。要想實現這一切,不能忽視云計算、大數據摧枯拉朽之勢。殊不見開源數據庫和Hadoop、NoSQL已經隨著云計算、大數據滾滾大潮來臨了。在記者看來,無論是數據庫12c還是In-memory內存數據庫選件,甲骨文都是在下定決心,要讓自己的數據庫產品擁有云計算、大數據的基因,以延續其數據庫產品在傳統IT架構中的輝煌。
從10g、11g到12c ,單從更名為“c(cloud)”已經寓意著甲骨文數據庫“云”的特征。12c的最大特點是多租戶,能夠把一個物理數據庫分成若干個虛擬數據庫,即“可插拔”,無論對于私有云還是公有云構建,這一功能都是面向云計算非常關鍵的一個功能。對于用10g或者11g版本數據庫編寫的應用來說,不需要對舊版本應用做任何改寫,就可以通過12c版本放到云上。
在PaaS能力上,不得不承認甲骨文有其數據庫產品打底兒,底氣的確比較足。即使SaaS全球第一的公司Salesforcec.com,也在一年前與甲骨文簽訂了長達9年的戰略合作,部署50臺甲骨文Exadata(數據庫云服務器)一體機,把其所有底層全部架構到甲骨文上。而據京東研發部云平臺總監郭理靖向記者介紹,京東也采用了甲骨文Exadata構建京東全新的數據庫PaaS云平臺,并在其上部署Oracle EBS等核心應用。
而具體到大數據基因,Oracle Database In-Memory可算是甲骨文在大數據上放的一個“大招”,這是12c專門針對大數據的一個重要增強功能。前不久甲骨文公司數據庫技術產品執行副總裁Andrew Mendelsohn特別在北京為記者詳解了這款產品的特點和功能。
對于關系型數據庫的存儲來說,交易型數據以行的格式存儲,比如電子商務類應用;分析型數據以列的格式存儲,比如分析型的應用。對于甲骨文之外的數據庫產品來說,在應用開發者決定在一個關系型數據庫中寫一個表的時候,必須先要決定這個表是用來做交易型數據分析,還是做分析型數據分析,從而從一開始就決定是把表寫成行的格式抑或列的格式。
而甲骨文把列存儲的格式引入Oracle Database In-Memory,給了應用開發者更多選擇。在應用開發者決定在一個關系型數據庫中寫一個表的時候,開始可以先寫成行的格式支持高性能交易處理,之后如果發現這個表還可以用作分析的話,可以在同一張表中、在內存當中同樣支持列的格式。這一新技術讓客戶或者開發者避免一開始就要在行或者列中二選一,從而犧牲另一方面的性能。
Andrew Mendelsohn強調,其他廠商的數據庫產品如果后期要引用列格式的話,必須在磁盤上恢復,所有關系型數據庫當中的機器都要支持;而對于甲骨文來說,不用改變磁盤上的數據格式,在列式的數據出現的時候之需要在內存當中讀取就可以了。這也是In-memory內存數據庫選件的特性:只需在內存中讀取列式數據,而不需改變磁盤上的數據格式,也不需進入日志和進行備份恢復。
在很多復雜的應用場景中,數據庫往往既要支撐交易型數據也要支撐分析型數據的查詢,這時候的做法可以是在表中插入一個記錄,同時更新很多條分析型索引。這些分析型索引的確使分析型數據的查詢速度更快了,但是與此同時會使得交易數據的查詢變得緩慢。
而Oracle Database In-Memory,可以在不需要分析型索引的時候把這些索引刪除,使交易數據運行更快。而在需要進行分析型數據處理的時候在把索引加入,使分析型數據運行更快。對此Andrew Mendelsohn介紹:“施耐德電氣通過使用甲骨文這項技術,可以在運行交易數據的時候刪除20多個分析型索引,使得交易行的插入速度提升9倍。” Oracle Database In-Memory可以使數據分析速度有數量級的提升,每一個CPU內核掃描的速度可以達到每秒10億條。
一直以來,甲骨文的產品都在強調靈活遷移和可擴展性,這在Oracle Database In-Memory上也得到了印證。Oracle Database In-Memory對所有SQL操作沒有任何限制,無需進行任何數據的遷移,完全可以兼容所有現有應用,完全支持多租戶。對于現有客戶來說,可以非常容易的使用新的Oracle Database In-Memory。所有在磁盤上的數據都不需要改變、不需要進行遷移。對于客戶來說,只需要決定要用多少內存分配給Database In-Memory,有多少列式存儲的表要存儲到In-Memory當中。
Andrew Mendelsohn表示,包括SAP的HANA在內的其他列數據庫廠商往往要求用戶購買新的硬件來支持數據庫,對于甲骨文來說,有決定數據存在磁盤、閃存、內存的技術,用戶可以選擇按照所需在表級別或分區的級別進行購買,不用整體購買內存來存儲所有數據,降低采購成本。