欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

多年的沉寂后,SQL正在復(fù)出

原文: https://www.enmotech.com/web/detail/1/861/1.html 

新安ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書(shū)未來(lái)市場(chǎng)廣闊!成為創(chuàng)新互聯(lián)的ssl證書(shū)銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18980820575(備注:SSL證書(shū)合作)期待與您的合作!

導(dǎo)讀:經(jīng)過(guò)多年的沉寂之后,今天的SQL正在復(fù)出。緣由如何?這對(duì)數(shù)據(jù)社區(qū)有什么影響?看看本文的分析。以下為譯文。

自從可以利用計(jì)算機(jī)做事以來(lái),我們一直在收集的數(shù)據(jù)以指數(shù)級(jí)的速度在增長(zhǎng),因此對(duì)于數(shù)據(jù)存儲(chǔ)、處理和分析技術(shù)的要求也越來(lái)越高。在過(guò)去的十年里,由于SQL無(wú)法滿足這些要求,軟件開(kāi)發(fā)人員就拋棄了它,NOSQL也就因此而漸漸發(fā)展起來(lái):MapReduce,Bigtable,Cassandra,MongoDB等。

然而,如今SQL正在重新復(fù)出。云端的主要供應(yīng)商們現(xiàn)在都提供了廣受大眾歡迎的托管關(guān)系型數(shù)據(jù)庫(kù)服務(wù):例如Amazon RDS,谷歌Cloud SQL,Azure的PostgreSQL數(shù)據(jù)庫(kù)(Azure將于今年發(fā)布)。用亞馬遜自己的話來(lái)說(shuō)就是Aurora數(shù)據(jù)庫(kù)結(jié)合了PostgreSQL和MySQL數(shù)據(jù)庫(kù),因此該產(chǎn)品一直是“AWS歷史上增長(zhǎng)最快的服務(wù)”。在Hadoop和Spark之上的SQL接口繼續(xù)蓬勃發(fā)展。就在上個(gè)月,Kafka推出了SQL支持。

在這篇文章中,我們將研究SQL現(xiàn)在為什么會(huì)復(fù)出的原因,以及這對(duì)未來(lái)的數(shù)據(jù)社區(qū)工程和分析意味著什么。


SQL為何卷土重來(lái)?


要理解SQL為何會(huì)卷土重來(lái),先從為什么設(shè)計(jì)SQL開(kāi)始。

我們的故事始于20世紀(jì)70年代早期的IBM研究,那時(shí)關(guān)系型數(shù)據(jù)庫(kù)就誕生了。當(dāng)時(shí)的查詢語(yǔ)言依賴于復(fù)雜的數(shù)學(xué)邏輯和符號(hào)。Donald Chamberlin和Raymond Boyce兩個(gè)人剛剛完成哲學(xué)博士學(xué)位,對(duì)關(guān)系型數(shù)據(jù)模型印象深刻,但是發(fā)現(xiàn)查詢語(yǔ)言將成為其發(fā)展的一個(gè)主要瓶頸。于是他們便開(kāi)始設(shè)計(jì)一種新的查詢語(yǔ)言(用他們自己的話說(shuō)):“讓那些沒(méi)有接受過(guò)數(shù)學(xué)和計(jì)算機(jī)編程方面正規(guī)訓(xùn)練的用戶更容易使用”。

多年的沉寂后,SQL正在復(fù)出

兩個(gè)查詢語(yǔ)言的比較

仔細(xì)想想這件事。在互聯(lián)網(wǎng)出現(xiàn)之前,在個(gè)人電腦出現(xiàn)之前,當(dāng)編程語(yǔ)言C首次被引入世界時(shí),兩位年輕的計(jì)算機(jī)科學(xué)家意識(shí)到,“計(jì)算機(jī)行業(yè)的成功很大程度上依賴于培養(yǎng)一種除了訓(xùn)練有素的計(jì)算機(jī)專家以外的用戶。”他們想要的是一種像英語(yǔ)一樣易于閱讀的查詢語(yǔ)言,這也將包括數(shù)據(jù)庫(kù)管理和操作。

其結(jié)果就是在1974年首次將SQL引入世界。在接下來(lái)的幾十年里,SQL將被證明是非常受歡迎的。隨著諸如System R、Ingres、DB2、Oracle、SQL Server、PostgreSQL、MySQL(等等)關(guān)系型數(shù)據(jù)庫(kù)接管了軟件行業(yè),SQL也成為了與數(shù)據(jù)庫(kù)交互的卓越語(yǔ)言,成為了一個(gè)日益擁擠、競(jìng)爭(zhēng)激烈的生態(tài)系統(tǒng)的通用語(yǔ)言。

(遺憾的是,Raymond Boyce從來(lái)沒(méi)有機(jī)會(huì)見(jiàn)證SQL的成功。1個(gè)月后他便死于腦動(dòng)脈瘤,只做了一個(gè)最早的SQL演講,當(dāng)時(shí)他只有26歲,留下了一個(gè)妻子和一個(gè)年輕的女兒。)

有一段時(shí)間,似乎SQL成功地完成了它的任務(wù),但后來(lái)互聯(lián)網(wǎng)出現(xiàn)了。


NoSQL的反擊


在Chamberlin和Boyce都在開(kāi)發(fā)SQL的同時(shí),令他們沒(méi)有想到的是在加州的第二組工程師正在研究另一個(gè)正在萌芽的項(xiàng)目,該項(xiàng)目后來(lái)會(huì)廣泛擴(kuò)散并威脅到SQL的存在。這個(gè)項(xiàng)目就是ARPANET,1969年10月29日,它誕生了。

ARPANET的一些創(chuàng)造者,最終演變成今天的互聯(lián)網(wǎng)

SQL一直發(fā)展的都很好,但是直到1989年,另一個(gè)工程師出現(xiàn)并發(fā)明了萬(wàn)維網(wǎng)。

像那些茂密的野草一樣,互聯(lián)網(wǎng)和網(wǎng)絡(luò)蓬勃發(fā)展,極大地?cái)_亂了我們的世界,但對(duì)于數(shù)據(jù)社區(qū)來(lái)說(shuō),它還造成了一個(gè)特別的麻煩:跟以前相比,新的數(shù)據(jù)源以更高的數(shù)量和速度生成數(shù)據(jù)。

隨著互聯(lián)網(wǎng)的不斷發(fā)展,軟件社區(qū)發(fā)現(xiàn),當(dāng)時(shí)的關(guān)系型數(shù)據(jù)庫(kù)無(wú)法處理這一新的負(fù)載。因此出現(xiàn)了一陣騷動(dòng)的力量,就好像一百萬(wàn)個(gè)數(shù)據(jù)庫(kù)突然過(guò)載了。

然后,兩個(gè)新的互聯(lián)網(wǎng)巨人取得了突破,并開(kāi)發(fā)了他們自己的非關(guān)系型分布式系統(tǒng)來(lái)幫助解決這一新的數(shù)據(jù)沖擊:由谷歌發(fā)布的MapReduce和Bigtable,以及亞馬遜發(fā)布的 Dynamo。這些開(kāi)創(chuàng)性的論文導(dǎo)致出現(xiàn)了更多的非關(guān)系數(shù)據(jù)庫(kù),包括Hadoop,Cassandra和MongoDB。因?yàn)檫@些新系統(tǒng)基本上都是從零開(kāi)始編寫(xiě)的,所以它們也沒(méi)有使用SQL,導(dǎo)致了NoSQL運(yùn)動(dòng)的興起。

開(kāi)發(fā)者社區(qū)的軟件工程師們也接受了NoSQL,而且跟SQL當(dāng)時(shí)的出現(xiàn)相比,接受的群眾范圍更廣了。這個(gè)原因很容易理解:NoSQL是現(xiàn)在流行的;它承諾了規(guī)模和權(quán)力;這似乎是項(xiàng)目通往成功的捷徑。但后來(lái)出現(xiàn)了問(wèn)題。

典型的被NoSQL誘惑的軟件開(kāi)發(fā)人員。不要學(xué)這家伙。

開(kāi)發(fā)人員很快發(fā)現(xiàn),沒(méi)有SQL實(shí)際上是非常有限的。。每個(gè)NoSql數(shù)據(jù)庫(kù)都提供了自己獨(dú)特的查詢語(yǔ)言,這意味著:學(xué)習(xí)更多的語(yǔ)言(并在同事之間傳播知識(shí));增加了將數(shù)據(jù)庫(kù)連接到應(yīng)用程序的難度,導(dǎo)致代碼之間有很強(qiáng)的耦合性;缺乏第三方生態(tài)系統(tǒng),需要公司開(kāi)發(fā)自己的操作和可視化工具。

這些NoSQL語(yǔ)言是新的,但也沒(méi)有完全開(kāi)發(fā)出來(lái)。例如,關(guān)系型數(shù)據(jù)庫(kù)已經(jīng)運(yùn)行很多年了,像為SQL添加必要的特性(例如JOIN)這些工作早都已經(jīng)完成了;NoSQL語(yǔ)言的不成熟意味著在應(yīng)用程序級(jí)別就會(huì)有更多的復(fù)雜性。缺乏JOIN也導(dǎo)致了反規(guī)格化,從而又導(dǎo)致數(shù)據(jù)膨脹和僵化。

一些NoSQL數(shù)據(jù)庫(kù)添加了自己的“類sql”查詢語(yǔ)言,比如Cassandra的CQL。但這常常會(huì)使問(wèn)題變得更糟。如果使用跟別的東西完全一樣的界面,如果越常見(jiàn),實(shí)際上會(huì)導(dǎo)致心理產(chǎn)生更多的疑問(wèn):工程師壓根就不知道支持什么,不支持什么。

類sql的查詢語(yǔ)言就像《星球大戰(zhàn)》假日特別節(jié)目。接受不模仿。

(而且總是避免《星球大戰(zhàn)》的特別節(jié)目)

社區(qū)中的一些人在早期就看到了NoSQL的問(wèn)題(例如德維特和斯通布雷克在2008年就發(fā)現(xiàn)了)。隨著時(shí)間的推移,通過(guò)使用過(guò)程中個(gè)人經(jīng)驗(yàn)的辛苦積累,越來(lái)越多的軟件開(kāi)發(fā)人員也同意了這一點(diǎn)。


第三章:SQL的回歸


最初被黑暗勢(shì)力所誘惑的軟件社區(qū)開(kāi)始看到了光明,SQL也上演了英雄回歸的一幕。

首先是Hadoop上的SQL接口(Spark之后也是),導(dǎo)致該行業(yè)興起了NoSQL,NoSQL表示“不只是SQL”(Not Only SQL)。

緊接著NewSQL興起了:完全接納了SQL的新的可擴(kuò)展數(shù)據(jù)庫(kù)。來(lái)自于麻省理工學(xué)院(MIT)和布朗大學(xué)(Brown)研究人員的H-Store(2008年出版)是最早的擴(kuò)展OLTP數(shù)據(jù)庫(kù)之一。谷歌再次引領(lǐng)了風(fēng)向標(biāo),根據(jù)他們的Spanner 論文(出版于2012年)(其作者包括原始的MapReduce作者)開(kāi)創(chuàng)了地緣重復(fù)的SQL界面的數(shù)據(jù)庫(kù),其次再是CockroachDB(2014)這樣的其他先驅(qū)者。

與此同時(shí),PostgreSQL社區(qū)開(kāi)始復(fù)蘇,添加了一些關(guān)鍵的改進(jìn),比如JSON數(shù)據(jù)類型(2012),以及PostgreSQL 10中的新特性的potpourri:對(duì)分區(qū)和復(fù)制更好的本地支持,支持對(duì)JSON的全文搜索,以及其它更多的特性(定于今年晚些時(shí)候發(fā)布的版本)。其他如CitusDB(2016)以及其他的公司(今年發(fā)布的TimescaleDB)找到了新方法從而針對(duì)特定數(shù)據(jù)工作負(fù)載的擴(kuò)展PostgreSQL。

事實(shí)上,我們開(kāi)發(fā)TimescaleDB的過(guò)程與這個(gè)行業(yè)的發(fā)展軌跡是密切相關(guān)。早期的TimescaleDB內(nèi)部版本使用了我們自己的類sql查詢語(yǔ)言“ioQL”。是的,我們也沒(méi)能抵擋住黑暗一面的誘惑:我們感覺(jué)能夠構(gòu)建自己的查詢語(yǔ)言應(yīng)該會(huì)非常強(qiáng)大。然而,盡管這似乎是一條簡(jiǎn)單的道路,但我們很快意識(shí)到其實(shí)需要做更多的工作。我們還發(fā)現(xiàn)自己需要不斷地去查找合適的語(yǔ)法,去查詢那些已經(jīng)可以用SQL進(jìn)行查詢的內(nèi)容。

有一天,我們意識(shí)到構(gòu)建自己的查詢語(yǔ)言毫無(wú)意義。最關(guān)鍵的還是要接受SQL。這是我們做出的最好的設(shè)計(jì)決定之一。頓時(shí),一個(gè)全新的世界出現(xiàn)了。現(xiàn)在盡管我們的數(shù)據(jù)庫(kù)才問(wèn)世5個(gè)月,但是用戶卻可以在生產(chǎn)環(huán)境上使用我們的數(shù)據(jù)庫(kù),還有很多其他的美好事物:可視化工具(Tableau),與常見(jiàn)的ORM的連接器,各種工具和備份選項(xiàng),豐富的在線教程和語(yǔ)法解釋等等。

信谷歌,得永生

谷歌已經(jīng)在數(shù)據(jù)工程和基礎(chǔ)架構(gòu)領(lǐng)域領(lǐng)先了十多年了。我們應(yīng)該密切關(guān)注他們正在做的事情。

看看谷歌的第二大Spanner論文,就在四個(gè)月前發(fā)布的(Spanner:成為一個(gè)SQL系統(tǒng),2017年5月),你會(huì)發(fā)現(xiàn)它支持我們的發(fā)現(xiàn)成果。

例如,谷歌開(kāi)始的時(shí)候是在Bigtable上面構(gòu)建,但后來(lái)發(fā)現(xiàn)不用SQL會(huì)造成很多問(wèn)題(強(qiáng)調(diào)了我們下面的所有引用):

雖然這些系統(tǒng)提供了數(shù)據(jù)庫(kù)系統(tǒng)的某些優(yōu)點(diǎn),但它們?nèi)鄙僭S多應(yīng)用程序開(kāi)發(fā)人員經(jīng)常依賴的傳統(tǒng)數(shù)據(jù)庫(kù)特性。舉一個(gè)關(guān)鍵的例子就是一個(gè)健壯的查詢語(yǔ)言,這意味著開(kāi)發(fā)人員必須編寫(xiě)復(fù)雜的代碼來(lái)處理和聚合應(yīng)用程序中的數(shù)據(jù)。因此,我們決定將Spanner變成一個(gè)完整的SQL系統(tǒng),查詢執(zhí)行與Spanner的其他架構(gòu)特性緊密集成(例如強(qiáng)一致性和全局復(fù)制)。

在論文的后面,他們進(jìn)一步抓住了從NoSQL過(guò)渡到SQL的基本原理:

Spanner的原始API提供了對(duì)單個(gè)和交叉表的點(diǎn)查找和范圍掃描的NoSQL方法。雖然NoSQL方法提供了一個(gè)簡(jiǎn)單的啟動(dòng)扳手的方法,并且在簡(jiǎn)單的檢索場(chǎng)景中繼續(xù)有用,但是SQL在表達(dá)更復(fù)雜的數(shù)據(jù)訪問(wèn)模式和將計(jì)算推到數(shù)據(jù)上提供了重要的附加價(jià)值。
本文還描述了SQL的采用是如何在扳手上不停止的,但實(shí)際上擴(kuò)展到了谷歌的其余部分,這里的多個(gè)系統(tǒng)現(xiàn)在共享一個(gè)通用的SQL方言:

扳手的SQL引擎共享一個(gè)共同的SQL方言,稱為“標(biāo)準(zhǔn)SQL”,與其他幾個(gè)系統(tǒng)在谷歌上鉆包括內(nèi)部系統(tǒng)如F1和小孔(等)和外部系統(tǒng)如BigQuery…
對(duì)于谷歌的用戶來(lái)說(shuō),這降低了跨系統(tǒng)工作的障礙。一個(gè)開(kāi)發(fā)人員或數(shù)據(jù)分析人員編寫(xiě)了針對(duì)Spanner數(shù)據(jù)庫(kù)的SQL,可以將他們對(duì)該語(yǔ)言的理解轉(zhuǎn)移到Dremel,而不必?fù)?dān)心語(yǔ)法、空處理等細(xì)微的差異。
這種方法的成功不言自明。Spanner已經(jīng)成為主要谷歌系統(tǒng)的“真相之源”,包括AdWords和谷歌游戲,而“潛在的云客戶對(duì)使用SQL非常感興趣”。

考慮到谷歌首先幫助發(fā)起了NoSQL運(yùn)動(dòng),很值得注意的是,它現(xiàn)在正在接受SQL。(導(dǎo)致一些人最近想:“谷歌在10年的假時(shí)間里發(fā)送了大數(shù)據(jù)產(chǎn)業(yè)嗎?”)


SQL將變成細(xì)腰


在計(jì)算機(jī)網(wǎng)絡(luò)中,有一個(gè)概念叫做“細(xì)腰結(jié)構(gòu)”。

這個(gè)想法的出現(xiàn)解決了一個(gè)關(guān)鍵問(wèn)題:在任何給定的網(wǎng)絡(luò)設(shè)備上,想象一個(gè)堆棧,底層的硬件層和頂部的軟件層。中間可能會(huì)存在各種網(wǎng)絡(luò)硬件;同樣,也存在存在各種各樣的軟件和應(yīng)用程序。需要某種可以確保無(wú)論硬件發(fā)生了什么情況,軟件仍然可以連接到網(wǎng)絡(luò)的方法;同樣的也能確保無(wú)論軟件發(fā)生什么,網(wǎng)絡(luò)硬件都知道如何處理網(wǎng)絡(luò)請(qǐng)求。

多年的沉寂后,SQL正在復(fù)出

在網(wǎng)絡(luò)中,細(xì)腰的角色由互聯(lián)網(wǎng)協(xié)議(IP)扮演,它是為局域網(wǎng)設(shè)計(jì)的底層聯(lián)網(wǎng)協(xié)議和更高級(jí)別的應(yīng)用程序和傳輸協(xié)議的公共接口。(這是一個(gè)很好的解釋。)而且(在一個(gè)廣泛的簡(jiǎn)化中),這個(gè)公共接口成為了計(jì)算機(jī)的通用語(yǔ)言,使網(wǎng)絡(luò)能夠相互連接,設(shè)備可以通信,而這種“網(wǎng)絡(luò)網(wǎng)絡(luò)”可以發(fā)展成為今天豐富多樣的互聯(lián)網(wǎng)。

我們認(rèn)為SQL已經(jīng)成為數(shù)據(jù)分析的細(xì)腰。

我們生活的時(shí)代,數(shù)據(jù)正在成為“世界上最有價(jià)值的資源”(《經(jīng)濟(jì)學(xué)人》,2017年5月)。因此,我們看到了專業(yè)數(shù)據(jù)庫(kù)(OLAP、時(shí)間序列、文檔、圖表等),數(shù)據(jù)處理工具(Hadoop,Spark,Flink),數(shù)據(jù)總線(Kafka,RabbitMQ)等呈現(xiàn)出了寒武紀(jì)大爆發(fā)式的情形。我們也有了更多需要依靠這些數(shù)據(jù)基礎(chǔ)設(shè)施的應(yīng)用程序,無(wú)論是第三方數(shù)據(jù)可視化工具(Tableau,Grafana PowerBI,Superset),web框架(Rails,Django)或定制的數(shù)據(jù)驅(qū)動(dòng)的應(yīng)用程序。

多年的沉寂后,SQL正在復(fù)出

像網(wǎng)絡(luò)一樣,我們也有一個(gè)復(fù)雜的堆棧,底層的基礎(chǔ)設(shè)施和頂部的應(yīng)用程序。通常,我們最終會(huì)編寫(xiě)大量的膠水代碼來(lái)完成這個(gè)堆棧工作。但是膠水代碼可能很脆弱:需要精心的運(yùn)維。

我們需要的是一個(gè)公共接口,允許堆棧的各個(gè)部分彼此通信。理想情況下,這個(gè)行業(yè)已經(jīng)標(biāo)準(zhǔn)化了。它能讓不同層之間的通信阻礙能夠降到最小。

這就是SQL的力量。和IP一樣,SQL也是一個(gè)公共接口。

但SQL實(shí)際上比IP復(fù)雜得多。因?yàn)閿?shù)據(jù)還需要支持人類分析。而且,SQL創(chuàng)建者最初給它設(shè)定的目標(biāo)之一就是可讀性要高。

SQL是完美的嗎?不,但社區(qū)中的大多數(shù)人都已經(jīng)了解了這門(mén)語(yǔ)言。雖然已經(jīng)有工程師在開(kāi)發(fā)更自然的語(yǔ)言界面,但是這些系統(tǒng)最終會(huì)連接到哪里?還是SQL。

所以在堆棧的頂部還有一層。那一層就是我們?nèi)祟悺?/p>


SQL回歸


SQL回來(lái)了。不只是因?yàn)樵诮M裝NoSQL工具時(shí)編寫(xiě)膠水代碼的做法十分令人反感。不僅僅是因?yàn)閷W(xué)習(xí)各種各樣的新語(yǔ)言是困難的。也不只是因?yàn)闃?biāo)準(zhǔn)會(huì)帶來(lái)各種優(yōu)點(diǎn)。

也因?yàn)檫@個(gè)世界充滿了數(shù)據(jù)。它包圍著我們,束縛著我們。起初,我們依靠人類的感覺(jué)神經(jīng)系統(tǒng)來(lái)處理它。現(xiàn)在,軟件和硬件系統(tǒng)也變得足夠智能,可以幫助我們。隨著收集的數(shù)據(jù)越來(lái)越多,我們也可以更好地認(rèn)識(shí)這個(gè)世界,系統(tǒng)的復(fù)雜性、存儲(chǔ)、處理、分析以及對(duì)這些數(shù)據(jù)可視化的需求只會(huì)繼續(xù)增長(zhǎng)。

我們生活在一個(gè)脆弱的世界和一百萬(wàn)個(gè)不同界面的世界。或許我們可以繼續(xù)擁抱SQL。一切都將遵循能量守恒定律。

想了解更多關(guān)于數(shù)據(jù)庫(kù)、云技術(shù)的內(nèi)容嗎?

快來(lái)關(guān)注“數(shù)據(jù)和云"、"云和恩墨,"公眾號(hào)及"云和恩墨"官方網(wǎng)站,我們期待大家一同學(xué)習(xí)與進(jìn)步!

多年的沉寂后,SQL正在復(fù)出

數(shù)據(jù)和云小程序”DBASK“在線問(wèn)答,隨時(shí)解惑,歡迎了解和關(guān)注!

多年的沉寂后,SQL正在復(fù)出

分享題目:多年的沉寂后,SQL正在復(fù)出
本文地址:http://chinadenli.net/article36/ppcssg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄電子商務(wù)響應(yīng)式網(wǎng)站做網(wǎng)站網(wǎng)站設(shè)計(jì)公司網(wǎng)站維護(hù)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)