官术网_书友最值得收藏!

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,進一步開放存儲服務和標準。屆時,持久層不一定需要數據庫。當然,這也不再屬于我們本章討論范疇。

主站蜘蛛池模板: 肃宁县| 永德县| 洪洞县| 金寨县| 邳州市| 忻城县| 鄂尔多斯市| 交城县| 马鞍山市| 手机| 宁阳县| 靖宇县| 沈丘县| 泰安市| 湛江市| 西昌市| 精河县| 渝北区| 临西县| 科尔| 塔城市| 靖边县| 名山县| 桂平市| 定安县| 余庆县| 太康县| 郯城县| 集贤县| 蒙自县| 望江县| 赞皇县| 麟游县| 乌兰浩特市| 蒙阴县| 怀安县| 布拖县| 阳谷县| 霍州市| 宁陵县| 深州市|