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