內(nèi)存數(shù)據(jù)庫(kù)帶來(lái)的實(shí)時(shí)分析能力備受現(xiàn)代企業(yè)的青睞,這促使包括SAP在內(nèi)的供應(yīng)商紛紛推出自己的內(nèi)存數(shù)據(jù)庫(kù)產(chǎn)品。作為長(zhǎng)期以來(lái)數(shù)據(jù)庫(kù)領(lǐng)域的龍頭老大,甲骨文公司于今年6月發(fā)布了其內(nèi)存數(shù)據(jù)庫(kù)產(chǎn)品Oracle Database In-Memory。
甲骨文公司數(shù)據(jù)庫(kù)技術(shù)產(chǎn)品執(zhí)行副總裁Andrew Mendelsohn近日在北京舉辦的媒體溝通會(huì)上,詳細(xì)介紹了Oracle Database In-Memory的各種優(yōu)勢(shì)。
突破行列格式限制
Andrew指出,Oracle Database In-Memory的一大創(chuàng)新是突破了數(shù)據(jù)庫(kù)格式的行列限制,而采用雙格式數(shù)據(jù)庫(kù)內(nèi)存。他解釋說(shuō),一般來(lái)說(shuō),行式數(shù)據(jù)庫(kù)在訪問(wèn)少量行、大量列時(shí)速度更快,適用于交易系統(tǒng),如插入或查詢一條銷售訂單;列式數(shù)據(jù)庫(kù)則在訪問(wèn)大量行、少量列時(shí)速度更快,適應(yīng)于分析系統(tǒng),如按地域生成銷售額報(bào)告。
此前受技術(shù)限制,用戶從一開(kāi)始就要選擇是采用行式數(shù)據(jù)庫(kù)或列式數(shù)據(jù)庫(kù)中的一種,而犧牲掉另一方面的性能。Oracle Database In-Memory通過(guò)同一張表在內(nèi)存中同時(shí)支持行和列兩種格式,同時(shí)激活并保持事務(wù)一致性,對(duì)分析和報(bào)表采用新的內(nèi)存列格式,OLTP(聯(lián)機(jī)事務(wù)處理系統(tǒng))則采用久經(jīng)考驗(yàn)的行格式運(yùn)行。
Oracle 內(nèi)存列式存儲(chǔ)技術(shù)在進(jìn)行分析類操作時(shí)有著巨大的優(yōu)勢(shì):純內(nèi)存中的列式存儲(chǔ)能快速響應(yīng)數(shù)據(jù)變化,壓縮比例可達(dá)到2倍至20倍,粒度可支持表級(jí)與分區(qū)級(jí)。測(cè)試數(shù)據(jù)顯示,列格式的每CPU內(nèi)核可達(dá)到10億條/秒的掃描速度,而行格式僅能達(dá)到百萬(wàn)條,性能的提升高達(dá)100倍以上。
Andrew介紹,Oracle Database In-Memory還能讓傳統(tǒng)的OLTP性能有所提升。面向交易的OLTP中的大部分索引是為了提高分析查詢速度而建的,僅能加速定制查詢和報(bào)表,而向表中插入一條記錄通常需要更新10~20個(gè)分析型索引,使得OLTP系統(tǒng)變得非常慢。Oracle Database In-Memory以列存儲(chǔ)取代了分析型索引,可以基于任何一列實(shí)現(xiàn)快速分析,不僅提升了定制查詢速度,而且還加快了隨機(jī)查詢速度。
來(lái)自甲骨文公司的資料稱,Oracle Database In-Memory可讓企業(yè)的分析性能提升高達(dá)100倍,事務(wù)處理性能也得到大幅改善。一次測(cè)試顯示,總結(jié)4100萬(wàn)行發(fā)票內(nèi)容大約需要4個(gè)小時(shí)。在對(duì)應(yīng)用進(jìn)行微調(diào)且用Oracle Database In-Memory再次進(jìn)行試驗(yàn)后,只用4秒鐘便能完成任務(wù)。
作為Oracle Database In-Memory的測(cè)試客戶,喜達(dá)屋酒店集團(tuán)架構(gòu)師Arup Nanda感嘆:“現(xiàn)在我們可以在OLTP數(shù)據(jù)庫(kù)中直接做實(shí)時(shí)分析,這在以前是絕對(duì)不可想象的?!?/p>
無(wú)需新購(gòu)硬件和改變應(yīng)用
Andy Mendelsohn指出,和友商們的內(nèi)存數(shù)據(jù)庫(kù)產(chǎn)品通常需要購(gòu)買新的硬件產(chǎn)品來(lái)支持不同的是, Oracle Database In-memory可以看作是傳統(tǒng)Oracle數(shù)據(jù)庫(kù)的一個(gè)插件,用戶不用再購(gòu)買新的硬件,而僅需根據(jù)需求配置內(nèi)存中列存儲(chǔ)的容量,將表或者分區(qū)加入列存儲(chǔ)中。
Rittman Mead的CTO Mark Rittman甚至評(píng)價(jià)說(shuō),部署Oracle Database In-memory沒(méi)什么好說(shuō)的,只要把開(kāi)關(guān)打開(kāi),選擇表裝載到內(nèi)存即可,別的什么也不需要做。
即便如此,Andrew依然強(qiáng)調(diào),Oracle Exadata數(shù)據(jù)庫(kù)云服務(wù)器和包括Oracle SuperCluster在內(nèi)的Oracle集成系統(tǒng)在部署Oracle Database In-Memory時(shí)更具優(yōu)勢(shì)。
Oracle集成系統(tǒng)針對(duì)Oracle Database In-Memory進(jìn)行了優(yōu)化,提供大容量存儲(chǔ)、極致的性能和高可用性,同時(shí)還提供了存儲(chǔ)分層,將活動(dòng)性較低的數(shù)據(jù)轉(zhuǎn)移到閃存和磁盤中,以提供出色的性價(jià)比。Oracle集成系統(tǒng)的內(nèi)存容錯(cuò)功能跨多個(gè)節(jié)點(diǎn)選擇性地復(fù)制內(nèi)存數(shù)據(jù),因此,如果一臺(tái)服務(wù)器發(fā)生故障,便可以立即使用內(nèi)存數(shù)據(jù)副本來(lái)滿足查詢要求。
據(jù)了解,Oracle Database In-memory在部署上的另一優(yōu)勢(shì)是用戶無(wú)需對(duì)應(yīng)用進(jìn)行任何修改就可以用其來(lái)同時(shí)加速分析系統(tǒng)與交易系統(tǒng)。
中國(guó)計(jì)算機(jī)報(bào)2014年30期