你好,游客 登錄
背景:
閱讀新聞

六合图库app产品介绍:亞馬遜的DynamoDB如何幫助數據庫重塑?

[日期:2015-06-17] 來源: 51CTO  作者: [字體: ]

六合图库118万众图库 www.xorsm.icu   在亞馬遜網站的早期階段,SQL數據庫沒有達到其要求,于是該公司開發出了DynamoDB;而且在這個過程中,幫助開創了NoSQL市場。

漲知識:亞馬遜的DynamoDB如何幫助數據庫重塑?

  DynamoDB是一款在亞馬遜網絡服務公司的云環境下托管的NoSQL數據庫。

  每一個知名的電子商務網站后面都離不開數據庫;而在2000年初,亞馬遜網站的數據庫未能跟上該公司的業務發展需要。

  問題的一方面在于,亞馬遜當時并不是只有一個數據庫――它依賴一系列數據庫,每個數據庫都有各自的職責。隨著公司逐漸成為一家年收入100億美元的大公司,其SQL數據庫的數量和大小都急劇增長,管理起來變得更困難重重。到2004年節假日購物高峰期,服務停運事件變得更常見了,很大程度上歸咎于SQL數據庫不堪重負。

  看來哪里需要有所變化。

  但亞馬遜不是在公司外面尋求解決方案,而是自行開發了數據庫管理系統。那是一種全新的數據庫,這種數據庫擯棄了傳統SQL數據庫的規則,能夠不斷向上擴展。2007年,亞馬遜向世人公布了其研發成果:首席技術官Werner Vogels及其團隊發布了一篇題為《Dynamo:亞馬遜高可用性的鍵值存儲系統》的文章(//www.allthingsdistributed.com/files/amazon-dynamo-sosp2007.pdf)。一些人稱之為由此孕育了NoSQL數據庫市場。

  SQL存在的問題

  關系數據庫問世至今已有幾十年,最常使用SQL編程語言,它最適合用整潔的表來組織管理數據,并對它們執行查詢操作。它們的成功無可爭議:知名調研機構加特納集團估計,SQL數據庫市場的產值達到300億美元。

  但在2000年至2005年,亞馬遜、雅虎和谷歌等公司面臨的數據需求是SQL數據庫根本無法很好滿足的。(不妨向各位普及一點計算機科學知識,CAP定理表明,像大型數據庫這種分布式系統不可能同時具有一致性、可用性和容錯性。相比速度和靈活性,SQL數據庫更注重一致性,因而讓它們很適合管理財務交易之類的核心企業數據,但無法同樣有效地管理其他類型的任務。)

  以亞馬遜的網上購物車服務為例。顧客瀏覽這家電子商務網站后,將商品放入到虛擬購物車里面,商品保存起來,可能以后購買。亞馬遜需要購物車里面的數據對顧客來說總是可用;丟失了購物車數據無異于丟失了銷售機會。但它未必需要全球各地的每個數據庫節點都擁有每個顧客的最新購物車信息。SQL/關系系統要耗費大量的計算資源讓數據在分布式系統上確保一致性,而不是確保信息總是可用、隨時可以提供給顧客。

  亞馬遜的Dynamo、乃至普通NoSQL數據庫的基本原則之一就是,它們犧牲數據一致性以換取可用性。亞馬遜的優先事項是,保持購物車數據,并且非常迅速地提供給顧客。另外,系統必須能夠靈活擴展,以滿足亞馬遜快速增長的需要。Dynamo解決了所有這些問題:它可以跨節點備份數據,能處理大量負載,同時保持快速可靠的性能。

  亞馬遜DynamoDB的技術主管Khawaja Shams解釋:“它是早期的NoSQL數據庫之一。我們放棄了一致性和非常嚴格的查詢語義,以換取可預測的性能、耐久性和擴展性――那些是Dynamo超擅長的幾個方面。”

  DynamoDB是一款云端數據庫

  Dynamo為亞馬遜解決了SQL數據庫解決不了的許多問題。但是在2005年至2010年,它仍然不完美。Dynamo聲稱擁有亞馬遜工程師需要的功能,但是需要大量資源來安裝和管理。

  不過事實證明,2012年引入的DynamoDB是一個重要的升級版。亞馬遜內部使用的主機托管版數據庫駐留在亞馬遜網絡服務公司的基礎設施即服務(IaaS)云中,受到了全面管理。亞馬遜工程師和AWS客戶并不配置數據庫,也不管理數據的存儲。他們要做的就是向DynamoDB請求所需的吞吐量??突啃∈備?.0065美元,就可以享用向數據庫寫入約36000次的服務(這意味著每小時導入到數據庫的數據量),另外每月存儲在系統中的每GB數據收費0.25美元。如果應用程序需要更多的計算容量,那么只要點擊幾下鼠標,數據庫就會將工作負載分攤到更多的節點上。

  眾所周知,AWS在DynamoDB及其他許多基礎設施即服務產品在底層如何運行這方面很不透明,不過這段促銷視頻(https://www.youtube.com/watch?v=oz-7wJJ9HZ0)表明該服務采用固態硬盤,特別指出如果客戶使用DynamoDB,其數據分散在多個可用區/數據中心,確保數據可用性。

  弗雷斯特研究公司的首席分析師Noel Yuhanna稱之為是一種“功能相當強大”的數據庫,認為它躋身于頂尖的NoSQL數據庫之列,對鍵值存儲使用場合而言更是如此。

  DynamoDB自發布以來已取得了長足發展。雖然AWS不愿公布客戶方面的數字,但公司工程師James Hamilton在去年11月表示,相比2013年,DynamoDB每年處理的請求數量增長了3倍,存儲的數據量增長了4倍。盡管有如此龐大的規模和如此迅猛的發展,DynamoDB還是能在短短3至4毫秒內返回查詢結果,表現一貫出色。

  功能特性方面,DynamoDB也日趨豐富。NoSQL數據庫通常細分為幾個類別:鍵值存儲數據庫使用鍵和值來組織管理信息;文檔數據庫允許搜索整個文檔;而圖形數據庫可跟蹤數據與數據之間的關系。DynamoDB起初是一種鍵值數據庫,但去年AWS支持JSON格式文件,因而讓它搖身變成了文檔數據庫。AWS去年還為DynamoDB添加了全局二級索引(Global Secondary Indexes),這讓用戶可以擁有數據庫副本,通常一個用于生產環境,另一個用于查詢、分析或測試。

  NoSQL的使用場合和廠商格局

  NoSQL數據庫的根本優勢在于,能夠擴展,并且擁有靈活的數據庫模式,這意味著用戶可以輕松改變數據結構,并且對數據執行多個查詢。許多新的基于Web的應用程序是使用NoSQL數據庫構建的,比如社交應用程序、移動應用程序和以游戲為中心的應用程序。

  雖然亞馬遜幫助啟動了NoSQL市場,但它如今卻是幾十家試圖從NoSQL大發其財的廠商當中的一家。加特納集團的研究人員Nick Heudecker強調,盡管NoSQL吸引了許多開發人員的注意力,但它仍是一種比較新的技術。他估計,NoSQL產品的收入每年甚至不超過5億美元(這不是加特納集團的官方估計數字)。Heudecker表示,絕大多數企業客戶咨詢的對象仍是SQL數據庫。

  Huedecker表示,NoSQL的競爭對手:MongoDB、MarkLogic、Couchbase和Datastax在市場也各自牢牢站穩了腳跟,有些似乎比DynamoDB更受企業客戶的追捧。

  為云時代而生

  到底是什么因素阻礙DynamoDB在企業市場取得求進展?舉例說,它沒有內部部署版(on-premises version)――它只能在AWS的云端使用。Heudecker表示,一些用戶根本就不習慣使用基于云的數據庫。DynamoDB的競爭對手卻為用戶提供了這一機會:在本企業內部在自己的防火墻后面運行數據庫。

  而許多企業仍從SQL系統獲得很大價值。那些關系數據庫管理系統(RDBM)并沒有消失――它們仍很適合作為企業的記錄系統。

  DynamoDB可能最飽受詬病的地方在于,它只駐留在云端,但AWS的工作人員堅持認為,這恰恰也是其最大的賣點之一。

  

漲知識:亞馬遜的DynamoDB如何幫助數據庫重塑?

 

  DynamoDB技術主管Khawaja Shams表示,公司開發Dynamo之初,不得不擯棄了SQL數據庫的舊規則。

  Shams是AWS的DynamoDB技術主管,他表示,由于這項技術托管在云端,用戶沒必要為配置或提供任何硬件而操心。他表示,用戶只管使用服務,可以根據需要增加或減少服務,同時只需要為存儲空間和吞吐量付費。

  對關注安全的客戶來說,DynamoDB存儲數據時,客戶有機會加密數據。另外,DynamoDB與AWS這個市場領先的IaaS平臺(據加特納集團的魔力象限報告聲稱)集成起來,這支持眾多工具,包括Aurora和RDS等其他關系數據庫。

  Adroll隨AWS DynamoDB飛揚

  一些企業輕松自如地使用基于云的DynamoDB,營銷平臺提供商Adroll就是其中之一,該公司服務于150個國家的20000多個客戶?;舊俠此?,如果電子商務網站的訪客瀏覽產品網頁,但不購買商品,AdRoll會在該用戶訪問的另一個網站上競標廣告位,顯示他們之前考慮購買的產品。這種有效的方法可以吸引人們購買之前考慮的產品。

  不過,想弄清楚向哪些用戶投放哪些廣告對AdRoll來說確實很復雜。而更為復雜的是,AdRoll需要差不多在網頁裝入的時間里確定要不要競標廣告位、投放哪個廣告。那是首席技術官Valentino Volonghi的工作――他有大約100毫秒的時間來做決定。這點時間大半被網絡延遲給占用了,所以不用說,AdRoll需要一種可靠而高速的平臺。它還需要龐大規模:AdRoll每天考慮的廣告印象超過600億次。

  AdRoll于是使用DynamoDB和亞馬遜的簡單存儲服務(S3)來存儲關于顧客的數據,并幫助其算法確定顧客會購買哪些廣告。2013年,AdRoll在DynamoDB中有1250億項數據,如今增加到了0.5萬億項數據。它每秒向系統提出100萬次請求,數據在5毫秒內返回――每次都是如此。AdRoll將另外1700萬個文件上傳到了亞馬遜S3,占用的存儲空間超過1.5PB。

  AdRoll沒必要構建全球性的數據中心網絡來支撐其產品,這在很大程度上歸功于使用了DynamoDB。

  Volonghi說:“我們根本不用派一名工程師來運行該系統。運行規模如此龐大的數據庫確實很有意思。”

  不是每家公司都會有亞馬遜電子商務網站或AdRoll實時競標平臺的需要。但是許多公司正在不投入大量資本的前提下,設法獲得更大的規模。云讓這成為了可能,而DynamoDB就是最好的例子。

推薦 打印 | 錄入: | 閱讀:
相關新聞      
本文評論   
評論聲明
  • 尊重網上道德,遵守中華人民共和國的各項有關法律法規
  • 承擔一切因您的行為而直接或間接導致的民事或刑事法律責任
  • 本站管理人員有權保留或刪除其管轄留言中的任意內容
  • 本站有權在網站內轉載或引用您的評論
  • 參與本評論即表明您已經閱讀并接受上述條款