云計(jì)算中的分片關(guān)系數(shù)據(jù)庫(kù) |
發(fā)布時(shí)間: 2012/9/15 18:28:32 |
電子商務(wù)、社會(huì)媒體、移動(dòng)通訊以及機(jī)器到機(jī)器的數(shù)據(jù)交換都制造著TB級(jí)乃至PB級(jí)的海量數(shù)據(jù),它們是企業(yè)IT部門所必須存儲(chǔ)和處理的。在用戶處理面向云計(jì)算數(shù)據(jù)庫(kù)的數(shù)據(jù)時(shí),掌握分片最佳實(shí)踐無疑是在云規(guī)劃過程中邁出了重要的一步。 分片是指將表分割為可管理大小的磁盤文件的過程。一些高彈性的鍵值數(shù)據(jù)存儲(chǔ)(如Amazon Simple DB、Google App Engine的數(shù)據(jù)存儲(chǔ)或Windows Azure Tables)和文檔數(shù)據(jù)庫(kù)(像CouchDB、MongoDB或RavenDB)可以垂直處理表中的大數(shù)據(jù)。MongoDB內(nèi)建的自動(dòng)化分片特性,RavenDB也將在不久的將來增加該功能。自動(dòng)化分片可以自動(dòng)地平衡分片大小并消除對(duì)DevOps團(tuán)隊(duì)監(jiān)控該過程的需要。自動(dòng)化分片的MongoDB數(shù)據(jù)庫(kù)可不是想象的那么簡(jiǎn)單,正如Todd Hoff在博客中貼出的有關(guān)分片疑難的博文所述。 但仍有小部分鍵值和文檔(被稱為NoSQL)數(shù)據(jù)庫(kù)缺少傳統(tǒng)關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)(RDBMS)所提供的交易數(shù)據(jù)一致性功能。你可以在內(nèi)存、處理器或是二者上砸錢來擴(kuò)展RDBMS(垂直方向上)。你可以配置256GB的RAM到高端商用服務(wù)器,但本質(zhì)上增加更多的CPU核心卻并不實(shí)際。如果你的數(shù)據(jù)庫(kù)在云中,你會(huì)受限于內(nèi)存和處理器,而這都些取決于云供應(yīng)商的報(bào)價(jià)單。 擴(kuò)展RDBMS(水平方向上)導(dǎo)致了一個(gè)本質(zhì)上的技術(shù)挑戰(zhàn)。2009年8月,Morgan Tocker詳細(xì)地在博客中討論了為什么你不會(huì)選擇分片MySQL數(shù)據(jù)庫(kù)。Tocker認(rèn)為在遇到以下問題時(shí),你可能才需要分片數(shù)據(jù)庫(kù)表: 過大的工作集:你的工作集,由頻繁訪問和更新的數(shù)據(jù)與索引構(gòu)成,不適合RAM安裝在本地服務(wù)器,不適合硬件預(yù)算或云服務(wù)供應(yīng)商所能實(shí)現(xiàn)的硬件數(shù)量。解決方案就是分片。 過度的寫頻率:你的數(shù)據(jù)庫(kù)I/O系統(tǒng)不能處理由本地或是基于云的服務(wù)器請(qǐng)求所導(dǎo)致的每秒寫次數(shù)。解決方案是分離讀操作到讀拷貝,這可能需要分片來實(shí)現(xiàn)分散I/O負(fù)荷到多個(gè)數(shù)據(jù)庫(kù)服務(wù)器。 AWS針對(duì)MySQL的關(guān)系數(shù)據(jù)庫(kù)服務(wù)提供了其最大的High-Memory Quadruple Extra Large DB實(shí)例,該實(shí)例包含68GB的內(nèi)存和26個(gè)ECUs。這些ECU們由8個(gè)虛擬核心構(gòu)成,相當(dāng)于每3.25個(gè)ECU擁有一個(gè)核心。其售價(jià)為每小時(shí)2.60美元(每月1872美元)。根據(jù)AWS的報(bào)價(jià)單,一個(gè)ECU所提供的性能相當(dāng)于1.0-1.2 GHz 2007 Opteron或2007 Xeon處理器的性能。AWS RDS DB實(shí)例可選擇從5GB到1TB的相關(guān)存儲(chǔ)性能,價(jià)格為每GB每月0.1美元。數(shù)據(jù)傳輸費(fèi)用為每GB0.12美元的數(shù)據(jù)輸出,再加每百萬次0.1美元的I/O請(qǐng)求。Amazon從7月1日起取消了數(shù)據(jù)輸入的費(fèi)用,并降低了數(shù)據(jù)輸出的費(fèi)用。 為實(shí)現(xiàn)讀拷貝進(jìn)而實(shí)現(xiàn)高可用的商用服務(wù)器,你可能還需要額外的存儲(chǔ)費(fèi)用。幸運(yùn)的是,ScaleBase提供了第三方Database Load Balancer 應(yīng)用來自動(dòng)化分片,并針對(duì)運(yùn)行在Amazon EC2 或Amazon RDS的MySQL實(shí)現(xiàn)讀、寫分離。 2009年8月在發(fā)布的“分片的麻煩事兒”博文中,Simon Munro總體上介紹了關(guān)系據(jù)庫(kù)的分片問題,特別討論了微軟SQL Server 2008的SQL Azure定制化云實(shí)現(xiàn)。當(dāng)時(shí),SQL Azure的最大數(shù)據(jù)庫(kù)大小僅為10GB,現(xiàn)如今已是50GB。 微軟Azure Application Platform團(tuán)隊(duì)的新公司副總裁Scott Guthrie在今年6月9日舉行的Norwegian Developer Conference(NDC)2011大會(huì)上發(fā)言: “……我們同樣將自動(dòng)化分片作為SQL Azure的一部分,這意味著從擴(kuò)展前景來看,我們可以處理超高負(fù)荷,并可為用戶實(shí)現(xiàn)任何類型的負(fù)載平衡和擴(kuò)展工作。” 如今,SQL Azure對(duì)數(shù)據(jù)庫(kù)的支持雖為50GB的關(guān)系型存儲(chǔ),但你卻可以擁有任意數(shù)量的數(shù)據(jù)庫(kù)。 通過SQL Azure Federations自動(dòng)化分片目前尚處于技術(shù)預(yù)覽(Community Technical Preview)階段,從Guthrie的發(fā)言還很難斷定分片是否有望“支持百GB或TB級(jí)” 。此外,SQL Azure Federations還承諾可以出色地完成模式遷移。SQL Azure包含一個(gè)主要和兩個(gè)次要的針對(duì)高可用性的備份,服務(wù)是即付即用的,1GB到5GB的(Web版)每GB每月9.99美元,以及10GB到50GB的(商業(yè)數(shù)據(jù)庫(kù))每10GB每月99.99美元。每月的固定費(fèi)用不包括數(shù)據(jù)傳輸費(fèi)用,在北美、歐洲的數(shù)據(jù)中心每GB輸出費(fèi)用為0.15美元,在亞洲每GB輸出費(fèi)用為0.2美元。微軟從7月1日起取消了數(shù)據(jù)輸入費(fèi)用。與Amazon RDS不同,你不會(huì)產(chǎn)生SQL Azure的I/O費(fèi)用。 微軟還沒有透露有關(guān)SQL Azure的CPU和內(nèi)存說明,但是公司表示它們與數(shù)據(jù)庫(kù)的大小相當(dāng)。你可以在Cihan Biyikoglu的博客上獲得有關(guān)今年底SQL Azure Federations商業(yè)版發(fā)布的日程。 Google在其5月的I/O 2011會(huì)議上宣布,下半年商業(yè)發(fā)布的Google App Engine Beta版將結(jié)合RDBMS,并將與商業(yè)版GAE一同包含在內(nèi),但公司沒有透露有關(guān)性能和價(jià)格方面的細(xì)節(jié)。 除非Google像變戲法似的實(shí)現(xiàn)RDBMS的高擴(kuò)展性,否則還是準(zhǔn)備好分片關(guān)系數(shù)據(jù)庫(kù)才能處理好云計(jì)算中的大數(shù)據(jù)。 本文出自:億恩科技【mszdt.com】 服務(wù)器租用/服務(wù)器托管中國(guó)五強(qiáng)!虛擬主機(jī)域名注冊(cè)頂級(jí)提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM] |