自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

為何NoSQL很重要,為何SQL依然重要?

譯文
新聞
關(guān)系模型的真正突破在于,將你對(duì)數(shù)據(jù)擁有的邏輯視圖、想怎樣處理數(shù)據(jù)與數(shù)據(jù)如何實(shí)際存儲(chǔ)起來的物理現(xiàn)狀分離開來。

【51CTO.com快譯】加州大學(xué)伯克利分校的教授、AMPLab聯(lián)席主任邁克爾·富蘭克林(Michael Franklin)的大部分職業(yè)生涯都在主攻數(shù)據(jù)庫技術(shù)領(lǐng)域。除研究和教授數(shù)據(jù)庫外,富蘭克林還開過一家名為Truviso的數(shù)據(jù)庫公司,后來在2012年被思科收購(gòu)。本文將分享他在這一領(lǐng)域的所思所想。

 

我們?cè)诜植际綌?shù)據(jù)庫和數(shù)據(jù)管理系統(tǒng)這條道路上走得有多遠(yuǎn)?

人們?cè)谡劦?ldquo;數(shù)據(jù)庫人員”時(shí),通常會(huì)在前面加上“壞脾氣、上年紀(jì)”的修飾語。的確,我們監(jiān)管的許多系統(tǒng)已運(yùn)行了二三十年。如果你看一下MapReduce ――在任何并行數(shù)據(jù)庫系統(tǒng)里,比如Teradata、IBM的并行版本、甲骨文的RAC,里面都有MapReduce引擎。那些技術(shù)成名已好多年。所以,壞脾氣、上年紀(jì)的數(shù)據(jù)庫人員確實(shí)在過去搞定了許多問題。

話雖如此,作為一名數(shù)據(jù)庫人員,我認(rèn)為情況確實(shí)已經(jīng)發(fā)生了根本性的變化。也許,早在上世紀(jì)80年代采用關(guān)系模型以來,發(fā)生的變化***。從許多方面來看,大數(shù)據(jù)生態(tài)系統(tǒng)其實(shí)與傳統(tǒng)數(shù)據(jù)管理根本不一樣。尤其是現(xiàn)在人們喜歡談?wù)摽蓴U(kuò)展性,因?yàn)榇髷?shù)據(jù)中的“大”意味著你有大量數(shù)據(jù)。

但同樣,橫向擴(kuò)展技術(shù)成名已有好長(zhǎng)一段時(shí)間了。由于一些不同的系統(tǒng)假設(shè)等因素,現(xiàn)在它們有點(diǎn)不一樣??赡苤坝腥苏J(rèn)為1000個(gè)節(jié)點(diǎn)的系統(tǒng)是個(gè)大系統(tǒng),而現(xiàn)在動(dòng)輒談?wù)?0000個(gè)節(jié)點(diǎn)。

[[176339]]

加州大學(xué)伯克利分校教授、AMPLab聯(lián)席主任邁克爾·富蘭克林(Michael Franklin)

在我看來,這新一代數(shù)據(jù)管理根本上的不同其實(shí)并不僅僅體現(xiàn)在可擴(kuò)展性上,其實(shí)還體現(xiàn)在靈活性上。如果你看一下先存儲(chǔ)數(shù)據(jù),然后為數(shù)據(jù)賦予結(jié)構(gòu)的功能――有時(shí)這名為讀取模式(schema on read)或需求模式(schema on need),這確實(shí)完全改變了行業(yè)規(guī)則。

如果你想搞數(shù)據(jù)管理項(xiàng)目,你會(huì)說“OK,***步,搞清楚想要存儲(chǔ)在系統(tǒng)里的每一個(gè)部分的數(shù)據(jù),它是什么樣子,它是如何組織的,然后它與你可能想要存儲(chǔ)到數(shù)據(jù)庫系統(tǒng)里的其他所有數(shù)據(jù)有何關(guān)系;第二步,收集一些實(shí)際的數(shù)據(jù);第三步是,試圖讓實(shí)際數(shù)據(jù)遵循你在***步中創(chuàng)建的這種模式。

但實(shí)際許多項(xiàng)目根本走不到這么遠(yuǎn)。早在人們***開始搞數(shù)據(jù)倉庫之類的東西時(shí),坊間到處是失敗案例:人們往這些系統(tǒng)投入了巨資,卻根本無法讓系統(tǒng)運(yùn)行起來。

在這個(gè)新環(huán)境下,你先存儲(chǔ)數(shù)據(jù),然后搞清楚如何處理數(shù)據(jù),情況完全變了?,F(xiàn)在,你可以收集想要收集的所有技術(shù)數(shù)據(jù);你在使用數(shù)據(jù)時(shí),要做一些額外的工作;你在性能方面可能會(huì)受到一點(diǎn)點(diǎn)影響,因?yàn)榇鎯?chǔ)沒有完全優(yōu)化;你也會(huì)有一些一致性問題需要了解。但總的來說,現(xiàn)在將你的數(shù)據(jù)管理系統(tǒng)組裝起來面臨的阻力已大大減小。

“關(guān)系模型的真正突破在于,將你對(duì)數(shù)據(jù)擁有的邏輯視圖、想怎樣處理數(shù)據(jù)與數(shù)據(jù)如何實(shí)際存儲(chǔ)起來的物理現(xiàn)狀分離開來。”

如果你看一下彈性計(jì)算,現(xiàn)在的云計(jì)算,Hadoop MapReduce中的一些機(jī)制,以及Spark之類的技術(shù),就會(huì)發(fā)現(xiàn)添加更多的資源、讓系統(tǒng)優(yōu)雅地利用那些資源這種功能在之前根本就沒有?,F(xiàn)在不僅僅能夠擴(kuò)展系統(tǒng),還能夠在需要時(shí)擴(kuò)展系統(tǒng),不再需要時(shí)又可以縮減系統(tǒng)。

這同樣完全減小了阻力。過去,你不得不為你預(yù)料的需要解決的***問題構(gòu)建數(shù)據(jù)中心或系統(tǒng),而現(xiàn)在再也沒必要這么做?,F(xiàn)在,可以為你認(rèn)為將來需要的東西構(gòu)建系統(tǒng),然后當(dāng)你需要增加資源時(shí),可以借助云資源或者你一開始就可以在云端做全部的工作。

這從根本上改變了現(xiàn)狀。

然后是這種功能:可以在SQL等查詢語言、R等統(tǒng)計(jì)處理語言和圖形處理語言之間輕松自如地切換――這些在Spark中可以輕松做到。這完全不一樣,所以你再也不必死守某種模式來處理數(shù)據(jù)。可以將數(shù)據(jù)存儲(chǔ)在系統(tǒng)中,然后可以使用圖形系統(tǒng)來處理很合理的任務(wù),使用關(guān)鍵查詢語言處理很合理的任務(wù),使用統(tǒng)計(jì)處理語言來處理很合理的任務(wù)。你還可以將它們混合搭配起來。

所以相比你可能交談的許多壞脾氣、上年紀(jì)的數(shù)據(jù)庫人員,我認(rèn)為,情況已發(fā)生了根本性的變化,它們不會(huì)變回來。我認(rèn)為,我們其實(shí)處于新時(shí)代的開端。當(dāng)然,就像關(guān)系數(shù)據(jù)庫革命的開端那樣,要做許多工作讓系統(tǒng)更穩(wěn)健,提高系統(tǒng)的性能,讓系統(tǒng)更易于使用。但是我們剛處于這趟旅程的開端。

 

眼看Hadoop和Spark流行起來,SQL還會(huì)是那些系統(tǒng)上備受關(guān)注的焦點(diǎn)嗎?

我認(rèn)為,盡管Hadoop變得更流行,人們?yōu)榇俗兊酶?dòng),但我和我的許多同事就在等待人們認(rèn)識(shí)到,直接編寫MapReduce程序確實(shí)很麻煩;有一些語言是專門為解決許多這些問題而開發(fā)的,尤其是SQL。SQL會(huì)在這些系統(tǒng)中扮演重大角色。

你可能會(huì)看到它出現(xiàn)在Hive這么久遠(yuǎn)的系統(tǒng)中。這正是數(shù)據(jù)庫系統(tǒng)在許多方面流行起來的原因。因?yàn)橹苯泳帉懗绦蛱y了。此外,你不想要這么做,因?yàn)樵S多人對(duì)于關(guān)系模型和SQL之類的系統(tǒng)沒有認(rèn)識(shí)到這點(diǎn):真正的突破并不在于語言。語言只是某種工件。

真正的突破在于你對(duì)數(shù)據(jù)擁有的邏輯視圖、想怎樣處理數(shù)據(jù)與數(shù)據(jù)如何實(shí)際存儲(chǔ)起來的物理現(xiàn)狀分離開來。而做入到關(guān)系模型中的是愿景,那就是數(shù)據(jù)依賴(data independence)。這讓你可以改變數(shù)據(jù)的布局,并改變數(shù)據(jù)、所使用的系統(tǒng)、所使用機(jī)器的組織,沒必要每當(dāng)有所改變就要重寫應(yīng)用程序。

同樣,它讓你可以編寫程序,不用過于擔(dān)心數(shù)據(jù)時(shí)時(shí)刻刻是如何組織的。這種靈活性對(duì)面向數(shù)據(jù)的系統(tǒng)來說絕對(duì)至關(guān)重要,因?yàn)橐坏┠闶占瘮?shù)據(jù),往往保留數(shù)據(jù),你編寫的應(yīng)用程序不會(huì)消失。你需要能夠擴(kuò)展數(shù)據(jù)的物理布局,需要能夠保護(hù)開發(fā)人員(盡管他們可能不想要受到保護(hù))不必操心那些種類的變化。

凡是處理過數(shù)據(jù)庫系統(tǒng)的人都會(huì)看到這一幕,因?yàn)镠adoop基本上打破了所有那些規(guī)則,而這個(gè)教訓(xùn)在幾十年之前就已汲取了。

我認(rèn)為NoSQL潮流言過其實(shí)了,但也許核心功能(比如需求模式)比名稱來得更重要?

NoSQL潮流表明有一系列重要的應(yīng)用不需要傳統(tǒng)數(shù)據(jù)庫竭力試圖做到的保證:一致性、并發(fā)性控制和恢復(fù),諸如此類的東西。你根本不會(huì)丟失一個(gè)數(shù)據(jù),你的數(shù)據(jù)庫中根本沒有一個(gè)數(shù)據(jù)不遵守模式的。落實(shí)所有這一切其實(shí)是為了保護(hù)數(shù)據(jù)庫遠(yuǎn)離程序員。

在許多應(yīng)用領(lǐng)域,那些東西其實(shí)不需要,從性能、可擴(kuò)展性和易用性方面來看,為那些保證付出的代價(jià)實(shí)在太高了。這其實(shí)是NoSQL潮流所要表明的,在一些重要的應(yīng)用場(chǎng)合,你不需要那些保證。如果擯棄那些保證,就能構(gòu)建一種極其靈活、極其易于使用的系統(tǒng)。

坦率說,要不是NoSQL潮流,我認(rèn)為傳統(tǒng)數(shù)據(jù)庫標(biāo)準(zhǔn)不會(huì)那樣發(fā)展。

 

對(duì)傳統(tǒng)數(shù)據(jù)庫廠商而言,未來形勢(shì)如何?那些軟件許可證仍有大量的生意

有許多應(yīng)用場(chǎng)合表明,傳統(tǒng)系統(tǒng)仍是非常好的解決方案。當(dāng)然是這種場(chǎng)合:需要它成為記錄系統(tǒng),絕不能丟失任何數(shù)據(jù),絕不能根據(jù)受到某種損壞的信息來做決定。那些問題不會(huì)消失。傳統(tǒng)廠商在這方面仍有一席之地。

至于在數(shù)據(jù)分析領(lǐng)域,傳統(tǒng)數(shù)據(jù)庫廠商的日子要難過一點(diǎn):一方面,這個(gè)世界已走開源道路,所以它們的傳統(tǒng)商業(yè)模式行不通,它們不得不重新考慮合適的商業(yè)模式應(yīng)該是怎樣。另一方面,你得轉(zhuǎn)變觀念;那些傳統(tǒng)老牌廠商能不能吸引足夠多的人才,這些人才擁有能夠在這些新領(lǐng)域下競(jìng)爭(zhēng)的新觀念,還需拭目以待。

“像大數(shù)據(jù)分析和科學(xué)計(jì)算等某些重要領(lǐng)域,開源絕對(duì)會(huì)是大勢(shì)所趨,因?yàn)槟憧梢宰尡姸嗟娜藛T處理一個(gè)問題。但是我并不確信開源適合一切。”

開源領(lǐng)域的優(yōu)點(diǎn)之一就是,系統(tǒng)可以迅速變化,你可以迅速發(fā)展、引入新功能。這也給需要某種穩(wěn)定性的人員帶來了一些挑戰(zhàn)。當(dāng)然,大數(shù)據(jù)分析對(duì)開源開發(fā)和開源系統(tǒng)來說就是“***典范”,一方面使用系統(tǒng)的人精通技術(shù),而且足夠自信,可以處理其中一些問題,比如要確保你擁有合適的版本;某一個(gè)底層部件/組件變化后,要改變系統(tǒng)的一部分。

你能想起過去十年流行起來,卻不是開源的許多數(shù)據(jù)庫嗎?我也許只能想起一個(gè)。

眼下,發(fā)展勢(shì)頭無疑對(duì)開源有利,但答案取決于商業(yè)模式。這可能會(huì)對(duì)開源模式***會(huì)不會(huì)取而代之有巨大的影響。因?yàn)樽罱K人們不得不獲得收入或支持這些系統(tǒng),以便確保它們很穩(wěn)健,很安全,它們能處理需要處理的一切任務(wù)。

不過,現(xiàn)在市場(chǎng)上有許多令人關(guān)注的針對(duì)開源的商業(yè)模式。而且軟件和商業(yè)模式也都會(huì)出現(xiàn)許多創(chuàng)新。

 

***的挑戰(zhàn)也許是讓使用優(yōu)秀免費(fèi)產(chǎn)品的用戶變成付費(fèi)客戶。

我過去處理工作的方式,以及我所在行當(dāng)?shù)乃腥诉^去處理工作的方式是,我們會(huì)搗鼓出一種新算法,一種新的連接方法,一種新的索引,一種新的任何技術(shù),之后會(huì)做一些原型工作,證明它是個(gè)好想法。然后,我們會(huì)跑到甲骨文、IBM和微軟這些公司,告訴對(duì)方我們搞出了這種新玩意。那些人不是忽視它,就是把它做入到產(chǎn)品中,有時(shí)候你根本不知道。

但是我們總是離實(shí)際用戶相差一大步。開源完全克服了這道障礙。現(xiàn)在,我們實(shí)驗(yàn)室的一個(gè)學(xué)生有好想法后,可以編寫代碼,要是看起來不賴,他們就進(jìn)一步完善,那樣別人就能明白它的用途并使用它,***他們把它放在GitHub上,突然之間,它切實(shí)應(yīng)用于現(xiàn)實(shí)世界。

我們其實(shí)最近遇到過這種情況:實(shí)驗(yàn)室的一個(gè)學(xué)生Evan Sparks在我們的研究交流會(huì)上作了發(fā)言,贊助商也參與了交流會(huì)。許多學(xué)生踴躍發(fā)言,說“這是我在開發(fā)的某個(gè)組件。它的功能是這樣的。”***,他們會(huì)說“這個(gè)月底這個(gè)產(chǎn)品會(huì)推出測(cè)試版,或者我們上周對(duì)這個(gè)產(chǎn)品搞了一個(gè)測(cè)試版。”

Evan起身談?wù)摿薑eystone ML,這是我們的機(jī)器學(xué)習(xí)管道系統(tǒng)。他說“馬上就會(huì)推出系統(tǒng)的測(cè)試版。”他當(dāng)著200人的面打開了他的GitHub頁面,從私有代碼庫一下子切換到公共代碼庫。這就為真正的好想法消除了阻力,并證明它切實(shí)可行,然后構(gòu)建一個(gè)工件來證明切實(shí)可行,真正讓人們開始使用它,試用它,可能采用它。那種阻力完全消失了。

作為一名研究人員和學(xué)術(shù)人員,讓我感到興奮的是,現(xiàn)實(shí)世界中的人們?cè)敢鈬L試、使用、采用和部署開源軟件,因?yàn)殚_源軟件給我們帶來了直接的影響力。你可以透過AMPLab帶來的影響看到這一幕。

原文標(biāo)題:Database expert on why NoSQL mattered — and SQL still matters ,作者:Derrick Harris

【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文譯者和出處為51CTO.com】

責(zé)任編輯:wangxuze 來源: 51cto.com
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)