2012年深秋,SAP推出的全內(nèi)存數(shù)據(jù)庫HANA已經(jīng)擁有了500多個(gè)客戶,發(fā)布15個(gè)月即有這樣的成績,整個(gè)數(shù)據(jù)庫世界都為之側(cè)目。
在Oralce的一份內(nèi)部資料中,是這樣評價(jià)HANA的:“HANA的確是一項(xiàng)創(chuàng)新,對Oralce來說也是一個(gè)威脅。”
的確,盡管HANA仍然是一個(gè)小眾新型數(shù)據(jù)庫,但是隨著越來越多的服務(wù)器廠商推出HANA服務(wù)器,一直以來的數(shù)據(jù)庫全球霸主Oracle顯然坐不住了。就在當(dāng)年10月,Oralce創(chuàng)始人兼首席執(zhí)行官拉里 埃里森親自發(fā)布了Exadata X3服務(wù)器,算是對SAP HANA的回應(yīng)——這種服務(wù)器使用閃存來讓其數(shù)據(jù)庫能以更快的速度運(yùn)行。
很顯然,這個(gè)反擊太弱。SAP數(shù)據(jù)庫技術(shù)高級副總裁史蒂夫 盧卡斯很輕蔑地對媒體說:“將一個(gè)老式的數(shù)據(jù)庫放在速度超快的硬件中,藉此來提高其速度,這不會對Hana造成損害。”他甚至嘲笑Oracle是身披各種枷鎖的目光短淺者:“一家公司(指oracle)的脖子上掛著100億美元的數(shù)據(jù)庫‘枷鎖’,還掛著數(shù)十億美元的硬件‘枷鎖’,所以他們的解決方案就只能是把更多的硬件扔向依舊還是那么陳舊的軟件。覺得公司需要的只不過是一種速度更快的數(shù)據(jù)庫,那是一種目光短淺的觀點(diǎn)。”
也是,HANA系統(tǒng)能夠容納100TB數(shù)據(jù),可升級至250TB,而埃里森高調(diào)發(fā)布的Exadata X3 系統(tǒng)能容納最多26TB數(shù)據(jù)。的確不在一個(gè)數(shù)量級上。記得當(dāng)時(shí)SAP技術(shù)與創(chuàng)新負(fù)責(zé)人兼首席技術(shù)官Vishal Sikka還為此說過一句簡直能把埃里森氣死的話:“我的小姑娘Hana出去跟甲骨文干架了。她一定會把甲骨文的數(shù)據(jù)庫當(dāng)成鼓來敲。”
這口惡心,Oracle怎么咽得下去?按照埃里森的性格,應(yīng)該早就挽胳膊、擼袖子大干苦干,快速推出一款真正具有炮轟SAP HANA的內(nèi)存數(shù)據(jù)庫才對,可實(shí)際上,一直到2014年6月份Oracle才發(fā)布了其新一代內(nèi)存數(shù)據(jù)庫Database In-Memory。當(dāng)時(shí),拉里 埃里森特別提到,OracleDatabase In-Memory能針對現(xiàn)有應(yīng)用整合實(shí)時(shí)數(shù)據(jù)分析與亞秒級交易,幫助企業(yè)變成真正的實(shí)時(shí)型企業(yè)。這話相當(dāng)有內(nèi)涵。
先說說內(nèi)存數(shù)據(jù)庫吧。
這并不是新東西,內(nèi)存數(shù)據(jù)庫存在有十年了,在這個(gè)領(lǐng)域有不少小公司在做技術(shù)上的各種探索,其中有一家叫TimesTen,在2005年被Oracle收購。但在SAP HANA發(fā)布之前內(nèi)存數(shù)據(jù)庫并沒有得到市場的普遍認(rèn)可,因此也沒有一家內(nèi)存數(shù)據(jù)庫公司真正火起來。究其原因,我想一方面是因?yàn)閮?nèi)存數(shù)據(jù)庫的性價(jià)比問題,另一方面是企業(yè)更關(guān)注交易型業(yè)務(wù)(OLTP),而實(shí)時(shí)分析型業(yè)務(wù)(OLAP)則是在web業(yè)務(wù)興起之后才出現(xiàn)大規(guī)模需求的。
那為什么是SAP在內(nèi)存數(shù)據(jù)庫技術(shù)上取得了突破,而不是一貫的數(shù)據(jù)庫市場執(zhí)牛耳者Oracle呢?這其實(shí)非常正常,就是商業(yè)利益驅(qū)動(dòng)技術(shù)進(jìn)步,或者說一切技術(shù)創(chuàng)新都是為了獲取更多商業(yè)利益,否則就是紙上談兵。
20年前SAP一失足沒有開發(fā)自有數(shù)據(jù)庫而是選擇了用別人的數(shù)據(jù)庫,后來卻發(fā)現(xiàn)商業(yè)場如同名利場,只有暫時(shí)的朋友,哪里能求“白首不相離”?SAP在金融危機(jī)之后遭遇發(fā)展瓶頸努力尋求突破口,自然又想到了20年前的遺憾,而數(shù)據(jù)庫看上去的確是需要變革了。目前為止,無論是交易型(OLTP)還是分析性(OLAP)業(yè)務(wù)系統(tǒng),大部分應(yīng)用系統(tǒng)都是基于傳統(tǒng)關(guān)系型數(shù)據(jù)庫而創(chuàng)建的。而傳統(tǒng)的關(guān)系型數(shù)據(jù)庫主要是為傳統(tǒng)的OLTP而設(shè)計(jì)的。雖然這些年來數(shù)據(jù)庫產(chǎn)品的版本一年比一年更新得快,效率和功能也確實(shí)越來越強(qiáng)大,但這些基于傳統(tǒng)關(guān)系型數(shù)據(jù)庫和傳統(tǒng)架構(gòu)進(jìn)行的優(yōu)化和改進(jìn)都是基于磁盤技術(shù)來進(jìn)行的。海量數(shù)據(jù)的增長,使得磁盤I/O性能這一問題逐漸暴露出來。內(nèi)存數(shù)據(jù)庫拋棄了磁盤數(shù)據(jù)管理的傳統(tǒng)方式,基于全部數(shù)據(jù)都在內(nèi)存中重新設(shè)計(jì)了體系結(jié)構(gòu),并且在數(shù)據(jù)緩存、快速算法、并行操作方面也進(jìn)行了相應(yīng)的改進(jìn),所以數(shù)據(jù)處理速度比傳統(tǒng)數(shù)據(jù)庫的數(shù)據(jù)處理速度要快很多。
這是歷史賦予的彌補(bǔ)遺憾的機(jī)會??!盧卡斯攻擊Oracle渾身上下都是“枷鎖”,從數(shù)據(jù)庫產(chǎn)品的角度來說,SAP的確沒有歷史包袱,而且要想突破Oracle鐵桶一樣的圍墻,只有另辟蹊徑,攻其不備,于是,“大S”SAP一生氣就把“小s”Sysbase的優(yōu)秀列示數(shù)據(jù)庫基因發(fā)展壯大長出了一個(gè)全內(nèi)存列示數(shù)據(jù)庫HANA(High-Performance Analytic Appliance),并于2011年6月在全球范圍內(nèi)上市。官方描述是“作為一款內(nèi)存計(jì)算數(shù)據(jù)庫,SAPHANA可以在用戶原有的ERP系統(tǒng)上順暢運(yùn)行,還支持用戶拋開數(shù)據(jù)倉庫,或者減少對實(shí)體數(shù)據(jù)倉庫的使用,并且獲得與數(shù)據(jù)倉庫相當(dāng)?shù)闹悄芊治瞿芰Α?rdquo;
這當(dāng)然不是第一款內(nèi)存數(shù)據(jù)庫了,但是SAP有錢有品牌,而且恰逢web業(yè)務(wù)風(fēng)生水起,天時(shí)地利人和,HANA就在全世界燒起了熊熊烈火,而被灼傷的則是Oracle那顆倔強(qiáng)的心。
實(shí)際上,大家應(yīng)該注意到了,Oracle并沒有對內(nèi)存數(shù)據(jù)庫的萌芽和發(fā)展視而不見,相反早在2005年的時(shí)候就嗅到了這種變化趨勢所以收購了TimesTen昂首闊步進(jìn)入了內(nèi)存數(shù)據(jù)庫領(lǐng)域。但是,Oracle傳統(tǒng)數(shù)據(jù)庫的生意太好了,而且市場對于內(nèi)存數(shù)據(jù)庫的需求也沒那么強(qiáng)烈,對這位數(shù)據(jù)庫巨頭來說,沒必要推出一款諸如HANA一樣完全不同于傳統(tǒng)數(shù)據(jù)庫的產(chǎn)品,直到HANA火爆。
不過,永遠(yuǎn)不要著急下結(jié)論,雖然初生牛犢不怕虎,可是姜還是老的辣。Oracle一旦意識到內(nèi)存數(shù)據(jù)庫漸成熱點(diǎn),立刻顯示出了后發(fā)優(yōu)勢——比SAP更有錢、更有品牌、更有技術(shù)、更有市場。
所以,Oracle Database In-Memory終于在2014年6月隆重亮相——話題終于又回到這里了,這一圈繞得好大啊!
相比于HANA的全內(nèi)存結(jié)構(gòu),Oracle Database In-Memory是熱內(nèi)存結(jié)構(gòu),這是天然優(yōu)勢——看得見的未來內(nèi)存肯定比硬盤貴啊,再說也沒必要把整個(gè)數(shù)據(jù)庫都裝在內(nèi)存里跑。
當(dāng)然,Oracle Database In-Memory最大的創(chuàng)新,是突破行列限制,采用雙格式數(shù)據(jù)庫內(nèi)存。在過去,客戶在行式數(shù)據(jù)庫和列式數(shù)據(jù)庫之間只能擇一而行,從而在數(shù)據(jù)處理性能上受到局限。行式數(shù)據(jù)庫更適合交易類操作,比如插入或查詢一條銷售訂單,而列式數(shù)據(jù)庫則更善于進(jìn)行分析類操作,比如按地域生成銷售額報(bào)告。當(dāng)然HANA就是列示數(shù)據(jù)庫,所以對OLAP的支持要遠(yuǎn)遠(yuǎn)好過于對OLTP的支持。而Oracle Database In-Memory通過在同一張表在內(nèi)存中同時(shí)支持行和列兩種格式,同時(shí)激活并保持事務(wù)一致性,對分析和報(bào)表采用列格式,OLTP則采用久經(jīng)考驗(yàn)的行格式運(yùn)行。這樣做的各種優(yōu)點(diǎn)請自行聯(lián)想,不再贅述,總結(jié)一句話就是:百變神行,突破傳統(tǒng)數(shù)據(jù)庫圍墻,可以在OLTP數(shù)據(jù)庫中直接做實(shí)時(shí)分析,這在以前是不可想象的。
最有趣的事情是,Oracle幫助SAP聯(lián)席創(chuàng)始人Hasso Plattner實(shí)現(xiàn)了預(yù)言。Hasso在贊揚(yáng)HANA時(shí)候曾經(jīng)這樣表達(dá)自己對數(shù)據(jù)庫技術(shù)發(fā)展的看法:“長期以來業(yè)界一直流行一種說法,OLTP是寫入導(dǎo)向的,OLAP是讀取導(dǎo)向的,因此我們需要使用不同的數(shù)據(jù)庫。這種理論在三十年前被提出,未來的五年仍然有效,但是長期來看這種模式不會一直適用。”他說對了,因?yàn)镺racle Database In-Memory已經(jīng)實(shí)現(xiàn)了這一點(diǎn)。
所以,估計(jì)連Hasso都會承認(rèn)這是Oracle在內(nèi)存數(shù)據(jù)庫領(lǐng)域的顛覆性創(chuàng)新。我還覺得這是對SAP心愛的小姑娘HANA的致命一擊,估計(jì)這一點(diǎn)Hasso也得承認(rèn)??傊?,就上面兩點(diǎn)而言,HANA天生注定就是個(gè)小眾市場的寵兒,而OracleDatabase In-Memory的普及面的確有天然優(yōu)勢,不服去找Oracle辯。
叫好又叫座,才是真的好。光技術(shù)領(lǐng)先、創(chuàng)新不夠,商業(yè)性才是決定性的魔杖。Oracle是老手,在這一點(diǎn)上不會犯錯(cuò)誤。DatabaseIn-Memory將作為Oracle數(shù)據(jù)庫的可選配件方式提供。這意味著Oracle內(nèi)存數(shù)據(jù)庫與HANA的另一個(gè)重要區(qū)別,即HANA需要用戶購買新的服務(wù)器(市場上有許多HANA服務(wù)器可以供選擇),而Oracle內(nèi)存數(shù)據(jù)庫則無需如此大動(dòng)干戈。
Oracle數(shù)據(jù)庫技術(shù)產(chǎn)品執(zhí)行副總裁Andrew Mendelsohn說,“Database In-Memory可在企業(yè)運(yùn)行Oracle數(shù)據(jù)庫的系統(tǒng)上運(yùn)行,支持企業(yè)目前正在使用的應(yīng)用,無需對應(yīng)用進(jìn)行任何修改。”他還表示, Oracle Database In-Memory在任何與Oracle數(shù)據(jù)庫兼容的現(xiàn)有應(yīng)用環(huán)境中,都能夠非常簡單、快捷地進(jìn)行部署,如同撥動(dòng)一下開關(guān),無需對應(yīng)用做任何更改。測試結(jié)果顯示,包括Oracle電子商務(wù)套件、JD Edwards、PeopleSoft、Siebel和Oracle融合應(yīng)用等在內(nèi)的一系列應(yīng)用都可以獲得1000倍以上的性能提升——這個(gè)1000倍的說法當(dāng)然聽聽就好。
當(dāng)然,Oracle一貫的策略也是軟硬一體化的方式提供服務(wù),所以隨同Database In-Memory的發(fā)布,Exadata和SuperCluster都進(jìn)行了優(yōu)化。不過Oracle認(rèn)為M6-32 大內(nèi)存機(jī)才是能夠?qū)atabase In-Memory的性能展示到極佳的最強(qiáng)大平臺,當(dāng)然不能浪費(fèi)其32TB DRAM內(nèi)存和3TB/秒內(nèi)存帶寬。
好吧,SAP HANA請小心,珍重!