阿里云DRDS:分布式數(shù)據(jù)庫(kù)服務(wù)

來(lái)源: 博客園
作者:人生設(shè)計(jì)師
時(shí)間:2020-12-28
16939
項(xiàng)目用到阿里的很多接口服務(wù)的API,于是想把這段項(xiàng)目做個(gè)總結(jié),順便梳理下阿里云的云計(jì)算的相關(guān)知識(shí)點(diǎn)。

mark-fletcher-brown-nN5L5GXKFz8-unsplash.jpg

DRDS:分布式數(shù)據(jù)庫(kù)服務(wù)。

1.相關(guān)術(shù)語(yǔ)

DRDS(Distribute Relational Database Service),分布式關(guān)系型數(shù)據(jù)庫(kù)服務(wù):分布式數(shù)據(jù)庫(kù)服務(wù),基于rds,提供分庫(kù)分表功能。

DrdsInstance(Distribute Relational Database Instance),分布式數(shù)據(jù)庫(kù)實(shí)例:一個(gè)獨(dú)立占用物理內(nèi)存的分布式數(shù)據(jù)庫(kù)服務(wù)進(jìn)程,可以有不同的規(guī)格,規(guī)格會(huì)決定該實(shí)例的性能(包含IOPS、連接數(shù))。

DrdsInstanceId(Distribute Relational Database Instance ID),分布式數(shù)據(jù)庫(kù)實(shí)例名:實(shí)例名可標(biāo)識(shí)一個(gè)實(shí)例的名稱,全局唯一。

DrdsDB(Distribute Relational Database),分布式數(shù)據(jù)庫(kù):Drds數(shù)據(jù)庫(kù)是在一個(gè)實(shí)例下創(chuàng)建的邏輯單元,一個(gè)實(shí)例可以創(chuàng)建多個(gè)數(shù)據(jù)庫(kù),在實(shí)例內(nèi)數(shù)據(jù)庫(kù)命名唯一,所有數(shù)據(jù)庫(kù)都會(huì)共享該實(shí)例的資源。

DrdsDBName(Distribute Relational Database Name),分布式數(shù)據(jù)庫(kù)名:標(biāo)識(shí)每個(gè)分布式DB的名稱,在一個(gè)實(shí)例范圍內(nèi),數(shù)據(jù)庫(kù)名惟一。

DrdsDBAccount(Distribute Relational Database Accoun),分布式數(shù)據(jù)庫(kù)帳號(hào)/帳號(hào):帳號(hào)是標(biāo)識(shí)數(shù)據(jù)庫(kù)的訪問(wèn)權(quán)限,目前一個(gè)數(shù)據(jù)庫(kù)對(duì)應(yīng)一個(gè)帳號(hào),一個(gè)帳號(hào)關(guān)聯(lián)一個(gè)數(shù)據(jù)庫(kù)。

2.DRDS產(chǎn)品簡(jiǎn)介

2.1 DRDS產(chǎn)品概要:

單機(jī)數(shù)據(jù)庫(kù)能夠方便的滿足用戶對(duì)于關(guān)系查詢類的需求,是目前業(yè)務(wù)應(yīng)用中最常使用的軟件。然而,對(duì)于很多應(yīng)用而言,單機(jī)數(shù)據(jù)庫(kù)最終都會(huì)碰到單機(jī)性能上的天花板,在TPS(系統(tǒng)吞吐量)/QPS(每秒查詢率)/內(nèi)存容量/磁盤容量等等一系列系統(tǒng)資源上會(huì)碰到各類限制。DRDS的主要目標(biāo),就是幫您解決這方面的各類問(wèn)題,他主要提供了兩個(gè)功能:讀寫分離和數(shù)據(jù)庫(kù)切分。

讀寫分離,能夠允許您實(shí)現(xiàn)一臺(tái)機(jī)器寫入,多臺(tái)機(jī)器讀取,這對(duì)于讀多寫少的應(yīng)用,能夠以極低的成本解決系統(tǒng)的瓶頸。

數(shù)據(jù)庫(kù)切分是一個(gè)解決系統(tǒng)存儲(chǔ)瓶頸的最終極解決方案,數(shù)據(jù)庫(kù)切分的核心思想其實(shí)很簡(jiǎn)單,就是分而治之。將數(shù)據(jù)分散到多臺(tái)機(jī)器,并保證請(qǐng)求能夠平均的分發(fā)到這些機(jī)器上,就可以以極低的成本來(lái)解決業(yè)務(wù)的各類性能瓶頸。

當(dāng)然,切分也是有代價(jià)的,最明顯的代價(jià)就是,分布式數(shù)據(jù)庫(kù)會(huì)對(duì)一些原有單機(jī)數(shù)據(jù)庫(kù)的場(chǎng)景進(jìn)行限制,因?yàn)檫@些操作,在分布式環(huán)境下的延遲或效率非常低效,就算是能夠?qū)崿F(xiàn)出來(lái),也會(huì)因?yàn)樾阅軉?wèn)題而無(wú)法使用。

針對(duì)這類問(wèn)題,阿里的中間件團(tuán)隊(duì)曾經(jīng)成功的協(xié)助過(guò)近300個(gè)業(yè)務(wù)應(yīng)用系統(tǒng)實(shí)現(xiàn)了數(shù)據(jù)庫(kù)的切分,因此,我們?cè)谶@個(gè)領(lǐng)域內(nèi)積累了大量的實(shí)戰(zhàn)經(jīng)驗(yàn)和成熟的產(chǎn)品,希望這類產(chǎn)品也能夠?yàn)槟峁┫嗤姆?wù),讓您的數(shù)據(jù)庫(kù)再也不必?fù)?dān)心性能問(wèn)題。

2.2DRDS與MySQL兼容性:

支持點(diǎn):

DRDS支持90%以上MySQL sql,包括常用的insert/update/replace,select/join/union/subquery/exist等各種語(yǔ)法+條件組合

DRDS抽象出21種數(shù)據(jù)類型,int/float/double/long/decimal/data/time/datetime/timestamp/bit/bits...

DRDS兼容MySQL 80%的函數(shù)實(shí)現(xiàn),主要包括:數(shù)學(xué)、字符串、時(shí)間

DRDS支持map/reduce計(jì)算模型

DRDS支持函數(shù)的二次計(jì)算,如如count(id)+1,sum(pv)/count(person)

DRDS支持跨庫(kù)join的函數(shù)計(jì)算,比如select count(*)+1 from a join b on a.id=b.id.

DRDS支持特殊類型計(jì)算,比如count(distinct id).

DRDS支持跨數(shù)據(jù)節(jié)點(diǎn)join(分布式j(luò)oin)

DRDS支持跨數(shù)據(jù)節(jié)點(diǎn)多重嵌套子查詢

DRDS支持多種并行執(zhí)行模式

目前不支持:

不支持group by/order by列為函數(shù)列且不存在與select列中

不支持join列為函數(shù)計(jì)算,比如on.id=b.id+1

DRDS server未開(kāi)放DDL支持,只能在控制臺(tái)做DDL

不支持復(fù)雜update/delete語(yǔ)句(比如update多表,有join等)

不支持強(qiáng)一致分布式事務(wù)

2.3數(shù)據(jù)水平拆分

DRDS幫助您實(shí)現(xiàn)分庫(kù)分表,能夠?qū)⒃瓉?lái)只能在單節(jié)點(diǎn)執(zhí)行的SQL,轉(zhuǎn)變?yōu)槎喙?jié)點(diǎn)執(zhí)行的SQL,如同單個(gè)數(shù)據(jù)庫(kù)體驗(yàn)。通過(guò)支持系統(tǒng)實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ)的動(dòng)態(tài)水平擴(kuò)展,目前DRDS在公司內(nèi)已經(jīng)有超過(guò)幾百個(gè)應(yīng)用系統(tǒng)使用超過(guò)5年,高效安全且穩(wěn)定。

但是分布式數(shù)據(jù)庫(kù)和單機(jī)數(shù)據(jù)庫(kù)本身必然會(huì)存在一定的使用習(xí)慣上的不同,例如低效的分布式事務(wù)、分布式j(luò)oin等,針對(duì)這些問(wèn)題,DRDS的選擇是:優(yōu)先考慮性能和穩(wěn)定性,兼顧軟件的兼容性。

與市面上的一些開(kāi)源的數(shù)據(jù)庫(kù)切分工具相比,DRDS能夠更智能的分析您的SQL,在結(jié)果集合并和分布式j(luò)oin優(yōu)化等關(guān)鍵領(lǐng)域,我們都有成熟解決方案,能夠幫您解決在分布式數(shù)據(jù)庫(kù)場(chǎng)景中面臨的大部分問(wèn)題。

2.4平滑擴(kuò)容

DRDS能夠幫助用戶實(shí)現(xiàn)在線的數(shù)據(jù)庫(kù)平滑擴(kuò)容,讓用戶能夠按需的自由增減數(shù)據(jù)庫(kù),從而實(shí)現(xiàn)彈性按需使用數(shù)據(jù)庫(kù)集群。

在線數(shù)據(jù)庫(kù)擴(kuò)容的重點(diǎn)在于“在線”兩字,也就是用戶不需要停止業(yè)務(wù)系統(tǒng)進(jìn)行割接操作,直接就可以添加新的RDS節(jié)點(diǎn)到集群中,實(shí)現(xiàn)無(wú)縫的自由擴(kuò)展。DRDS則將整個(gè)擴(kuò)容的過(guò)程分為幾個(gè)階段,包括全量遷移,增量同步,切換數(shù)據(jù)庫(kù)等幾個(gè)步驟。數(shù)據(jù)會(huì)提前進(jìn)行搬遷,并進(jìn)行增量并行同步一段時(shí)間,因此,我們可以在非常短的時(shí)間內(nèi)(秒級(jí)別)完成數(shù)據(jù)庫(kù)的最終擴(kuò)容切換工作,對(duì)您的業(yè)務(wù)沒(méi)有影響。

2.5小表廣播

在一些大的業(yè)務(wù)表進(jìn)行了切分后,總會(huì)存在一些表的數(shù)據(jù)量不大,更新量也不大的原始信息表。這些表往往會(huì)與我們的切分后大表進(jìn)行join操作。這種操作物理上就會(huì)造成分布式j(luò)oin查詢,效率從整體上會(huì)比較低下。

針對(duì)這種分布式j(luò)oin的場(chǎng)景,我們開(kāi)發(fā)了OETL專用工具來(lái)幫您進(jìn)行小表廣播,將原信息表的所有數(shù)據(jù)(包括增量更新)全部自動(dòng)的廣播到大表的機(jī)器上,這樣,就可以讓原來(lái)的分布式查詢變成單機(jī)本地查詢了。

2.6全局唯一ID

在分布式環(huán)境下,原有的mysql sequence生成機(jī)制無(wú)法高效的生成全局唯一的sequence.我們借鑒了oracle的sequence生成樣例,實(shí)現(xiàn)了一個(gè)在mysql基礎(chǔ)上的高效sequence生成器,能做到?jīng)]有單點(diǎn)性能瓶頸,具備大并發(fā)獲取和低延遲特性。

DRDS sequence功能的目標(biāo)只是為了保證數(shù)據(jù)的全局唯一,雖然基本上是按時(shí)間序列獲取的,但并不全局有序。

立即登錄,閱讀全文
版權(quán)說(shuō)明:
本文內(nèi)容來(lái)自于博客園,本站不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。文章內(nèi)容系作者個(gè)人觀點(diǎn),不代表快出海對(duì)觀點(diǎn)贊同或支持。如有侵權(quán),請(qǐng)聯(lián)系管理員(zzx@kchuhai.com)刪除!
相關(guān)文章
阿里云助力《誅仙世界》端游正式開(kāi)服!
阿里云助力《誅仙世界》端游正式開(kāi)服!
近?,完美世界游戲歷時(shí)多年打造的新國(guó)?仙俠MMORPG端游《誅仙世界》在阿?云上正式開(kāi)服。
阿里云
云服務(wù)
2024-12-292024-12-29
一文詳解阿里云AI大基建
一文詳解阿里云AI大基建
面向AI時(shí)代,阿里云基礎(chǔ)設(shè)施是如何創(chuàng)新與發(fā)展的?計(jì)算、網(wǎng)絡(luò)、存儲(chǔ)、服務(wù)器、集群、可觀測(cè)等,阿里云全新升級(jí)的AI Infra到底有哪些重磅更新?
阿里云
云服務(wù)
2024-11-022024-11-02
AI時(shí)代云安全新范式,阿里云安全能力全線升級(jí)!
AI時(shí)代云安全新范式,阿里云安全能力全線升級(jí)!
AI時(shí)代,云安全面臨著新的挑戰(zhàn),不僅要持續(xù)面對(duì)以往的傳統(tǒng)問(wèn)題,更需要全新理念落地于產(chǎn)品設(shè)計(jì)、技術(shù)演進(jìn)、架構(gòu)設(shè)計(jì),才能實(shí)現(xiàn)效果、性能、和成本的最優(yōu)解。
AI
阿里云
云服務(wù)
2024-09-272024-09-27
連續(xù)四年!阿里云領(lǐng)跑中國(guó)公有云大數(shù)據(jù)平臺(tái)
連續(xù)四年!阿里云領(lǐng)跑中國(guó)公有云大數(shù)據(jù)平臺(tái)
近日,國(guó)際數(shù)據(jù)公司(IDC)發(fā)布《中國(guó)大數(shù)據(jù)平臺(tái)市場(chǎng)份額,2023:數(shù)智融合時(shí)代的真正到來(lái)》報(bào)告——2023年中國(guó)大數(shù)據(jù)平臺(tái)公有云服務(wù)市場(chǎng)規(guī)模達(dá)72.2億元人民幣,其中阿里巴巴市場(chǎng)份額保持領(lǐng)先,占比達(dá)40.2%,連續(xù)四年排名第一。
阿里云
云服務(wù)
2024-09-182024-09-18
優(yōu)質(zhì)服務(wù)商推薦
更多
掃碼登錄
打開(kāi)掃一掃, 關(guān)注公眾號(hào)后即可登錄/注冊(cè)
加載中
二維碼已失效 請(qǐng)重試
刷新
賬號(hào)登錄/注冊(cè)
小程序
快出海小程序
公眾號(hào)
快出海公眾號(hào)
商務(wù)合作
商務(wù)合作
投稿采訪
投稿采訪
出海管家
出海管家