云計(jì)算如何影響NoSQL數(shù)據(jù)庫(kù)的發(fā)展
Guy Harrison是Quest軟件研發(fā)經(jīng)理和數(shù)據(jù)庫(kù)大師,最近他談及了在Quest云計(jì)算新產(chǎn)品Toad和下一代稱(chēng)之為“NoSQL”的非關(guān)系型數(shù)據(jù)庫(kù)中所做的工作,并就非關(guān)系型數(shù)據(jù)庫(kù)的相關(guān)領(lǐng)域及云計(jì)算的推動(dòng)作用回答了記者的提問(wèn)。以下為訪(fǎng)談?dòng)涗洠?/p>
Quest Software's Chief Officer, Guy Harrison
問(wèn):什么推動(dòng)了新型非關(guān)系型數(shù)據(jù)庫(kù)的出現(xiàn)?是否是如今數(shù)量驚人的數(shù)據(jù)?
Guy Harrison:那是整個(gè)爭(zhēng)論的焦點(diǎn)所在。將數(shù)據(jù)保存在硬件中,然后使用一個(gè)不怎么合適且能力有限的引擎;或者支付一定的費(fèi)用將數(shù)據(jù)保存在某些設(shè)施中,并在真正使用之前鎖存起來(lái)。如果你去看看Hadoop目前已初具規(guī)模的數(shù)據(jù)倉(cāng)庫(kù)市場(chǎng),它幾乎是一個(gè)不斷發(fā)生沖突、碰撞的過(guò)程。
Oracle正致力于海量數(shù)據(jù)、大規(guī)模并行處理、優(yōu)化I/O、CPU和I/O之間的超高速通道等工作,并試圖通過(guò)相同的處理途徑和安全的文件格式在大量數(shù)據(jù)中進(jìn)行相關(guān)操作,這就意味著你無(wú)需在數(shù)據(jù)庫(kù)中處理數(shù)據(jù),你能夠?qū)?shù)據(jù)庫(kù)指向別處并清楚其結(jié)構(gòu),但是它仍然保存在它初次出現(xiàn)的地方。
那距離目前Hadoop的成就并不遙遠(yuǎn)。雖然兩種技術(shù)之間還存在著一定的差距,但是兩者趨同性趨勢(shì)已相當(dāng)明顯,他們將會(huì)變得幾乎完全一致。
問(wèn):那么目前NoSQL數(shù)據(jù)庫(kù)又存在著哪些缺點(diǎn)呢?它能否提供一個(gè)全面的解決方案?
Guy Harrison:它在很多方面都有具體的任務(wù),同時(shí)還支持非常大型的應(yīng)用實(shí)現(xiàn)。但是其中充斥著顯而易見(jiàn)的差距需要進(jìn)一步彌補(bǔ),這也反應(yīng)了其成熟度水平。
我認(rèn)為任何在這個(gè)行業(yè)中工作過(guò)一段時(shí)間的人,特別是如果他從企業(yè)的角度出發(fā),都會(huì)理解數(shù)據(jù)不在數(shù)據(jù)庫(kù)中只是出于應(yīng)用的原因。并不僅僅限于插入、更新和刪除等操作,還要進(jìn)行挖掘和分析,以便用于決策和趨勢(shì)分析。擁有更詳盡的數(shù)據(jù),在決策時(shí)就能擁有更精細(xì)準(zhǔn)確的數(shù)據(jù)支持。但大多數(shù)NoSQL數(shù)據(jù)庫(kù)并沒(méi)有為之提供解決方案。
問(wèn):能否提供區(qū)別關(guān)系型數(shù)據(jù)庫(kù)和非關(guān)系型數(shù)據(jù)庫(kù)的實(shí)際示例?
Guy Harrison:你可以想象下諸如HBase沒(méi)有真正一致范圍的情況,如果你需要在HBase表格中完成類(lèi)似SELECT COUNT * 的功能,那么你基本上就需要開(kāi)始讀取所有的標(biāo)簽來(lái)計(jì)數(shù)行數(shù),因?yàn)闆](méi)有現(xiàn)成的API可以告訴你表格中有多少行,而唯一可行的方法就是把它們都讀取出來(lái)。
如果與此同時(shí),某人又在執(zhí)行插入操作,那么就沒(méi)有辦法真正確保你查詢(xún)到所有數(shù)據(jù),因此你就有可能遭遇到COUNT * 操作永遠(yuǎn)無(wú)法執(zhí)行完畢的窘境。所以,我們就必須拿出些能夠解決問(wèn)題的舉措出來(lái),要么設(shè)置超時(shí)預(yù)設(shè)值并發(fā)出諸如“無(wú)法執(zhí)行該任務(wù),查詢(xún)時(shí)間過(guò)長(zhǎng)”的提示,要么就應(yīng)當(dāng)試圖估算其大小。那是一個(gè)在任何關(guān)系型數(shù)據(jù)庫(kù)中都能夠順利執(zhí)行的簡(jiǎn)單關(guān)系型查詢(xún)例子,同時(shí)這也是在非關(guān)系型數(shù)據(jù)庫(kù)中一般不予以支持的應(yīng)用。
問(wèn):那么它們的用途何在?
Guy Harrison:讓我們看看目前的景象,在一個(gè)直接使用NoSQL的組織中Hadoop以及Hive如何運(yùn)用,一個(gè)在Hadoop基礎(chǔ)上使用類(lèi)SQL界面的產(chǎn)品,你就能了解這兩種NoSQL的使用情況。一種用于具有無(wú)限可擴(kuò)展性和相對(duì)簡(jiǎn)單數(shù)據(jù)模型的高速OLTP,而另一種由Hadoop提供的是如同正在使用SQL層數(shù)據(jù)倉(cāng)庫(kù)的使用體驗(yàn)。
問(wèn):企業(yè)為什么對(duì)NoSQL如此地感興趣?
Guy Harrison:我們已經(jīng)看到了最大型企業(yè)數(shù)據(jù)庫(kù)的容量已呈平穩(wěn)的指數(shù)增長(zhǎng)的趨勢(shì),而數(shù)據(jù)倉(cāng)庫(kù)技術(shù)大體上直到最近才能夠跟上這種增長(zhǎng)趨勢(shì)的腳步。而目前該指數(shù)型增長(zhǎng)已經(jīng)剛剛超出了最大型數(shù)據(jù)庫(kù)的能力范圍。Oracle和Teradata為此苦苦支撐,但是Hadoop的出現(xiàn)為此提供了一個(gè)更為經(jīng)濟(jì)的方案。
目前,也許我們的許多客戶(hù)并不愿意采用NoSQL,但是有許多客戶(hù)將在未來(lái)一年左右的時(shí)間內(nèi)選擇采用Hadoop。與Oracle公司的Exadata相比,處理創(chuàng)建海量數(shù)據(jù)倉(cāng)庫(kù)的大量記錄數(shù)據(jù)的經(jīng)濟(jì)性將更具成本效益。
問(wèn):似乎云計(jì)算和這些非關(guān)系型數(shù)據(jù)處理模型有著齊頭并進(jìn)的發(fā)展趨勢(shì),為什么會(huì)這樣?
Guy Harrison:首先,所有的云計(jì)算平臺(tái)必須提供一些彈性存儲(chǔ)模型,否則其經(jīng)濟(jì)模式將受到損害。使用的應(yīng)用程序越來(lái)越多,我希望能夠根據(jù)我實(shí)際使用情況來(lái)計(jì)算我在數(shù)據(jù)庫(kù)方面的費(fèi)用,然后我希望根據(jù)實(shí)際使用情況來(lái)計(jì)算我消耗的資源,事實(shí)上這是很難使用關(guān)系型數(shù)據(jù)庫(kù)來(lái)實(shí)現(xiàn)的。從理論上來(lái)說(shuō),Oracle公司的RAC可以做到這一點(diǎn),但是你無(wú)法自動(dòng)分享MySQL。分享它的人必須要投入龐大的手動(dòng)工作量,并規(guī)劃各種東西?,F(xiàn)實(shí)中這是難以實(shí)現(xiàn)的。
因此Amazon的SimpleDB和微軟公司的Azure Table都是一種非關(guān)系型數(shù)據(jù)庫(kù)。Google公司也擁有類(lèi)似的產(chǎn)品。
問(wèn):那是供應(yīng)商端的狀況,但是企業(yè)客戶(hù)是否正在使用這些技術(shù)和產(chǎn)品呢?
Guy Harrison:Netflix是SimpleDB的大客戶(hù),此外,我們還未能看到許多令人鼓舞的案例。如果身處云中,那么你很可能更想嘗試NoSQL解決方案,并希望以這種方法調(diào)整規(guī)模和支付費(fèi)用,而傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)則會(huì)顯得無(wú)能為力。
這又推動(dòng)了NoSQL數(shù)據(jù)庫(kù)托管機(jī)制。Rackspace公司正在研究提供Cassandra,SimpleDB也同樣在努力中。業(yè)界正在努力推動(dòng) Hadoop以及其他類(lèi)型適用于云計(jì)算的大型數(shù)據(jù)分析應(yīng)用。Amazon提供了一個(gè)相當(dāng)成熟的Hadoop實(shí)現(xiàn),你可以按運(yùn)行小時(shí)付費(fèi),可在打開(kāi)成千上萬(wàn)節(jié)點(diǎn)完成短期處理之后再次全部關(guān)閉。而如果你在自有集群中進(jìn)行這樣的操作,效率是非常低的,但是如果你希望以極具成本效益的方法來(lái)處理大量數(shù)據(jù)時(shí),這又不失為一個(gè)好的解決方案。目前,已有多個(gè)成功的公司實(shí)施案例。
問(wèn):那么對(duì)于期待廉價(jià)數(shù)據(jù)處理的企業(yè)來(lái)說(shuō),這應(yīng)當(dāng)是一個(gè)最佳的數(shù)據(jù)處理方案?
Guy Harrison:當(dāng)然,問(wèn)題在于數(shù)據(jù)如何接觸到云計(jì)算。如果你有TB或PB級(jí)別的數(shù)據(jù),那么數(shù)據(jù)進(jìn)入云中的成本和時(shí)間都是非常驚人的。Amazon宣稱(chēng)的“你給我們一個(gè)硬盤(pán)驅(qū)動(dòng)器,我們來(lái)安裝”的解決方案則顯得相當(dāng)笨拙。
此外,對(duì)于某些企業(yè)來(lái)說(shuō),數(shù)據(jù)外遷還可能存在技術(shù)問(wèn)題,事實(shí)上將數(shù)據(jù)置于外部的數(shù)據(jù)中心往往會(huì)引發(fā)所有權(quán)等各種各樣的問(wèn)題,這樣的做法可能是違法的。在許多情況下,公司必須按照法律或公司政策而放棄這樣的方案。從我個(gè)人來(lái)看,我信任Amazon,但是我并不確定我是否愿意拿我的業(yè)務(wù)去打賭,他們是否能夠保護(hù)數(shù)據(jù),不會(huì)丟失等等。
問(wèn):展望未來(lái),NoSQL是否會(huì)取代關(guān)系型數(shù)據(jù)庫(kù)?
Guy Harrison:我當(dāng)然不認(rèn)為關(guān)系型數(shù)據(jù)庫(kù)會(huì)退出市場(chǎng),它仍然將占據(jù)主導(dǎo)地位。但是關(guān)系型數(shù)據(jù)庫(kù)處理所有的數(shù)據(jù)面臨的限制是它的薄弱之處。但是,我們寄希望于新型數(shù)據(jù)庫(kù),除少數(shù)幾個(gè)非常特殊地點(diǎn)外我們幾乎沒(méi)有現(xiàn)實(shí)世界的范例。
你已經(jīng)擁有了用于Twitter和Facebook的Cassandra,但是它們是世界上最大網(wǎng)站之一,并不能夠代表企業(yè)客戶(hù),或代表一般網(wǎng)站。關(guān)系型數(shù)據(jù)庫(kù)提供了這么多的功能,有這么多知道如何使用的專(zhuān)業(yè)人士,它還是如此的可靠和安全,因此它可能將是95%數(shù)據(jù)處理需求的最佳選擇。盡管如此,專(zhuān)業(yè)的 NoSQL數(shù)據(jù)庫(kù)還是有可能成為最合適的選擇。
作者簡(jiǎn)介:Guy Harrison是Quest軟件公司的研發(fā)董事,他在數(shù)據(jù)庫(kù)設(shè)計(jì)、開(kāi)發(fā)、管理和優(yōu)化方面擁有者20年的工作經(jīng)驗(yàn)。Guy是一位Oracle ACE,是《Oracle性能生存指南》(Prentice Hall出版社,2009)和《MySQL存儲(chǔ)過(guò)程編程》(O’Reilly和Steven Feuerstein)以及其他數(shù)據(jù)庫(kù)技術(shù)書(shū)籍、文章、演講的作者。Guy是Quest公司Spotlight系列產(chǎn)品的架構(gòu)師,并領(lǐng)導(dǎo)開(kāi)發(fā)了Quest 公司的云數(shù)據(jù)庫(kù)產(chǎn)品Toad。
【編輯推薦】