任何機器都會有物理上的限制:內存容量、硬盤容量、處理器速度等等,我們需要在這些硬件的限制和性能之間做出取舍,比如內存的讀取速度比硬盤快得多,因此內存數據庫比硬盤數據庫性能好,但是內存為2GB的機器不可能將大小為100GB的數據全部放入內存中,也許內存大小為128GB的機器能夠做到,但是數據增加到200GB時就無能為力了。
數據不斷增長造成單機系統性能不斷下降,即使不斷提升硬件配置也難以跟上數據的增長速度。然而,當今主流的計算機硬件比較便宜而且可以擴展,現在購置八臺8內核、128GB內存的機器比購置一臺64內核、TB級別內存的服務器劃算得多,而且還可以增加或減少機器來應對將來的變化。這種分布式架構策略對于海量數據來說是比較適合的,因此,許多海量數據系統選擇將數據放在多個機器中,但也帶來了許多單機系統不曾有的問題。
云數據管理指的是“數據庫即服務”,用戶無須在本機安裝數據庫管理軟件,也不需要搭建自己的數據管理集群,而只需要使用服務提供商提供的數據庫服務。比較著名的服務有Amazon提供的關系型數據庫服務RDS和非關系型數據庫服務SimpleDB。
云數據管理系統的優勢就是可以彈性地分配資源,用戶只需為所使用的資源付費即可。這使得用戶對資源的需求可以動態擴展或縮減。例如,需要對大小為1TB和100 GB的兩個數據集分別進行分析,若在彈性伸縮的模式下,我們可以在云中分配100個節點處理1TB的數據集,然后將集群縮減到10個節點來處理100 GB的數據集。假設數據處理系統是線性擴展的,那么兩個處理任務大約在相同的時間內完成。這樣,彈性伸縮的能力加上現用現付的商業模式會提供較高的性價比。
云數據管理系統的主要優勢有:
透明性。用戶無須考慮服務實現所使用的硬件和軟件,利用其提供的接口使用其服務即可。
可伸縮性。伸縮性是云系統提供的重要特性,用戶根據自己的需求申請各種資源即可,而且需求還可以動態變化。
高性價比。用戶無須購買自己的基礎設施和軟件,節約了硬件費用及軟件版權費用。
云數據管理系統也有不足的地方,如用戶隱私和數據安全問題、服務可靠性問題、服務質量保證問題等等。