- 企業架構與IT戰略規劃設計教程
- 郭樹行
- 1976字
- 2019-10-31 11:21:24
3.3 數據分布
在對企業的數據分類有一個清晰的把握之后,還需要了解IT系統如何來產生與利用這些數據。這就要涉及數據在系統中如何分布的問題。
數據分布指分布式數據庫中數據根據需要劃分成邏輯片段,按某種策略將這些片段分散地存儲在各個節點上。近年來,云計算成為舉世矚目的成果。面對海量數據的管理,構建適合企業實情的分布式數據庫很有必要。
那么,什么是分布式數據庫呢?一個獲得人們普遍承認的定義為:分布式數據庫是由一組這樣的數據組成,它們在物理上分布在計算機網絡的不同節點(亦稱場地)上,邏輯上屬于同一個系統。
分布式數據庫具有以下特點。
1.數據獨立性
包括邏輯獨立性和物理獨立性兩方面,即用戶程序與數據的全局邏輯結構及數據的存儲結構無關。
2.集中與自治相結合的控制結構
數據的共享有兩個層次:全局共享和局部共享;相應的控制機構也有兩個層次:集中和自治。為保證數據庫的安全性和完整性,對全局共享數據庫采取集中控制,并由DBA負責監督和維護系統的正常運行;同時各局部DBMS也可以獨立管理局部數據庫,實現自治。
3.適當增加數據冗余度
在不同場地存儲同一數據的多個副本,進而做到方便檢索、提高系統查詢速度、可靠性和可用性,但也增加了系統維護的代價。
4.全局的一致性、可串行性和可恢復性
便利全局事務處理,但相關技術較集中式數據庫系統復雜性上升,難度加大。
3.3.1 數據分布的策略
目前,數據分布的基本策略分為集中式、分割式、復制式和混合式。
(1)集中式。數據片段全部安放在同一節點上。
評價:這種分布策略跟集中式數據庫沒有差別。
(2)分割式。所有數據只有一份,被分割成若干片段,每個片段被指派在某個特定節點上。
評價:可充分利用各節點上的存儲設備,當部分節點出現故障時其余部分仍可運行,但是當節點被破壞后沒有數據副本,因此也不能進行恢復。
(3)復制式。每個節點上都有一個完整的數據副本。
評價:可靠性高,響應速度快,數據庫恢復也較容易,但是要保持每個節點上數據的同步修改,需要付出高昂的通信代價;另外,系統數據容量只是所有節點中容量最小的一個。
(4)混合式。將數據分為若干子集,每個子集安置在不同的節點上,每個子集都在不同的節點存儲有副本,但每個節點均不存儲數據庫所有數據。
評價:兼顧了分割式與復制式的優點,但也包括了兩者的復雜性。
3.3.2 數據分布的兩個原則
為了確保該數據庫的可靠性,并盡可能的減少數據庫使用對網絡通信資源的消耗,在對數據庫數據分布設計時應滿足以下兩個原則。
(1)所有數據應有4個副本。
(2)應有1個副本跨地域存儲。
3.3.3 數據分布的應用
面對高速增長的海量數據和不斷多樣化的數據格式與用戶要求,老牌的關系數據庫已無法滿足現實需求。Google的Bigtable、Amazon的Dynamo系統,Hadoop的Hbase以及微軟的LiveMesh為代表的云端數據庫涌現出來。
3.3.4 案例分析:淘寶公司數據庫發展史
淘寶網誕生于2003年5月,是亞洲最大的網絡零售商圈,目前其業務跨越C2C(個人對個人)、B2C(商家對個人)兩大部分。國內著名互聯網分析機構艾瑞咨詢調查顯示,淘寶網占據國內電子商務80%以上的市場份額。
1.創立期:V1.0最早的淘寶網
成立初期,使用LAMP(Linux、Apache、MySQL和PHP)架構,如圖3-8所示。業界流行的免費開源組合。當時使用的MySQL數據庫主要存儲用戶、交易和商品信息,數據量少,表小;結構簡單,但符合當時需求。

圖3-8 LAMP架構
2.成長期:V2.0持續發展
原有的MySQL數據已經無法滿足需求,出于對穩定性和高性能的考慮,淘寶網從2004年起建立集中式數據架構。采用IBM小型機+EMC存儲技術的方式,配合Oracle數據庫和Scale up擴展方式。雖然較初期有所進步,運轉速度加快,但存在多應用機器對應有限鏈接池、單點擴展性差的明顯缺陷,也難以滿足更高的數據存儲要求。
3.繁榮期:V3.0垂直擴展
2008年,淘寶網業務迅猛發展,單臺小型機達到瓶頸,開始進入大規模垂直拆分階段。建立松耦合、服務導向的架構體系(SOA),按用戶中心、商品中心等主題設置子應用,減少應用間的耦合。每個業務都有獨立的應用與數據庫環境,并具備單獨部署與擴展的能力。同時,非核心數據也從Oracle遷往MySQL,節省了費用。該版架構缺點是硬件成本和Oracle license費用高昂,并存在可怕的擴展預算。
4.成熟期:V4.0水平擴展
隨著淘寶網的不斷發展,系統壓力增長遠遠超過2倍/年,新業務不斷上線。再好的硬件也達到了瓶頸,于是淘寶提出“三去”策略,即去Oracle、去小型機、去高端存儲。充分運用分布式數據庫架構體系的思想,構建水平擴展構架體系,采取獨特的消息中間件同步方式(notify),如圖3-9和圖3-10所示,緩解主庫的壓力,具有低成本、可擴展、易維護的特點,也解決了“單庫天花板問題”。

圖3-10 水平擴展之水平拆分
同時,淘寶重視分布式環境中的監管問題,做到工具自動化,節省人力資源;報警,了解最新狀況;標準化,減少錯誤發生。
5.未來:云計算與平臺服務
淘寶目前考慮借鑒Amazon的S3、Ec2、Simple Db,進一步開放存儲服務和標準。屆時,持久層不一定需要數據庫。當然,這也不再屬于我們本章討論范疇。