當前位置:
首頁 > 最新 > 亞馬遜CTO:我們為何要提供這麼多的資料庫?

亞馬遜CTO:我們為何要提供這麼多的資料庫?

【IT168 專稿】6月21日,亞馬遜(Amazon.com)首席技術官(CTO) Werner Vogels發表博文,對亞馬遜為何要在資料庫領域重金投入,並打造如此之多的資料庫產品的原因進行了解析,並列舉了大量的案例。

在今年的AWS峰會上,AWS又發布了一系列新的服務,毫無疑問,資料庫服務絕對是AWS投入的重點之一。雖然沒有像去年11月份的AWS re:Invent大會上那麼豐富,但依然佔有很大比重。

從下圖可以看到,AWS 所提供的資料庫服務品類豐富程度。

6月21日,亞馬遜 CTO Werner Vogels發表博文,對亞馬遜為何要在資料庫領域重金投入,並打造如此之多的資料庫產品的原因進行了解析。

此前,他在就曾表示,數據是大部分企業業務的核心,而使業務獨特的原因所在,是所擁有的數據、數據的質量以及如何利用這些數據,這使得數據存儲越來越重要,寶藏就在資料庫中。兩年來,AWS通過其資料庫遷移服務遷移了超過60000個資料庫。

他指出,亞馬遜提供眾多資料庫產品供用戶選擇,是因為一刀切的資料庫時代已經成為過去式,儘管目前關係資料庫保持活躍,並且仍然適用於許多應用場景,但針對鍵值,文檔,圖形,內存和搜索等應用場景的專用資料庫卻能更高效的解決問題,更為重要的是,客戶體驗會更好。

以下為Werner Vogels博客原文:

我經常被人問到一個問題,為什麼亞馬遜要提供這麼多的資料庫產品?對我來說,答案很簡單,開發者希望他們的應用程序能夠很好的被構建和有效擴展,為此,他們需要能夠在同一應用程序中使用多個資料庫和數據模型。

很少有一個資料庫能夠滿足多個不同應用場景的需要,一刀切的資料庫時代已經過去,開發人員正在使用大量的專用資料庫來構建高度分散式的應用程序。開發人員正在做他們最擅長的事情:將複雜的應用程序分解成更小的部分,然後選擇解決每個問題的最佳工具。工作中的最佳工具通常因應用場景而異。

過數十年來,因為唯一的資料庫選擇只有關係資料庫,無論應用程序中的數據類型或功能如何,數據都被建模為關係數據,而不是應用場景驅動對資料庫的需求。關係資料庫是否專為非規範化模式構建,並在資料庫中強制引用完整性?當然,最關鍵的一點是,並非所有應用程序的數據模型或應用場景都與關係模型匹配。

正如我之前談到的那樣,我們構建Amazon DynamoDB的原因之一,是因為當時亞馬遜正在突破商業資料庫的極限,我們無法維持不斷增長的亞馬遜業務所需要的可用性,可擴展性和性能需求。我們發現大約70%的操作是鍵值查找,其中僅使用主鍵並返回單行。在不需要引用完整性和事務的情況下,我們意識到,使用不同類型的資料庫可以更好的服務於這些訪問模式。此外,隨著Amazon.com的增長和規模的擴大,無限的橫向擴展需要成為一個關鍵的設計點 - 擴大規模根本不是一種選擇。這最終導致了DynamoDB,這是一種非關係資料庫服務,構建的目的是擴展關係資料庫的範圍。

但這並不意味著關係資料庫不能在當今的開發中不可用,恰恰相反。事實上,我們的客戶已經證實這一點,因為Amazon Aurora仍然是AWS歷史上增長最快的服務。我們在Amazon.com網站上看到的是超出其預期目的使用資料庫。這篇博文的核心就是學習 - 資料庫是為了某個目的而構建,將應用場景與資料庫相匹配將有助於您更快地編寫高性能,可擴展且功能更強大的應用程序。

專用資料庫

世界仍在變化,非關係資料庫的種類不斷增加。我們越來越多地看到客戶想要構建需要各種數據模型的互聯網級應用程序。針對這些需求,開發人員現在可以選擇關係,鍵值,文檔,圖形,內存和搜索資料庫。每個資料庫都解決了一個特定問題或一系列問題。

讓我們仔細看看每個資料庫的目的:

· 關係:關係資料庫是自描述的,因為它使開發人員能夠定義資料庫的架構以及資料庫中行和表之間的關係和約束。開發人員依賴關係資料庫的功能(而不是應用程序代碼)來強制執行架構並保持資料庫中數據的引用完整性。關係資料庫的典型應用場景包括Web和移動應用程序,企業應用程序、在線遊戲。Airbnb是使用Amazon Aurora構建的高性能和可伸縮應用程序的一個很好的例子。Aurora為Airbnb提供了一種完全管理,可伸縮且功能強大的服務來運行他們的MySQL工作負載。

· 鍵值:鍵值資料庫具有高度可分區性,並允許在其他類型的資料庫無法實現的級別上進行水平擴展。諸如遊戲,廣告技術和物聯網等使用案例特別適合於鍵值數據模型,這種模型中,訪問模式需要低延遲的get/put已知的鍵值。DynamoDB的目的是為任何規模的工作負載提供一致的單位毫秒級延遲。這種一致的性能是Snapchat Stories功能(包括Snapchat的最大存儲寫入工作負載)轉移到DynamoDB的重要組成部分。

· 文檔:文檔資料庫對於開發人員來說是很直觀的,因為應用層中的數據通常表示為JSON文檔。開發人員可以使用他們在應用程序代碼中使用的相同文檔模型格式來保存數據。Tinder是使用DynamoDB的靈活模式模型來實現開發人員效率的一個示例。

· 圖形:圖形資料庫的目的,是使構建和運行具有高度連接數據集的應用程序變得容易。圖形資料庫的典型應用場景包括社交網路,推薦引擎,欺詐檢測和知識圖譜。Amazon Neptune是一個完全託管的圖形資料庫服務。Neptune同時支持屬性圖模型和資源描述框架(RDF),可選擇兩個圖形API:TinkerPop和RDF / SPARQL。目前Neptune的用戶正在建立知識圖,提供遊戲內推薦建議以及檢測欺詐行為。例如,Thomson Reuters正在幫助他們的客戶通過使用Neptune來駕馭複雜的全球稅收政策和法規網路。

· 內存:內存資料庫在金融服務,電子商務,網路和移動應用程序都有應用場景,如排行榜,會話存儲和實時分析,這些場景需要微秒級的響應時間,並且隨時可能出現大量流量高峰。我們提供Memcached和Redis的Amazon ElastiCache,以服務於低延遲,高吞吐量的工作負載,如麥當勞,而基於磁碟的數據存儲是無法滿足這些工作負載的。Amazon DynamoDB加速器(DAX)是專用數據存儲的另一個示例。DAX的構建是為了讓DynamoDB的讀取速度提高一個數量級。

· 搜索:許多應用程序輸出日誌,以幫助開發人員解決問題。Amazon Elasticsearch Service(Amazon ES)旨在通過索引,匯總和搜索半結構化日誌和指標來提供機器生成數據的近實時可視化和分析。Amazon ES還是一個強大的、高性能的全文搜索引擎。Expedia正在使用150多種Amazon ES域、30 TB的數據和300億個文檔,用於各種關鍵任務應用場景,從操作監控和故障排除到分散式應用程序堆棧跟蹤和定價優化。

用專用資料庫構建應用程序

開發人員正在構建高度分散式和解耦的應用程序,而AWS使開發人員能夠通過使用多個AWS服務構建這些雲本地應用程序。

例如 Expedia,雖然Expedia的網站看起來就像是一個單一的應用程序,但在後台,Expedia.com由許多組件組成,每個組件都有特定的功能。通過將一個應用程序(如Expedia.com)分解為具有特定任務的多個組件(例如:微服務,容器和AWS Lambda函數),開發人員可以通過增加規模和提高性能,減少操作,提高部署靈活性,並使不同的組件能夠獨立的演化來提高生產率。在構建應用程序時,開發人員可以將每個應用場景與最適合需要的資料庫進行匹配。

為了實現這一點,請看看我們的一些客戶正在使用多種不同類型的資料庫來構建他們的應用程序:

· 作為個性化搜索的一部分,Airbnb使用DynamoDB來存儲用戶的搜索歷史記錄以進行快速查找。Airbnb還使用ElastiCache在內存中存儲會話狀態以加快網站呈現速度,並將Amazon RDS上的MySQL 用作其主要事務資料庫。

· Capital One 使用Amazon RDS存儲狀態管理的事務數據,Amazon Redshift存儲為需要聚合分析的Web日誌,並使用DynamoDB存儲用戶數據,以便客戶可以使用Capital One應用程序快速訪問他們的信息。

· Expedia 通過使用Aurora,Amazon Redshift和ElastiCache構建了一個實時數據倉庫,用於內部市場分析和市場定價。數據倉庫使用ElastiCache for Redis執行 multistream 聯合和自聯接, 並帶有一個24小時回望窗口。數據倉庫還將處理後的數據直接保存到Aurora MySQL和Amazon Redshift中,以支持操作和分析查詢。

· Zynga 將Zynga撲克資料庫從MySQL遷移到DynamoDB,獲得了巨大的性能提升。過去需要30秒的查詢現在只需要一秒鐘。Zynga還使用ElastiCache(Memcached和Redis)來代替它們自己管理的內存緩存。Aurora的自動化和無伺服器可擴展性使 Zynga 成為使用關係資料庫的新服務的首選。

· 強生公司使用Amazon RDS,DynamoDB和Amazon Redshift來最大限度地減少花費在收集和配置數據上的時間和精力,並允許快速推導洞察力。AWS資料庫服務正在幫助強生改善醫生的工作流程,優化供應鏈並發現新葯。

就像他們不再編寫單一應用程序一樣,開發人員也不再使用單個資料庫來處理應用程序中的所有應用場景 - 他們正在使用多個資料庫。

儘管關係資料庫保持活躍,並且仍然適用於許多應用場景,但針對鍵值,文檔,圖形,內存和搜索應用場景的專用資料庫可以幫助您優化功能,性能和規模,更重要的是,您的客戶體驗會更好。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 IT168科技 的精彩文章:

軟硬兼備 戴爾更新VDI Complete解決方案
H3C S5120-28P-SI交換機「上海天哲」售2320元

TAG:IT168科技 |