淘寶開源的TDDL和cobar的結(jié)合,放到了阿里云上就是DRDS,是商品,服務(wù),可以購(gòu)買使用的??梢栽诎⒗镌乒倬W(wǎng)上注冊(cè)免費(fèi)試用。
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對(duì)這個(gè)行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡(jiǎn)單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:主機(jī)域名、雅安服務(wù)器托管、營(yíng)銷軟件、網(wǎng)站建設(shè)、郴州網(wǎng)站維護(hù)、網(wǎng)站推廣。
=====================================================
隨著互聯(lián)網(wǎng)時(shí)代的到來,計(jì)算機(jī)要管理的數(shù)據(jù)量呈指數(shù)級(jí)別地飛速上漲,而我們卻完全無法對(duì)用戶數(shù)做出準(zhǔn)確預(yù)估。我們的系統(tǒng)所需要支持的用戶數(shù),很可能在短短的一個(gè)月內(nèi)突然爆發(fā)式地增長(zhǎng)幾千倍,數(shù)據(jù)也很可能快速地從原來的幾百GB飛速上漲到了幾百個(gè)TB。如果在這爆發(fā)的關(guān)鍵時(shí)刻,系統(tǒng)不穩(wěn)定或無法訪問,那么對(duì)于業(yè)務(wù)將會(huì)是毀滅性的打擊。
伴隨著這種對(duì)于系統(tǒng)性能、成本以及擴(kuò)展性的新需要,以HBase、MongoDB為代表的NoSQL數(shù)據(jù)庫(kù)和以阿里DRDS、VoltDB、ScaleBase為代表的分布式NewSQL數(shù)據(jù)庫(kù)如雨后春筍般不斷涌現(xiàn)出來。
本文將會(huì)介紹阿里DRDS的技術(shù)理念、發(fā)展歷程、技術(shù)特性等內(nèi)容。
DRDS設(shè)計(jì)理念
從20世紀(jì)70年代關(guān)系數(shù)據(jù)庫(kù)創(chuàng)立開始,其實(shí)大家在數(shù)據(jù)庫(kù)上的追求就從未發(fā)生過變化:更快的存取數(shù)據(jù),可以按需擴(kuò)縮以承載更大的訪問量和更大的數(shù)據(jù)量,開發(fā)容易,硬件成本低,我們可以把這叫做數(shù)據(jù)庫(kù)領(lǐng)域的圣杯。
為了支撐更大的訪問量和數(shù)據(jù)量,我們必然需要分布式數(shù)據(jù)庫(kù)系統(tǒng),然而分布式系統(tǒng)又必然會(huì)面對(duì)強(qiáng)一致性所帶來的延遲提高的問題,因?yàn)榫W(wǎng)絡(luò)通信本身比單機(jī)內(nèi)通信代價(jià)高很多,這種通信的代價(jià)就會(huì)直接增加系統(tǒng)單次提交的延遲。延遲提高會(huì)導(dǎo)致數(shù)據(jù)庫(kù)鎖持有時(shí)間變長(zhǎng),使得高沖突條件下分布式事務(wù)的性能不升反降(這個(gè)具體可以了解一下Amdahl定律),甚至性能距離單機(jī)數(shù)據(jù)庫(kù)都還有明顯的差距。
從上面的說明,我們可以發(fā)現(xiàn),問題的關(guān)鍵并不是分布式事務(wù)做不出來,而是做出來了卻因?yàn)樾阅芴疃鴽]有什么卵用。數(shù)據(jù)庫(kù)領(lǐng)域的高手們努力了40年,但至今仍然沒有人能夠很好地解決這個(gè)問題,Google Spanner的開發(fā)負(fù)責(zé)人就經(jīng)常在他的Blog上談?wù)撗舆t的問題,相信也是飽受這個(gè)問題的困擾。
面對(duì)這個(gè)難題,傳統(tǒng)的關(guān)系數(shù)據(jù)庫(kù)選擇了放棄分布式的方案,因?yàn)樵?0世紀(jì)70~80年代,我們的數(shù)據(jù)庫(kù)主要被用來處理企業(yè)內(nèi)的各類數(shù)據(jù),面對(duì)的用戶不過幾千人,而數(shù)據(jù)量最多也就是TB級(jí)別。用單臺(tái)機(jī)器來處理事務(wù),用個(gè)磁盤陣列處理一下磁盤容量不夠的問題,基本上就能解決一切問題了。
然而,信息化和互聯(lián)網(wǎng)的浪潮改變了這一切,我們突然發(fā)現(xiàn),我們服務(wù)的對(duì)象發(fā)生了根本性變化,從原來的幾千人,變成了現(xiàn)在的幾億人,數(shù)據(jù)量也從TB級(jí)別到了PB級(jí)別甚至更多。存在單點(diǎn)的單機(jī)系統(tǒng)無論如何努力,都會(huì)面對(duì)系統(tǒng)處理能力的天花板。原來的這條路,看起來是走不下去了,我們必須想辦法換一條路來走。
可是,分布式數(shù)據(jù)庫(kù)所面對(duì)的強(qiáng)一致性難題卻像一座高山,人們努力了無數(shù)個(gè)日日夜夜,但能翻越這座山的日子看來仍然遙遙無期。
于是,有一群人認(rèn)為,強(qiáng)一致性這件事看來不怎么靠譜,那徹底繞開這個(gè)問題是不是個(gè)更好的選擇?他們發(fā)現(xiàn)確實(shí)有那么一些場(chǎng)景是不需要強(qiáng)一致事務(wù)的,甚至連SQL都可以不要,最典型的就是日志流水的記錄與分析這類場(chǎng)景。而去掉了事務(wù)和SQL,接口簡(jiǎn)單了,性能就更容易得到提升,擴(kuò)展性也更容易實(shí)現(xiàn),這就是NoSQL系統(tǒng)的起源。
雖然NoSQL解決了性能和擴(kuò)展性問題,但這種繞開問題的方法給用戶帶來了很多困擾,系統(tǒng)的開發(fā)成本也大大提升。這時(shí)候就有另外一群人,他們覺得用戶需要SQL,覺得用戶也需要事務(wù),問題的關(guān)鍵在于我們要努力地往圣杯的方向不斷前進(jìn)。在保持系統(tǒng)的擴(kuò)展性和性能的前提下,付出盡可能小的代價(jià)來滿足業(yè)務(wù)對(duì)數(shù)據(jù)庫(kù)的需要。這就是NewSQL這個(gè)理念的由來。
DRDS也是一個(gè)NewSQL的系統(tǒng),它與ScaleBase、VoltDB等系統(tǒng)類似,都希望能夠找到一條既能保持系統(tǒng)的高擴(kuò)展性和高性能,又能盡可能保持傳統(tǒng)數(shù)據(jù)庫(kù)的ACID事務(wù)和SQL特性的分布式數(shù)據(jù)庫(kù)系統(tǒng)。
DRDS發(fā)展歷程
在一開始,TDDL的主要功能就是做數(shù)據(jù)庫(kù)切分,一個(gè)或一組SQL請(qǐng)求提交到TDDL,TDDL進(jìn)行規(guī)則運(yùn)算后得知SQL應(yīng)該被分發(fā)到哪個(gè)機(jī)器,直接將SQL轉(zhuǎn)發(fā)到對(duì)應(yīng)機(jī)器即可(如圖1)。
圖1 TDDL數(shù)據(jù)庫(kù)切分
開始的時(shí)候,這種簡(jiǎn)單的路由策略能夠滿足用戶的需要,我們開始的那些應(yīng)用,就是通過這樣非常簡(jiǎn)單的方式完成了他所有的應(yīng)用請(qǐng)求。我們也認(rèn)為,這種方案簡(jiǎn)單可靠,已經(jīng)足夠好用了。
然而,當(dāng)我們服務(wù)的應(yīng)用從十幾個(gè)增長(zhǎng)到幾百個(gè)的時(shí)候,大量的中小應(yīng)用加入,大家紛紛表示,原來的方案限制太大,很多應(yīng)用其實(shí)只是希望做個(gè)讀寫分離,希望能有更好的SQL兼容性。
于是,我們做了第一次重大升級(jí),在這次升級(jí)里,我們提出了一個(gè)重要的概念就是三層架構(gòu),Matrix對(duì)應(yīng)數(shù)據(jù)庫(kù)切分場(chǎng)景,對(duì)SQL有一定限制,Group對(duì)應(yīng)讀寫分離和高可用場(chǎng)景,對(duì)SQL幾乎沒有限制。如圖2所示。
圖2 數(shù)據(jù)庫(kù)升級(jí)為三層架構(gòu)
這種做法立刻得到了大家的認(rèn)可,TDDL所提供的讀寫分離、分庫(kù)分表等核心功能,也成為了阿里集團(tuán)內(nèi)數(shù)據(jù)庫(kù)領(lǐng)域的標(biāo)配組件,在阿里的幾乎所有應(yīng)用上都有應(yīng)用。最為難得的是,這些功能從上線后,到現(xiàn)在已經(jīng)經(jīng)歷了多年雙11的嚴(yán)酷考驗(yàn),從未出現(xiàn)過嚴(yán)重故障(p0、p1級(jí)別故障屬于嚴(yán)重故障)。數(shù)據(jù)庫(kù)體系作為整個(gè)應(yīng)用系統(tǒng)的重中之重,能做到這件事,真是非常不容易。
隨著核心功能的穩(wěn)定,自2010年開始,我們集中全部精力開始關(guān)注TDDL后端運(yùn)維系統(tǒng)的完善與改進(jìn)性工作。在DBA團(tuán)隊(duì)的給力配合下,圍繞著TDDL,我們成功做到了在線數(shù)據(jù)動(dòng)態(tài)擴(kuò)縮、異步索引等關(guān)鍵特征,同時(shí)也比較成功地構(gòu)建了一整套分布式數(shù)據(jù)庫(kù)服務(wù)管控體系,用戶基本上可以完全自助地完成整套數(shù)據(jù)庫(kù)環(huán)境的搭建與初始化工作。
大概是2012年,我們?cè)诎⒗镌茍F(tuán)隊(duì)的支持下,開始嘗試將TDDL這套體系輸出到阿里云上,也有了個(gè)新的名字:阿里分布式數(shù)據(jù)庫(kù)服務(wù)(DRDS),希望能夠用我們的技術(shù)服務(wù)好更多的人。
不過當(dāng)我們滿懷自信地把自己的軟件拿到云上的時(shí)候,卻發(fā)現(xiàn)我們的軟件距離用戶的要求差距很大。在內(nèi)部因?yàn)橛蠨BA的同學(xué)們幫助進(jìn)行SQL review,所以SQL的復(fù)雜度都是可控的。然而到了云上,看了各種渠道提過來的兼容性需求,我們經(jīng)常是不自覺地發(fā)出這樣的感嘆:“?。吭瓉磉@種語法MySQL也是可以支持的?”
于是,我們又進(jìn)行了架構(gòu)升級(jí),這次是以兼容性為核心目標(biāo)的系統(tǒng)升級(jí)工作,希望能夠在分布式場(chǎng)景下支持各類復(fù)雜的SQL,同時(shí)也將阿里這么多年來在分布式事務(wù)上的積累都帶到了DRDS里面。
這次架構(gòu)升級(jí),我們的投入史無前例,用了三年多才將整個(gè)系統(tǒng)落地完成。我們先在內(nèi)部以我們自己的業(yè)務(wù)作為首批用戶上線,經(jīng)過了內(nèi)部幾百個(gè)應(yīng)用的嚴(yán)酷考驗(yàn)以后,我們才敢拿到云上,給到我們的最終用戶使用。
目前,我們正在將TDDL中更多的積累輸出到云上,同時(shí)也努力優(yōu)化我們的用戶界面。PS:其實(shí)用戶界面優(yōu)化對(duì)我們這種專注于高性能后端技術(shù)的團(tuán)隊(duì)來說,才是最大的技術(shù)挑戰(zhàn),連我也去學(xué)了AngularJS,參與了用戶UI編。
DRDS主要功能介紹
發(fā)展歷史看完了,下面就由我來介紹一下目前我們已經(jīng)輸出到云上的主要功能。
【分布式SQL執(zhí)行引擎】
分布式SQL引擎主要的目的,就是實(shí)現(xiàn)與單機(jī)數(shù)據(jù)庫(kù)SQL引擎的完全兼容。目前我們的SQL引擎能夠做到與MySQL的SQL引擎全兼容,包括各類join和各類復(fù)雜函數(shù)等。他主要包含SQL解析、優(yōu)化、執(zhí)行和合并四個(gè)流程,如圖3中綠色部分。
圖3 SQL引擎實(shí)現(xiàn)的主要流程
雖然SQL是兼容的,但是分布式SQL執(zhí)行算法與單機(jī)SQL的執(zhí)行算法卻完全不同,原因也很簡(jiǎn)單,網(wǎng)絡(luò)通信的延遲比單機(jī)內(nèi)通信的延遲大得多。舉個(gè)例子說明一下,我們有份文件要從一張紙A上謄寫到另外一張紙B上,單機(jī)系統(tǒng)就好比兩張紙都在同一個(gè)辦公室里,而分布式數(shù)據(jù)庫(kù)則就像是一張紙?jiān)诒本?,一張紙?jiān)诤贾荨?/p>
自然地,如果兩張紙?jiān)谕粋€(gè)辦公室,因?yàn)閭鬏斁嚯x近,逐行謄寫的效率是可以接受的。而如果距離是北京到杭州,用逐行謄寫的方式,就立刻顯得代價(jià)太高了,我們總不能看一行,就打個(gè)“飛的”去杭州寫下來吧。在這種情況下,還是把紙A上的信息拍個(gè)照片,【一整批的】帶到杭州去處理,明顯更簡(jiǎn)單一些。這就是分布式數(shù)據(jù)庫(kù)特別強(qiáng)調(diào)吞吐調(diào)優(yōu)的原因,只要是涉及到跨機(jī)的所有查詢,都必須盡可能的積攢一批后一起發(fā)送,以減少系統(tǒng)延遲提高帶來的不良影響。
【按需數(shù)據(jù)庫(kù)集群平滑擴(kuò)縮】
DRDS允許應(yīng)用按需將新的單機(jī)存儲(chǔ)加入或移出集群,DRDS則能夠保證應(yīng)用在遷移流程中實(shí)現(xiàn)不停機(jī)擴(kuò)容縮容。
圖4 DRDS按需進(jìn)行平滑擴(kuò)縮
在內(nèi)部的數(shù)據(jù)庫(kù)使用實(shí)踐中,這個(gè)功能的一個(gè)最重要應(yīng)用場(chǎng)景就是雙11了。在雙11之前,我們會(huì)將大批的機(jī)器加入到我們的數(shù)據(jù)庫(kù)集群中,抗過了雙11,這批機(jī)器就會(huì)下線。
當(dāng)DRDS來到云上,我們發(fā)現(xiàn)雙11其實(shí)不僅僅只影響阿里內(nèi)部的系統(tǒng)。在下游的各類電商輔助性系統(tǒng)其實(shí)也面對(duì)巨大壓力。在雙11前5天,網(wǎng)聚寶的熊總就找到我說,擔(dān)心撐不過雙11的流量,怕系統(tǒng)掛。于是我們就給他介紹了這個(gè)自動(dòng)擴(kuò)容的功能怎么用,他買了一個(gè)月的數(shù)據(jù)庫(kù),掛接在DRDS上。數(shù)據(jù)庫(kù)能力立刻翻倍,輕松抗過了雙11,也算是我印象比較深刻的一個(gè)案例了。
因?yàn)槲覀兺耆珶o法預(yù)測(cè)在什么時(shí)間點(diǎn)系統(tǒng)會(huì)有爆發(fā)性的增長(zhǎng),而如果在這時(shí)候系統(tǒng)因?yàn)榧夹g(shù)原因不能使用,就會(huì)給整個(gè)業(yè)務(wù)帶來毀滅性的影響,風(fēng)口一旦錯(cuò)過,就追悔莫及了。我想這就是云計(jì)算特別強(qiáng)調(diào)可擴(kuò)展能力的原因吧。
【小表廣播】
小表廣播也是我們?cè)诜植际綌?shù)據(jù)庫(kù)領(lǐng)域內(nèi)最常用的工具之一,他的核心目的其實(shí)都是一個(gè)——盡可能讓查詢只發(fā)生在單機(jī)。
讓我們用一個(gè)例子來說明,小表廣播的一般使用場(chǎng)景。
圖5 小表廣播場(chǎng)景
圖5中,如果我想知道買家id等于0的用戶在商城里面買了哪些商品,我們一般會(huì)先將這兩個(gè)表join起來,然后再用where平臺(tái)名=”商城” and buyerID = 0找到符合要求的數(shù)據(jù)。然而這種join的方式,會(huì)導(dǎo)致大量的針對(duì)左表的網(wǎng)絡(luò)I/O。如果要取出的數(shù)據(jù)量比較大,系統(tǒng)延遲會(huì)明顯上升。
這時(shí)候,為了提升性能,我們就必須要減少跨機(jī)join的網(wǎng)絡(luò)代價(jià)。我們比較推薦應(yīng)用做如下處理,將左表復(fù)制到右表的每一個(gè)庫(kù)上。這樣,join操作就由分布式j(luò)oin一下變回到本地join,系統(tǒng)的性能就有很大的提升了,如圖6所示。
圖6
【分布式事務(wù)套件】
在阿里巴巴的業(yè)務(wù)體系中存在非常多需要事務(wù)類的場(chǎng)景,下單減庫(kù)存,賬務(wù),都是事務(wù)場(chǎng)景最集中的部分。
而我們處理事務(wù)的方法卻和傳統(tǒng)應(yīng)用處理事務(wù)的方案不大一樣,我們非常強(qiáng)調(diào)事務(wù)的最終一致性和異步化。利用這種方式,能夠極大地降低分布式系統(tǒng)中鎖持有的時(shí)間,從而極大地提升系統(tǒng)性能。
圖7 DRDS分布式事務(wù)解決套件
這種處理機(jī)制,是我們分布式事務(wù)能夠以極低成本大量運(yùn)行的最核心法門。在DRDS平臺(tái)內(nèi),我們將這些方案產(chǎn)品化,為了DRDS的分布式事務(wù)解決套件。
利用他們,能夠讓你以比較低的成本,實(shí)現(xiàn)低延遲,高吞吐的分布式事務(wù)場(chǎng)景。
DRDS的未來
阿里分布式數(shù)據(jù)庫(kù)服務(wù)DRDS上線至今,大家對(duì)這款產(chǎn)品的熱情超出了我們的預(yù)期,短短半年內(nèi)已經(jīng)有幾千個(gè)申請(qǐng)。
盡管還在公測(cè)期,但是大家就已經(jīng)把關(guān)系到身家性命的寶貴在線數(shù)據(jù)業(yè)務(wù)放到了DRDS上,我能夠感受到這份沉甸甸的信賴,也不想辜負(fù)這份信賴。
經(jīng)過阿里內(nèi)部幾千個(gè)應(yīng)用的不斷歷練,DRDS已經(jīng)積累出一套強(qiáng)大的分布式SQL執(zhí)行引擎和和一整套分布式事務(wù)套件。
我也相信,這些積累能夠讓用戶在基本保持單機(jī)數(shù)據(jù)庫(kù)的使用習(xí)慣的前提下,享受到分布式數(shù)據(jù)庫(kù)高性能可擴(kuò)展的好處。
在平時(shí)的DRDS支持過程中,我面對(duì)最多的問題就是,DRDS能不能夠在不改變?nèi)魏卧袠I(yè)務(wù)邏輯和代碼的前提下,實(shí)現(xiàn)可自由伸縮和擴(kuò)展呢?十分可惜的是,關(guān)系數(shù)據(jù)庫(kù)發(fā)展至今,還沒有找到既能保留傳統(tǒng)數(shù)據(jù)庫(kù)一切特性,又能實(shí)現(xiàn)高性能可擴(kuò)展數(shù)據(jù)庫(kù)的方法。
然而,雖不能至,吾心向往之!我們會(huì)以“可擴(kuò)展,高性能”為產(chǎn)品核心,堅(jiān)定地走在追尋圣杯的路上,并堅(jiān)信最終我們一定能夠找尋到它神圣的所在。
作者簡(jiǎn)介:王晶昱,花名沈詢,阿里巴巴資深技術(shù)專家。目前主要負(fù)責(zé)阿里的分布式數(shù)據(jù)庫(kù)DRDS(TDDL)和阿里的分布式消息服務(wù)ONS(RocketMQ/Notify)兩個(gè)系統(tǒng)。
上層的是分布式數(shù)據(jù)庫(kù)分表分庫(kù)中間件,負(fù)責(zé)和上層應(yīng)用打交道,對(duì)應(yīng)用可表現(xiàn)為一個(gè)獨(dú)立的數(shù)據(jù)庫(kù),而屏蔽底層復(fù)雜的系統(tǒng)細(xì)節(jié)。分布式數(shù)據(jù)庫(kù)中間件除了基本的分表分庫(kù)功能,還可以豐富一下,比如講讀寫分離或者水平擴(kuò)容功能集成在一起,或者比如讀寫分離本身也可以作為一個(gè)獨(dú)立的中間件。(Cobar, MyCAT, TDDL, DRDS, DDB)
增量數(shù)據(jù)訂閱和消費(fèi),用戶對(duì)數(shù)據(jù)庫(kù)操作,比如DML, DCL, DDL等,這些操作會(huì)產(chǎn)生增量數(shù)據(jù),下層應(yīng)用可以通過監(jiān)測(cè)這些增量數(shù)據(jù)進(jìn)行相應(yīng)的處理。典型代表Canal,根據(jù)MySQL的binlog實(shí)現(xiàn)。也有針對(duì)Oracle(redolog)的增量數(shù)據(jù)訂閱與消費(fèi)的中間件。(Canal, Erosa)
數(shù)據(jù)庫(kù)同步中間件涉及數(shù)據(jù)庫(kù)之間的同步操作,可以實(shí)現(xiàn)跨(同)機(jī)房同步以及異地容災(zāi)備份、分流等功能??梢陨婕岸喾N數(shù)據(jù)庫(kù),處理之后的數(shù)據(jù)也可以以多種形式存儲(chǔ)。(Otter, JingoBus, DRC)
數(shù)據(jù)庫(kù)與數(shù)據(jù)庫(kù)之間會(huì)有數(shù)據(jù)遷移(同步)的動(dòng)作,同款數(shù)據(jù)同步原理比較簡(jiǎn)單,比如MySQL主備同步,只要在數(shù)據(jù)庫(kù)層進(jìn)行相應(yīng)的配置既可,但是跨數(shù)據(jù)庫(kù)同步就比較復(fù)雜了,比如Oracle-MySQL. 數(shù)據(jù)遷移一般包括三個(gè)步驟:全量復(fù)制,將原數(shù)據(jù)庫(kù)的數(shù)據(jù)全量遷移到新數(shù)據(jù)庫(kù),在這遷移的過程中也會(huì)有新的數(shù)據(jù)產(chǎn)生;增量同步,對(duì)新產(chǎn)生的數(shù)據(jù)進(jìn)行同步,并持續(xù)一段時(shí)間以保證數(shù)據(jù)同步;原庫(kù)停寫,切換新庫(kù)。將“跨數(shù)據(jù)庫(kù)”這個(gè)含義擴(kuò)大一下——“跨數(shù)據(jù)源”,比如HDFS, HBase, FTP等都可以相互同步。(yugong, DataX)
互聯(lián)網(wǎng)公司常用的基本集中在以下幾種,每種只舉一個(gè)比較常見或者應(yīng)用比較成功的例子吧。
1. In-Memory KV Store : Redis
in memory key-value store,同時(shí)提供了更加豐富的數(shù)據(jù)結(jié)構(gòu)和運(yùn)算的能力,成功用法是替代memcached,通過checkpoint和commit log提供了快速的宕機(jī)恢復(fù),同時(shí)支持replication提供讀可擴(kuò)展和高可用。
2. Disk-Based KV Store: Leveldb
真正基于磁盤的key-value storage, 模型單一簡(jiǎn)單,數(shù)據(jù)量不受限于內(nèi)存大小,數(shù)據(jù)落盤高可靠,Google的幾位大神出品的精品,LSM模型天然寫優(yōu)化,順序?qū)懕P的方式對(duì)于新硬件ssd再適合不過了,不足是僅提供了一個(gè)庫(kù),需要自己封裝server端。
3. Document Store: Mongodb
分布式nosql,具備了區(qū)別mysql的最大亮點(diǎn):可擴(kuò)展性。mongodb 最新引人的莫過于提供了sql接口,是目前nosql里最像mysql的,只是沒有ACID的特性,發(fā)展很快,支持了索引等特性,上手容易,對(duì)于數(shù)據(jù)量遠(yuǎn)超內(nèi)存限制的場(chǎng)景來說,還需要慎重。
4. Column Table Store: HBase
這個(gè)富二代似乎不用贅述了,最大的優(yōu)勢(shì)是開源,對(duì)于普通的scan和基于行的get等基本查詢,性能完全不是問題,只是只提供裸的api,易用性上是短板,可擴(kuò)展性方面是最強(qiáng)的,其次坐上了Hadoop的快車,社區(qū)發(fā)展很快,各種基于其上的開源產(chǎn)品不少,來解決諸如join、聚集運(yùn)算等復(fù)雜查詢。
NoSQL,指的是非關(guān)系型的數(shù)據(jù)庫(kù)。NoSQL有時(shí)也稱作Not Only SQL的縮寫,是對(duì)不同于傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)管理系統(tǒng)的統(tǒng)稱。
NoSQL用于超大規(guī)模數(shù)據(jù)的存儲(chǔ)。(例如谷歌或Facebook每天為他們的用戶收集萬億比特的數(shù)據(jù))。這些類型的數(shù)據(jù)存儲(chǔ)不需要固定的模式,無需多余操作就可以橫向擴(kuò)展。
NoSQL的優(yōu)點(diǎn)/缺點(diǎn)
優(yōu)點(diǎn):
- 高可擴(kuò)展性
- 分布式計(jì)算
- 低成本
- 架構(gòu)的靈活性,半結(jié)構(gòu)化數(shù)據(jù)
- 沒有復(fù)雜的關(guān)系
缺點(diǎn):
- 沒有標(biāo)準(zhǔn)化
- 有限的查詢功能(到目前為止)
- 最終一致是不直觀的程序 (BY三人行慕課)
阿里云致力于以在線公共服務(wù)的方式,提供安全、可靠的計(jì)算和數(shù)據(jù)處理能力,讓計(jì)算和人工智能成為普惠科技。
阿里云服務(wù)著制造、金融、政務(wù)、交通、醫(yī)療、電信、能源等眾多領(lǐng)域的領(lǐng)軍企業(yè),包括中國(guó)聯(lián)通、12306、中石化、中石油、飛利浦、華大基因等大型企業(yè)客戶,以及微博、知乎、錘子科技等明星互聯(lián)網(wǎng)公司。在天貓雙11全球狂歡節(jié)、12306春運(yùn)購(gòu)票等極富挑戰(zhàn)的應(yīng)用場(chǎng)景中,阿里云保持著良好的運(yùn)行紀(jì)錄。
阿里云在全球各地部署高效節(jié)能的綠色數(shù)據(jù)中心,利用清潔計(jì)算為萬物互聯(lián)的新世界提供源源不斷的能源動(dòng)力,目前開服的區(qū)域包括中國(guó)(華北、華東、華南、香港)、新加坡、美國(guó)(美東、美西)、歐洲、中東、澳大利亞、日本。
擴(kuò)展資料:
阿里云主要產(chǎn)品:
1、彈性計(jì)算:
云服務(wù)器ECS:可彈性擴(kuò)展、安全、穩(wěn)定、易用的計(jì)算服務(wù)
塊存儲(chǔ):可彈性擴(kuò)展、高性能、高可靠的塊級(jí)隨機(jī)存儲(chǔ)
專有網(wǎng)絡(luò)VPC:幫您輕松構(gòu)建邏輯隔離的專有網(wǎng)絡(luò)
負(fù)載均衡:對(duì)多臺(tái)云服務(wù)器進(jìn)行流量分發(fā)的負(fù)載均衡服務(wù)
彈性伸縮:自動(dòng)調(diào)整彈性計(jì)算資源的管理服務(wù)
資源編排:批量創(chuàng)建、管理、配置云計(jì)算資源
容器服務(wù):應(yīng)用全生命周期管理的Docker服務(wù)
高性能計(jì)算HPC:加速深度學(xué)習(xí)、渲染和科學(xué)計(jì)算的GPU物理機(jī)
批量計(jì)算:簡(jiǎn)單易用的大規(guī)模并行批處理計(jì)算服務(wù)
E-MapReduce:基于Hadoop/Spark的大數(shù)據(jù)處理分析服務(wù)
2、數(shù)據(jù)庫(kù):
云數(shù)據(jù)庫(kù)RDS:完全兼容MySQL,SQLServer,PostgreSQL
云數(shù)據(jù)庫(kù)MongoDB版:三節(jié)點(diǎn)副本集保證高可用
云數(shù)據(jù)庫(kù)Redis版:兼容開源Redis協(xié)議的Key-Value類型
云數(shù)據(jù)庫(kù)Memcache版:在線緩存服務(wù),為熱點(diǎn)數(shù)據(jù)的訪問提供高速響應(yīng)
PB級(jí)云數(shù)據(jù)庫(kù)PetaData:支持PB級(jí)海量數(shù)據(jù)存儲(chǔ)的分布式關(guān)系型數(shù)據(jù)庫(kù)
云數(shù)據(jù)庫(kù)HybridDB:基于GreenplumDatabase的MPP數(shù)據(jù)倉(cāng)庫(kù)
云數(shù)據(jù)庫(kù)OceanBase:金融級(jí)高可靠、高性能、分布式自研數(shù)據(jù)庫(kù)
數(shù)據(jù)傳輸:比GoldenGate更易用,阿里異地多活基礎(chǔ)架構(gòu)
數(shù)據(jù)管理:比phpMyadmin更強(qiáng)大,比Navicat更易用
3、存儲(chǔ):
對(duì)象存儲(chǔ)OSS:海量、安全和高可靠的云存儲(chǔ)服務(wù)
文件存儲(chǔ):無限擴(kuò)展、多共享、標(biāo)準(zhǔn)文件協(xié)議的文件存儲(chǔ)服務(wù)
歸檔存儲(chǔ):海量數(shù)據(jù)的長(zhǎng)期歸檔、備份服務(wù)
塊存儲(chǔ):可彈性擴(kuò)展、高性能、高可靠的塊級(jí)隨機(jī)存儲(chǔ)
表格存儲(chǔ):高并發(fā)、低延時(shí)、無限容量的Nosql數(shù)據(jù)存儲(chǔ)服務(wù)
4、網(wǎng)絡(luò):
CDN:跨運(yùn)營(yíng)商、跨地域全網(wǎng)覆蓋的網(wǎng)絡(luò)加速服務(wù)
專有網(wǎng)絡(luò)VPC:幫您輕松構(gòu)建邏輯隔離的專有網(wǎng)絡(luò)
高速通道:高速穩(wěn)定的VPC互聯(lián)和專線接入服務(wù)
NAT網(wǎng)關(guān):支持NAT轉(zhuǎn)發(fā)、共享帶寬的VPC網(wǎng)關(guān)
2018年6月20日,阿里云宣布聯(lián)合三大運(yùn)營(yíng)商全面對(duì)外提供IPv6服務(wù)。
5、大數(shù)據(jù):
MaxCompute:原名ODPS,是一種快速、完全托管的TB/PB級(jí)數(shù)據(jù)倉(cāng)庫(kù)解決方案。
QuickBI:高效數(shù)據(jù)分析與展現(xiàn)平臺(tái),通過對(duì)數(shù)據(jù)源的連接,和數(shù)據(jù)集的創(chuàng)建,對(duì)數(shù)據(jù)進(jìn)行即席的分析與查詢。并通過電子表格或儀表板功能,以拖拽的方式進(jìn)行數(shù)據(jù)的可視化呈現(xiàn)。
大數(shù)據(jù)開發(fā)套件:提供可視化開發(fā)界面、離線任務(wù)調(diào)度運(yùn)維、快速數(shù)據(jù)集成、多人協(xié)同工作等功能,擁有強(qiáng)大的OpenAPI為數(shù)據(jù)應(yīng)用開發(fā)者提供良好的再創(chuàng)作生態(tài)
DataV數(shù)據(jù)可視化:專精于業(yè)務(wù)數(shù)據(jù)與地理信息融合的大數(shù)據(jù)可視化,通過圖形界面輕松搭建專業(yè)的可視化應(yīng)用,滿足您日常業(yè)務(wù)監(jiān)控、調(diào)度、會(huì)展演示等多場(chǎng)景使用需求
關(guān)系網(wǎng)絡(luò)分析:基于關(guān)系網(wǎng)絡(luò)的大數(shù)據(jù)可視化分析平臺(tái),針對(duì)數(shù)據(jù)情報(bào)偵察場(chǎng)景賦能,如打擊虛假交易,審理保險(xiǎn)騙賠,案件還原研判等
推薦引擎:推薦服務(wù)框架,用于實(shí)時(shí)預(yù)測(cè)用戶對(duì)物品偏好,支持A/BTest效果對(duì)比
公眾趨勢(shì)分析:利用語義分析、情感算法和機(jī)器學(xué)習(xí),分析公眾對(duì)品牌形象、熱點(diǎn)事件和公共政策的認(rèn)知趨勢(shì)
企業(yè)圖譜:提供企業(yè)多維度信息查詢,方便企業(yè)構(gòu)建基于企業(yè)畫像及企業(yè)關(guān)系網(wǎng)絡(luò)的風(fēng)險(xiǎn)控制、市場(chǎng)監(jiān)測(cè)等企業(yè)級(jí)服務(wù)
數(shù)據(jù)集成:穩(wěn)定高效、彈性伸縮的數(shù)據(jù)同步平臺(tái),為阿里云各個(gè)云產(chǎn)品提供離線(批量)數(shù)據(jù)進(jìn)出通道
分析型數(shù)據(jù)庫(kù):在毫秒級(jí)針對(duì)千億級(jí)數(shù)據(jù)進(jìn)行即時(shí)的多維分析透視和業(yè)務(wù)探索
流計(jì)算:流式大數(shù)據(jù)分析平臺(tái),提供給用戶在云上進(jìn)行流式數(shù)據(jù)實(shí)時(shí)化分析工具
6、人工智能:
機(jī)器學(xué)習(xí):基于阿里云分布式計(jì)算引擎的一款機(jī)器學(xué)習(xí)算法平臺(tái),用戶通過拖拉拽的方式可視化的操作組件來進(jìn)行試驗(yàn),平臺(tái)提供了豐富的組件,包括數(shù)據(jù)預(yù)處理、特征工程、算法組件、預(yù)測(cè)與評(píng)估
語音識(shí)別與合成:基于語音識(shí)別、語音合成、自然語言理解等技術(shù),為企業(yè)在多種實(shí)際應(yīng)用場(chǎng)景下,賦予產(chǎn)品“能聽、會(huì)說、懂你”式的智能人機(jī)交互體驗(yàn)
人臉識(shí)別:提供圖像和視頻幀中人臉分析的在線服務(wù),包括人臉檢測(cè)、人臉特征提取、人臉年齡估計(jì)和性別識(shí)別、人臉關(guān)鍵點(diǎn)定位等獨(dú)立服務(wù)模塊
印刷文字識(shí)別:將圖片中的文字識(shí)別出來,包括身份證文字識(shí)別、門店招牌識(shí)別、行駛證識(shí)別、駕駛證識(shí)別、名片識(shí)別等證件類文字識(shí)別場(chǎng)景
7、云安全:
服務(wù)器安全(安騎士):由輕量級(jí)Agent和云端組成,集檢測(cè)、修復(fù)、防御為一體,提供網(wǎng)站后門查殺、通用Web軟件0day漏洞修復(fù)、安全基線巡檢、主機(jī)訪問控制等功能,保障服務(wù)器安全
DDoS高防IP:云盾DDoS高防IP是針對(duì)互聯(lián)網(wǎng)服務(wù)器(包括非阿里云主機(jī))在遭受大流量的DDoS攻擊后導(dǎo)致服務(wù)不可用的情況下,推出的付費(fèi)增值服務(wù),用戶可以通過配置高防IP,將攻擊流量引流到高防IP,確保源站的穩(wěn)定可靠
Web應(yīng)用防火墻:網(wǎng)站必備的一款安全防護(hù)產(chǎn)品。通過分析網(wǎng)站的訪問請(qǐng)求、過濾異常攻擊,保護(hù)網(wǎng)站業(yè)務(wù)可用及資產(chǎn)數(shù)據(jù)安全
加密服務(wù):滿足云上數(shù)據(jù)加密,密鑰管理、加解密運(yùn)算需求的數(shù)據(jù)安全解決方案
CA證書服務(wù):云上簽發(fā)Symantec、CFCA、GeoTrustSSL數(shù)字證書,部署簡(jiǎn)單,輕松實(shí)現(xiàn)全站HTTPS化,防監(jiān)聽、防劫持,呈現(xiàn)給用戶可信的網(wǎng)站訪問
數(shù)據(jù)風(fēng)控:凝聚阿里多年業(yè)務(wù)風(fēng)控經(jīng)驗(yàn),專業(yè)、實(shí)時(shí)對(duì)抗垃圾注冊(cè)、刷庫(kù)撞庫(kù)、活動(dòng)作弊、論壇灌水等嚴(yán)重威脅互聯(lián)網(wǎng)業(yè)務(wù)安全的風(fēng)險(xiǎn)
綠網(wǎng):智能識(shí)別文本、圖片、視頻等多媒體的內(nèi)容違規(guī)風(fēng)險(xiǎn),如涉黃,暴恐,涉政等,省去90%人力成本
安全管家:基于阿里云多年安全實(shí)踐經(jīng)驗(yàn)為云上用戶提供的全方位安全技術(shù)和咨詢服務(wù),為云上用戶建立和持續(xù)優(yōu)化云安全防御體系,保障用戶業(yè)務(wù)安全
云盾混合云:在用戶自有IDC、專有云、公共云、混合云等多種業(yè)務(wù)環(huán)境為用戶建設(shè)涵蓋網(wǎng)絡(luò)安全、應(yīng)用安全、主機(jī)安全、安全態(tài)勢(shì)感知的全方位互聯(lián)網(wǎng)安全攻防體系
態(tài)勢(shì)感知:安全大數(shù)據(jù)分析平臺(tái),通過機(jī)器學(xué)習(xí)和結(jié)合全網(wǎng)威脅情報(bào),發(fā)現(xiàn)傳統(tǒng)防御軟件無法覆蓋的網(wǎng)絡(luò)威脅,溯源攻擊手段、并且提供可行動(dòng)的解決方案
先知:全球頂尖白帽子和安全公司幫你找漏洞,最私密的安全眾測(cè)平臺(tái)。全面體檢,提早發(fā)現(xiàn)業(yè)務(wù)漏洞及風(fēng)險(xiǎn),按效果付費(fèi)
移動(dòng)安全:為移動(dòng)APP提供安全漏洞、惡意代碼、仿冒應(yīng)用等檢測(cè)服務(wù),并可對(duì)應(yīng)用進(jìn)行安全增強(qiáng),提高反破解和反逆向能力。
8、互聯(lián)網(wǎng)中間件:
企業(yè)級(jí)分布式應(yīng)用服務(wù)EDAS:以應(yīng)用為中心的中間件PaaS平臺(tái)、
消息隊(duì)列MQ:ApacheRocketMQ商業(yè)版企業(yè)級(jí)異步通信中間件
分布式關(guān)系型數(shù)據(jù)庫(kù)服務(wù)DRDS:水平拆分/讀寫分離的在線分布式數(shù)據(jù)庫(kù)服務(wù)
云服務(wù)總線CSB:企業(yè)級(jí)互聯(lián)網(wǎng)能力開放平臺(tái)
業(yè)務(wù)實(shí)施監(jiān)控服務(wù)ARMS:端到端一體化實(shí)時(shí)監(jiān)控解決方案產(chǎn)品
9、分析:
E-MapReduce:基于Hadoop/Spark的大數(shù)據(jù)處理分析服務(wù)
云數(shù)據(jù)庫(kù)HybirdDB:基于GreenplumDatabase的MPP數(shù)據(jù)倉(cāng)庫(kù)
高性能計(jì)算HPC:加速深度學(xué)習(xí)、渲染和科學(xué)計(jì)算的GPU物理機(jī)
大數(shù)據(jù)計(jì)算服務(wù)MaxCompute:TB/PB級(jí)數(shù)據(jù)倉(cāng)庫(kù)解決方案
分析型數(shù)據(jù)庫(kù):海量數(shù)據(jù)實(shí)時(shí)高并發(fā)在線分析
開放搜索:結(jié)構(gòu)化數(shù)據(jù)搜索托管服務(wù)
QuickBI:通過對(duì)數(shù)據(jù)源的連接,對(duì)數(shù)據(jù)進(jìn)行即席分析和可視化呈現(xiàn)。
參考資料:
百度百科-阿里云