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