• <strike id="fdgpu"><input id="fdgpu"></input></strike>
    <label id="fdgpu"></label>
    <s id="fdgpu"><code id="fdgpu"></code></s>

  • <label id="fdgpu"></label>
  • <span id="fdgpu"><u id="fdgpu"></u></span>

    <s id="fdgpu"><sub id="fdgpu"></sub></s>

    云計算時(shí)代對數據庫技術(shù)提出新要求

    2014-07-25 10:24:01   作者:   來(lái)源:電信技術(shù)   評論:0  點(diǎn)擊:


      隨著(zhù)云計算時(shí)代的到來(lái),各種類(lèi)型的互聯(lián)網(wǎng)應用層出不窮,對與此相關(guān)的數據模型、分布式架構、數據存儲等數據庫相關(guān)的技術(shù)指標也提出了新的要求。雖然傳統的關(guān)系型數據庫已在數據存儲方面占據了不可動(dòng)搖的地位,但由于其天生的限制,已經(jīng)越來(lái)越無(wú)法滿(mǎn)足云計算時(shí)代對數據擴展、讀寫(xiě)速度、支撐容量以及建設和運營(yíng)成本的要求。云計算時(shí)代對數據庫技術(shù)提出了新的需求,主要表現在以下幾個(gè)方面。
     

    • 海量數據處理:對類(lèi)似搜索引擎和電信運營(yíng)商級的經(jīng)營(yíng)分析系統這樣大型的應用而言,需要能夠處理PB級的數據,同時(shí)應對百萬(wàn)級的流量。
    • 大規模集群管理:分布式應用可以更加簡(jiǎn)單地部署、應用和管理。
    • 低延遲讀寫(xiě)速度:快速的響應速度能夠極大地提高用戶(hù)的滿(mǎn)意度。
    • 建設及運營(yíng)成本:云計算應用的基本要求是希望在硬件成本、軟件成本以及人力成本方面都有大幅度的降低。

      關(guān)系型數據庫的劣勢分析

      隨著(zhù)Web2.0的發(fā)展,傳統的關(guān)系型數據庫在應對超大規模和高并發(fā)的SNS類(lèi)型的網(wǎng)站方面暴露了許多難以克服的問(wèn)題,主要表現在以下方面。

      (1)高并發(fā)讀寫(xiě)速度慢

      這種情況主要發(fā)生在數據量達到一定規模時(shí),由于關(guān)系型數據庫的系統邏輯非常復雜,使得其非常容易發(fā)生死鎖等并發(fā)問(wèn)題,導致其讀寫(xiě)速度下降非常嚴重。例如,Web2.0網(wǎng)站要根據用戶(hù)個(gè)性化信息來(lái)實(shí)時(shí)生成動(dòng)態(tài)頁(yè)面、提供動(dòng)態(tài)信息,所以基本上無(wú)法使用動(dòng)態(tài)頁(yè)面靜態(tài)化技術(shù),因此數據庫并發(fā)負載非常高,往往要達到每秒上萬(wàn)次讀寫(xiě)請求。關(guān)系型數據庫勉強可以應付上萬(wàn)次SQL查詢(xún),硬盤(pán)I/O往往無(wú)法承擔上萬(wàn)次的SQL寫(xiě)數據請求。

      (2)支撐容量有限

      類(lèi)似Facebook、Twitter這樣的SNS網(wǎng)站,用戶(hù)每天產(chǎn)生海量的用戶(hù)動(dòng)態(tài),每月會(huì )產(chǎn)生幾億條用戶(hù)動(dòng)態(tài),對于關(guān)系型數據庫來(lái)說(shuō),在一張數億條記錄的表里面進(jìn)行SQL查詢(xún),效率是極其低下乃至不可忍受的。

      (3)擴展性差

      在基于Web的架構當中,數據庫是最難進(jìn)行橫向擴展的,當一個(gè)應用系統的用戶(hù)量和訪(fǎng)問(wèn)量與日俱增的時(shí)候,傳統的關(guān)系型數據庫卻沒(méi)有辦法像Web Server那樣簡(jiǎn)單地通過(guò)添加更多的硬件和服務(wù)節點(diǎn)來(lái)擴展性能和負載能力。對于很多需要提供不間斷服務(wù)的網(wǎng)站來(lái)說(shuō),對數據庫系統進(jìn)行升級和擴展是非常痛苦的事情,往往需要停機維護和數據遷移,因此迫切需要關(guān)系型數據庫也能夠通過(guò)不斷添加服務(wù)器節點(diǎn)來(lái)實(shí)現擴展。

      (4)建設和運維成本高

      企業(yè)級數據庫的價(jià)格很高,并且隨著(zhù)系統的規模增大而不斷上升。高昂的建設和運維成本無(wú)法滿(mǎn)足云計算應用對數據庫的需求。

      關(guān)系型數據庫遇到上述難以克服的瓶頸,與此同時(shí),它的很多主要特性在云計算應用中卻往往無(wú)用武之地,例如:數據庫事務(wù)一致性、數據庫的寫(xiě)實(shí)時(shí)性和讀實(shí)時(shí)性、復雜的SQL查詢(xún)特別是多表關(guān)聯(lián)查詢(xún)。因此,傳統的關(guān)系型數據庫已經(jīng)無(wú)法獨立應付云計算時(shí)代的各種應用。

      NoSQL數據庫數據模型

      關(guān)系型數據庫越來(lái)越無(wú)法滿(mǎn)足云計算的應用場(chǎng)景,為了解決此類(lèi)問(wèn)題,非關(guān)系型數據庫應運而生,由于在設計上和傳統的關(guān)系型數據庫相比有了很大的不同,所以此類(lèi)數據庫被稱(chēng)為“NoSQL(Not only SQL)”系列數據庫。與關(guān)系型數據庫相比,它們非常關(guān)注對數據高并發(fā)讀寫(xiě)和海量數據的存儲,在架構和數據模型方面作了簡(jiǎn)化,而在擴展和并發(fā)等方面作了增強。目前,主流的NoSQL數據庫包括BigTable、HBase、Cassandra、SimpleDB、CouchDB、MongoDB以及Redis等。NoSQL常用數據模型包括以下3種。

      (1)Column-oriented(列式)

      列式主要使用Table這樣的模型,但是它并不支持類(lèi)似Join這樣多表的操作,它的主要特點(diǎn)是在存儲數據時(shí),主要圍繞著(zhù)“列(Column)”,而不是像傳統的關(guān)系型數據庫那樣根據“行(Row)”進(jìn)行存儲,也就是說(shuō),屬于同一列的數據會(huì )盡可能地存儲在硬盤(pán)同一個(gè)頁(yè)中,而不是將屬于同一個(gè)行的數據存放在一起。這樣做的好處是,對于很多類(lèi)似數據倉庫的應用,雖然每次查詢(xún)都會(huì )處理很多數據,但是每次所涉及的列并沒(méi)有很多。使用列式數據庫,將會(huì )節省大量I/O,并且大多數列式數據庫都支持Column Family這個(gè)特性,能將多個(gè)列并為一個(gè)小組。這樣做的好處是能將相似列放在一起存儲,提高這些列的存儲和查詢(xún)效率。總體而言,這種數據模型的優(yōu)點(diǎn)是比較適合匯總和數據倉庫這類(lèi)應用。

      (2)Key-value

      雖然Key-value這種模型和傳統的關(guān)系型相比較簡(jiǎn)單,有點(diǎn)類(lèi)似常見(jiàn)的HashTable,一個(gè)Key對應一個(gè)Value,但是它能提供非常快的查詢(xún)速度、大的數據存放量和高并發(fā)操作,非常適合通過(guò)主鍵對數據進(jìn)行查詢(xún)和修改等操作,雖然不支持復雜的操作,但是可以通過(guò)上層的開(kāi)發(fā)來(lái)彌補這個(gè)缺陷。

      (3)Document(文檔)

      在結構上,Document和Key-value是非常相似的,也是一個(gè)Key對應一個(gè)Value,但是這個(gè)Value主要以JSON或者XML等格式的文檔來(lái)進(jìn)行存儲,是有語(yǔ)義的,并且Document DB一般可以對Value來(lái)創(chuàng )建Secondary Index來(lái)方便上層的應用,而這點(diǎn)是普通Key-Value DB所無(wú)法支持的。

      常用NoSQL數據庫比較及優(yōu)劣勢分析

      (1)主要NoSQL數據庫比較

      從設計理念、數據模式、分布式等幾個(gè)角度對BigTable、Cassandra、Redis、MongoDB進(jìn)行比較,見(jiàn)表1.

      (2) NoSQL數據庫的優(yōu)勢分析

      NoSQL數據庫主要有以下優(yōu)勢:

    • 擴展簡(jiǎn)單,典型例子是Cassandra,由于其架構類(lèi)似于經(jīng)典的P2P,因此能夠通過(guò)簡(jiǎn)單添加新的節點(diǎn)來(lái)擴展集群;
    • 讀寫(xiě)快速,典型例子是Redis,由于其邏輯簡(jiǎn)單,純內存操作,因此其具有非常出色的性能,單節點(diǎn)每秒可以處理超過(guò)10萬(wàn)次的讀寫(xiě)操作;
    • 成本低廉,因為大多數NoSQL數據庫都是開(kāi)源軟件,沒(méi)有昂貴的成本限制。

      (3)NoSQL數據庫的劣勢分析

      雖然NoSQL具有很多顯著(zhù)的優(yōu)勢,但是依然存在很多不足,主要表現在:

    • 不提供對SQL的支持,將會(huì )對用戶(hù)產(chǎn)生一定的應用遷移成本,同時(shí),無(wú)法實(shí)現組合應用,發(fā)揮SQL數據庫已經(jīng)非常成熟的優(yōu)勢;
    • 支持的特性不夠豐富,現有NoSQL數據庫提供的功能十分有限,大多數都不支持事務(wù)和其他附加功能;
    • 產(chǎn)品不夠成熟,大多數NoSQL數據庫產(chǎn)品還處于初級階段,與已經(jīng)非常完善成熟的關(guān)系型數據庫不可同日而語(yǔ)。

      結束語(yǔ)

      云計算主要常見(jiàn)的有兩類(lèi)場(chǎng)景:需要低延遲和高并發(fā)的讀寫(xiě)能力,數據量雖大,但不超過(guò)TB級別,大部分現在使用RDBMS的Web應用基本上都屬于這一類(lèi),類(lèi)似傳統的OLTP(聯(lián)機事務(wù)處理);海量數據的存儲和操作,如PB級別的,這方面的例子有傳統的數據倉庫、Google海量的Web頁(yè)面和圖片存儲等,類(lèi)似傳統的OLAP(聯(lián)機分析處理)。目前,業(yè)界還沒(méi)有一款數據庫能同時(shí)適應上述多種云計算場(chǎng)景的NoSQL數據庫。考慮到PaaS平臺的需求比較復雜,能夠在后臺進(jìn)行定制化的數據庫將是未來(lái)發(fā)展的趨勢,因此,輕量級的、兼顧高可擴展和高可靠性的架構設計將會(huì )受到歡迎。

    分享到: 收藏

    專(zhuān)題

    亚洲精品网站在线观看不卡无广告,国产a不卡片精品免费观看,欧美亚洲一区二区三区在线,国产一区二区三区日韩 松滋市| 浦江县| 河间市| 凤阳县| 西乌珠穆沁旗| 南江县| 河南省| 武定县| 兰西县| 龙山县| 遵义市| 萨迦县| 中超| 精河县| 昌黎县| 昭苏县| 砀山县| 民乐县| 河源市| 慈溪市| 门头沟区| 台江县| 闸北区| 辉县市| 年辖:市辖区| 涿鹿县| 汝阳县| 山东省| 错那县| 信丰县| 盐亭县| 黄大仙区| 讷河市| 金乡县| 蒙自县| 宁蒗| 隆化县| 泾阳县| 大埔区| 随州市| 绍兴市| http://444 http://444 http://444 http://444 http://444 http://444