drds資料庫
❶ 阿里雲的主要功能是什麼
《阿里雲大學課程(大數據、雲計算、雲安全、中間件).zip》網路網盤資源免費下載
鏈接: https://pan..com/s/16hjddCM_GcPVXGmBrr6feA
❷ 阿里雲分布式資料庫服務DRDS誰使用過 簡單講講!
淘寶開源的TDDL和cobar的結合,放到了阿里雲上就是DRDS,是商品,服務,可以購買使用的。可以在阿里雲官網上注冊免費試用。
=====================================================
隨著互聯網時代的到來,計算機要管理的數據量呈指數級別地飛速上漲,而我們卻完全無法對用戶數做出准確預估。我們的系統所需要支持的用戶數,很可能在短短的一個月內突然爆發式地增長幾千倍,數據也很可能快速地從原來的幾百GB飛速上漲到了幾百個TB。如果在這爆發的關鍵時刻,系統不穩定或無法訪問,那麼對於業務將會是毀滅性的打擊。
伴隨著這種對於系統性能、成本以及擴展性的新需要,以HBase、MongoDB為代表的NoSQL資料庫和以阿里DRDS、VoltDB、ScaleBase為代表的分布式NewSQL資料庫如雨後春筍般不斷涌現出來。
本文將會介紹阿里DRDS的技術理念、發展歷程、技術特性等內容。
DRDS設計理念
從20世紀70年代關系資料庫創立開始,其實大家在資料庫上的追求就從未發生過變化:更快的存取數據,可以按需擴縮以承載更大的訪問量和更大的數據量,開發容易,硬體成本低,我們可以把這叫做資料庫領域的聖杯。
為了支撐更大的訪問量和數據量,我們必然需要分布式資料庫系統,然而分布式系統又必然會面對強一致性所帶來的延遲提高的問題,因為網路通信本身比單機內通信代價高很多,這種通信的代價就會直接增加系統單次提交的延遲。延遲提高會導致資料庫鎖持有時間變長,使得高沖突條件下分布式事務的性能不升反降(這個具體可以了解一下Amdahl定律),甚至性能距離單機資料庫都還有明顯的差距。
從上面的說明,我們可以發現,問題的關鍵並不是分布式事務做不出來,而是做出來了卻因為性能太差而沒有什麼卵用。資料庫領域的高手們努力了40年,但至今仍然沒有人能夠很好地解決這個問題,Google Spanner的開發負責人就經常在他的Blog上談論延遲的問題,相信也是飽受這個問題的困擾。
面對這個難題,傳統的關系資料庫選擇了放棄分布式的方案,因為在20世紀70~80年代,我們的資料庫主要被用來處理企業內的各類數據,面對的用戶不過幾千人,而數據量最多也就是TB級別。用單台機器來處理事務,用個磁碟陣列處理一下磁碟容量不夠的問題,基本上就能解決一切問題了。
然而,信息化和互聯網的浪潮改變了這一切,我們突然發現,我們服務的對象發生了根本性變化,從原來的幾千人,變成了現在的幾億人,數據量也從TB級別到了PB級別甚至更多。存在單點的單機系統無論如何努力,都會面對系統處理能力的天花板。原來的這條路,看起來是走不下去了,我們必須想辦法換一條路來走。
可是,分布式資料庫所面對的強一致性難題卻像一座高山,人們努力了無數個日日夜夜,但能翻越這座山的日子看來仍然遙遙無期。
於是,有一群人認為,強一致性這件事看來不怎麼靠譜,那徹底繞開這個問題是不是個更好的選擇?他們發現確實有那麼一些場景是不需要強一致事務的,甚至連SQL都可以不要,最典型的就是日誌流水的記錄與分析這類場景。而去掉了事務和SQL,介面簡單了,性能就更容易得到提升,擴展性也更容易實現,這就是NoSQL系統的起源。
雖然NoSQL解決了性能和擴展性問題,但這種繞開問題的方法給用戶帶來了很多困擾,系統的開發成本也大大提升。這時候就有另外一群人,他們覺得用戶需要SQL,覺得用戶也需要事務,問題的關鍵在於我們要努力地往聖杯的方向不斷前進。在保持系統的擴展性和性能的前提下,付出盡可能小的代價來滿足業務對資料庫的需要。這就是NewSQL這個理念的由來。
DRDS也是一個NewSQL的系統,它與ScaleBase、VoltDB等系統類似,都希望能夠找到一條既能保持系統的高擴展性和高性能,又能盡可能保持傳統資料庫的ACID事務和SQL特性的分布式資料庫系統。
DRDS發展歷程
在一開始,TDDL的主要功能就是做資料庫切分,一個或一組SQL請求提交到TDDL,TDDL進行規則運算後得知SQL應該被分發到哪個機器,直接將SQL轉發到對應機器即可(如圖1)。
圖1 TDDL資料庫切分
開始的時候,這種簡單的路由策略能夠滿足用戶的需要,我們開始的那些應用,就是通過這樣非常簡單的方式完成了他所有的應用請求。我們也認為,這種方案簡單可靠,已經足夠好用了。
然而,當我們服務的應用從十幾個增長到幾百個的時候,大量的中小應用加入,大家紛紛表示,原來的方案限制太大,很多應用其實只是希望做個讀寫分離,希望能有更好的SQL兼容性。
於是,我們做了第一次重大升級,在這次升級里,我們提出了一個重要的概念就是三層架構,Matrix對應資料庫切分場景,對SQL有一定限制,Group對應讀寫分離和高可用場景,對SQL幾乎沒有限制。如圖2所示。
圖2 資料庫升級為三層架構
這種做法立刻得到了大家的認可,TDDL所提供的讀寫分離、分庫分表等核心功能,也成為了阿里集團內資料庫領域的標配組件,在阿里的幾乎所有應用上都有應用。最為難得的是,這些功能從上線後,到現在已經經歷了多年雙11的嚴酷考驗,從未出現過嚴重故障(p0、p1級別故障屬於嚴重故障)。資料庫體系作為整個應用系統的重中之重,能做到這件事,真是非常不容易。
隨著核心功能的穩定,自2010年開始,我們集中全部精力開始關注TDDL後端運維系統的完善與改進性工作。在DBA團隊的給力配合下,圍繞著TDDL,我們成功做到了在線數據動態擴縮、非同步索引等關鍵特徵,同時也比較成功地構建了一整套分布式資料庫服務管控體系,用戶基本上可以完全自助地完成整套資料庫環境的搭建與初始化工作。
大概是2012年,我們在阿里雲團隊的支持下,開始嘗試將TDDL這套體系輸出到阿里雲上,也有了個新的名字:阿里分布式資料庫服務(DRDS),希望能夠用我們的技術服務好更多的人。
不過當我們滿懷自信地把自己的軟體拿到雲上的時候,卻發現我們的軟體距離用戶的要求差距很大。在內部因為有DBA的同學們幫助進行SQL review,所以SQL的復雜度都是可控的。然而到了雲上,看了各種渠道提過來的兼容性需求,我們經常是不自覺地發出這樣的感嘆:「啊?原來這種語法MySQL也是可以支持的?」
於是,我們又進行了架構升級,這次是以兼容性為核心目標的系統升級工作,希望能夠在分布式場景下支持各類復雜的SQL,同時也將阿里這么多年來在分布式事務上的積累都帶到了DRDS裡面。
這次架構升級,我們的投入史無前例,用了三年多才將整個系統落地完成。我們先在內部以我們自己的業務作為首批用戶上線,經過了內部幾百個應用的嚴酷考驗以後,我們才敢拿到雲上,給到我們的最終用戶使用。
目前,我們正在將TDDL中更多的積累輸出到雲上,同時也努力優化我們的用戶界面。PS:其實用戶界面優化對我們這種專注於高性能後端技術的團隊來說,才是最大的技術挑戰,連我也去學了AngularJS,參與了用戶UI編。
DRDS主要功能介紹
發展歷史看完了,下面就由我來介紹一下目前我們已經輸出到雲上的主要功能。
【分布式SQL執行引擎】
分布式SQL引擎主要的目的,就是實現與單機資料庫SQL引擎的完全兼容。目前我們的SQL引擎能夠做到與MySQL的SQL引擎全兼容,包括各類join和各類復雜函數等。他主要包含SQL解析、優化、執行和合並四個流程,如圖3中綠色部分。
圖3 SQL引擎實現的主要流程
雖然SQL是兼容的,但是分布式SQL執行演算法與單機SQL的執行演算法卻完全不同,原因也很簡單,網路通信的延遲比單機內通信的延遲大得多。舉個例子說明一下,我們有份文件要從一張紙A上謄寫到另外一張紙B上,單機系統就好比兩張紙都在同一個辦公室里,而分布式資料庫則就像是一張紙在北京,一張紙在杭州。
自然地,如果兩張紙在同一個辦公室,因為傳輸距離近,逐行謄寫的效率是可以接受的。而如果距離是北京到杭州,用逐行謄寫的方式,就立刻顯得代價太高了,我們總不能看一行,就打個「飛的」去杭州寫下來吧。在這種情況下,還是把紙A上的信息拍個照片,【一整批的】帶到杭州去處理,明顯更簡單一些。這就是分布式資料庫特別強調吞吐調優的原因,只要是涉及到跨機的所有查詢,都必須盡可能的積攢一批後一起發送,以減少系統延遲提高帶來的不良影響。
【按需資料庫集群平滑擴縮】
DRDS允許應用按需將新的單機存儲加入或移出集群,DRDS則能夠保證應用在遷移流程中實現不停機擴容縮容。
圖4 DRDS按需進行平滑擴縮
在內部的資料庫使用實踐中,這個功能的一個最重要應用場景就是雙11了。在雙11之前,我們會將大批的機器加入到我們的資料庫集群中,抗過了雙11,這批機器就會下線。
當DRDS來到雲上,我們發現雙11其實不僅僅隻影響阿里內部的系統。在下游的各類電商輔助性系統其實也面對巨大壓力。在雙11前5天,網聚寶的熊總就找到我說,擔心撐不過雙11的流量,怕系統掛。於是我們就給他介紹了這個自動擴容的功能怎麼用,他買了一個月的資料庫,掛接在DRDS上。資料庫能力立刻翻倍,輕松抗過了雙11,也算是我印象比較深刻的一個案例了。
因為我們完全無法預測在什麼時間點系統會有爆發性的增長,而如果在這時候系統因為技術原因不能使用,就會給整個業務帶來毀滅性的影響,風口一旦錯過,就追悔莫及了。我想這就是雲計算特別強調可擴展能力的原因吧。
【小表廣播】
小表廣播也是我們在分布式資料庫領域內最常用的工具之一,他的核心目的其實都是一個——盡可能讓查詢只發生在單機。
讓我們用一個例子來說明,小表廣播的一般使用場景。
圖5 小表廣播場景
圖5中,如果我想知道買家id等於0的用戶在商城裡面買了哪些商品,我們一般會先將這兩個表join起來,然後再用where平台名=」商城」 and buyerID = 0找到符合要求的數據。然而這種join的方式,會導致大量的針對左表的網路I/O。如果要取出的數據量比較大,系統延遲會明顯上升。
這時候,為了提升性能,我們就必須要減少跨機join的網路代價。我們比較推薦應用做如下處理,將左表復制到右表的每一個庫上。這樣,join操作就由分布式join一下變回到本地join,系統的性能就有很大的提升了,如圖6所示。
圖6
【分布式事務套件】
在阿里巴巴的業務體系中存在非常多需要事務類的場景,下單減庫存,賬務,都是事務場景最集中的部分。
而我們處理事務的方法卻和傳統應用處理事務的方案不大一樣,我們非常強調事務的最終一致性和非同步化。利用這種方式,能夠極大地降低分布式系統中鎖持有的時間,從而極大地提升系統性能。
圖7 DRDS分布式事務解決套件
這種處理機制,是我們分布式事務能夠以極低成本大量運行的最核心法門。在DRDS平台內,我們將這些方案產品化,為了DRDS的分布式事務解決套件。
利用他們,能夠讓你以比較低的成本,實現低延遲,高吞吐的分布式事務場景。
DRDS的未來
阿里分布式資料庫服務DRDS上線至今,大家對這款產品的熱情超出了我們的預期,短短半年內已經有幾千個申請。
盡管還在公測期,但是大家就已經把關繫到身家性命的寶貴在線數據業務放到了DRDS上,我能夠感受到這份沉甸甸的信賴,也不想辜負這份信賴。
經過阿里內部幾千個應用的不斷歷練,DRDS已經積累出一套強大的分布式SQL執行引擎和和一整套分布式事務套件。
我也相信,這些積累能夠讓用戶在基本保持單機資料庫的使用習慣的前提下,享受到分布式資料庫高性能可擴展的好處。
在平時的DRDS支持過程中,我面對最多的問題就是,DRDS能不能夠在不改變任何原有業務邏輯和代碼的前提下,實現可自由伸縮和擴展呢?十分可惜的是,關系資料庫發展至今,還沒有找到既能保留傳統資料庫一切特性,又能實現高性能可擴展資料庫的方法。
然而,雖不能至,吾心嚮往之!我們會以「可擴展,高性能」為產品核心,堅定地走在追尋聖杯的路上,並堅信最終我們一定能夠找尋到它神聖的所在。
作者簡介:王晶昱,花名沈詢,阿里巴巴資深技術專家。目前主要負責阿里的分布式資料庫DRDS(TDDL)和阿里的分布式消息服務ONS(RocketMQ/Notify)兩個系統。
❸ DRDS有用過的嗎
分布式關系型資料庫服務(Distributed Relational Database Service,簡稱 DRDS)是阿里巴巴致力於解決單機資料庫服務瓶頸問題而自主研發推出的分布式資料庫產品。DRDS 高度兼容 MySQL 協議和語法,支持自動化水平拆分、在線平滑擴縮容、彈性擴展、透明讀寫分離,具備資料庫全生命周期運維管控能力。DRDS 前身為淘寶 TDDL,是近千核心應用首選組件。
你可以去阿里雲的官方文檔去看一下啊:網頁鏈接
要買的話確實很貴,不過可以使用阿里雲的優惠券
❹ 平安科技的資料庫有什麼特點
平安科技資料庫產品種類非常多樣化,從RDBMS到NoSQL到NewSQL,目前在使用的資料庫有Oracle、PostgreSQL、MongoDB、MySQL、SQL Server、TimesTen、Redis、TiDB、InfuxDB、Neo4j、DRDS等。根據不同的業務場景,匹配最適合的資料庫產品,給你帶來全球財務500強的金融級數據管理體驗!
❺ 阿里巴巴採用自己研發的分布式資料庫系統叫什麼,它有哪些特點
上層的是分布式資料庫分表分庫中間件,負責和上層應用打交道,對應用可表現為一個獨立的資料庫,而屏蔽底層復雜的系統細節。分布式資料庫中間件除了基本的分表分庫功能,還可以豐富一下,比如講讀寫分離或者水平擴容功能集成在一起,或者比如讀寫分離本身也可以作為一個獨立的中間件。(Cobar, MyCAT, TDDL, DRDS, DDB)
增量數據訂閱和消費,用戶對資料庫操作,比如DML, DCL, DDL等,這些操作會產生增量數據,下層應用可以通過監測這些增量數據進行相應的處理。典型代表Canal,根據MySQL的binlog實現。也有針對Oracle(redolog)的增量數據訂閱與消費的中間件。(Canal, Erosa)
資料庫同步中間件涉及資料庫之間的同步操作,可以實現跨(同)機房同步以及異地容災備份、分流等功能。可以涉及多種資料庫,處理之後的數據也可以以多種形式存儲。(Otter, JingoBus, DRC)
資料庫與資料庫之間會有數據遷移(同步)的動作,同款數據同步原理比較簡單,比如MySQL主備同步,只要在資料庫層進行相應的配置既可,但是跨資料庫同步就比較復雜了,比如Oracle->MySQL. 數據遷移一般包括三個步驟:全量復制,將原資料庫的數據全量遷移到新資料庫,在這遷移的過程中也會有新的數據產生;增量同步,對新產生的數據進行同步,並持續一段時間以保證數據同步;原庫停寫,切換新庫。將「跨資料庫」這個含義擴大一下——「跨數據源」,比如HDFS, HBase, FTP等都可以相互同步。(yugong, DataX)
❻ 什麼是中間件
中間件(MiddleWare)從字面上解釋就是「處於中間的軟體」,盡管程序員之外的讀者會感覺陌生,但其實早在1990年,中間件就作為網路應用的基礎設施出現了。誕生於貝爾實驗室的Tuxedo系統就是最早用於交易系統的中間件。中間件的出現解決了異構分布網路環境下軟體系統的通信、互操作、協同、事務、安全等共性問題。因為其在系統中的重要性,中間件與操作系統、資料庫被稱為系統軟體的三駕馬車。
阿里的中間件主要有包含這么幾個:
分布式關系型資料庫DRDS_水平拆分 做資料庫擴展性的
消息隊列MQ 是做消息的中間件
企業級分布式應用服務EDAS 做分布式服務的
還有一些其他的中間件,比如配置服務 緩存 等等,也都會放在中間件里
❼ 有了解和用過思極有容資料庫的么
有幸用過,一款比較低調的資料庫產品,類同於GreatDB,但是怎麼說,如果和傳統國產資料庫廠家,例如達夢、人大、神通等相比,思極有容資料庫採用原生分布式架構,在集群擴展性和大規模部署後集群性能方面有較大優勢;同時思極有容資料庫 完全兼容和繼承MySQL生態,非常的易用易適配,可以無縫銜接大量第三方數據處理組件,有巨大的生態優勢。
和開源資料庫MySQL/PostgreSQL相比,思極有容資料庫 具備強大的擴展能力和准線性的性能提升優勢,在數據存儲容量、事務吞吐性能、資料庫原生高可用方面具備碾壓優勢。
和新興分布式資料庫廠家,例如阿里DRDS、騰訊TDSQL等相比,思極有容資料庫具備更加完備的SQL語法支持,具備更加強大的事務吞吐性能,對應用適配更加友好。
所以,總體來說還是OK的!
❽ 數夢工場的DTBase資料庫產品是硬體還是軟體
有硬體也有軟體。專業點說就是:可以是集群也可以是一體機形態。
DTBase數夢資料庫系統定位在為政府、軍工、電信、金融、保險、電力、衛生、教育、工業等行業提供整體雲資料庫解決方案。
我個人認為比較有特點的地方有3個地方:1. 分布式,可線性擴展到128個計算節點、應用無感知。2. DBaaS,快速部署、自動化統一運維。3. 多引擎,多資料庫全兼容•Oracle兼容度大於95%。當然,對於一個新進入這個市場的產品而言,它最大的背書來自阿里雲,因為DTBase的內核是基於阿里雲的RDS/DRDS。
具體的不羅嗦,可以到數夢工場的官網自己查看。http://dtdream.com/dtbs.html
❾ 如何使用DRDS突破單個資料庫瓶頸
你好 資料庫的語句執行效率,則要具體測試了,一般表設計合理是關鍵 你的採納是我前進的動力,還有不懂的地方,請繼續「追問」。 如你還有別的問題,可另外向我求助;答題不易,互相理解,互相幫助。