第6章-數(shù)據(jù)存儲與管理_第1頁
第6章-數(shù)據(jù)存儲與管理_第2頁
第6章-數(shù)據(jù)存儲與管理_第3頁
第6章-數(shù)據(jù)存儲與管理_第4頁
第6章-數(shù)據(jù)存儲與管理_第5頁
已閱讀5頁,還剩45頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

第6章數(shù)據(jù)存儲與管理《大數(shù)據(jù)導論》教材官網(wǎng):/post/bigdata-introduction/提綱6.1傳統(tǒng)的數(shù)據(jù)存儲與管理技術(shù)6.2大數(shù)據(jù)時代的數(shù)據(jù)存儲與管理技術(shù)6.3大數(shù)據(jù)處理架構(gòu)Hadoop6.4分布式文件系統(tǒng)HDFS6.5NoSQL數(shù)據(jù)庫6.6云數(shù)據(jù)庫6.7分布式數(shù)據(jù)庫HBase6.8GoogleSpanner百度搜索廈門大學數(shù)據(jù)庫實驗室網(wǎng)站訪問平臺6.1傳統(tǒng)的數(shù)據(jù)存儲與管理技術(shù)6.1.1文件系統(tǒng)6.1.2關(guān)系數(shù)據(jù)庫6.1.3數(shù)據(jù)倉庫6.1.4并行數(shù)據(jù)庫6.1.1文件系統(tǒng)文件系統(tǒng)是操作系統(tǒng)用于明確存儲設(shè)備(常見的是磁盤,也有基于NANDFlash的固態(tài)硬盤)或分區(qū)上的文件的方法和數(shù)據(jù)結(jié)構(gòu),即在存儲設(shè)備上組織文件的方法。操作系統(tǒng)中負責管理和存儲文件信息的軟件機構(gòu)稱為文件管理系統(tǒng),簡稱“文件系統(tǒng)”我們平時在計算機上使用的WORD文件、PPT文件、文本文件、音頻文件、視頻文件等,都是由操作系統(tǒng)中的文件系統(tǒng)進行統(tǒng)一管理的6.1.2關(guān)系數(shù)據(jù)庫學號姓名性別年齡考試成績95001張三男218895002李四男229595003王梅女227395004林莉女2196表

學生信息表一個關(guān)系數(shù)據(jù)庫可以看成是許多關(guān)系表的集合,每個關(guān)系表可以看成一張二維表格目前市場上常見的關(guān)系數(shù)據(jù)庫產(chǎn)品包括Oracle、SQLServer、MySQL、DB2等6.1.2關(guān)系數(shù)據(jù)庫總體而言,關(guān)系數(shù)據(jù)庫具有如下特點:(1)存儲方式。關(guān)系數(shù)據(jù)庫采用表格的儲存方式,數(shù)據(jù)以行和列的方式進行存儲,要讀取和查詢都十分方便。(2)存儲結(jié)構(gòu)。關(guān)系數(shù)據(jù)庫按照結(jié)構(gòu)化的方法存儲數(shù)據(jù),每個數(shù)據(jù)表的結(jié)構(gòu)都必須事先定義好(比如表的名稱、字段名稱、字段類型、約束等),然后再根據(jù)表的結(jié)構(gòu)存入數(shù)據(jù),這樣做的好處就是,由于數(shù)據(jù)的形式和內(nèi)容在存入數(shù)據(jù)之前就已經(jīng)定義好了,所以,整個數(shù)據(jù)表的可靠性和穩(wěn)定性都比較高,但是帶來的問題就是,數(shù)據(jù)模型不夠靈活,一旦存入數(shù)據(jù)后,如果需要修改數(shù)據(jù)表的結(jié)構(gòu)就會十分困難。(3)存儲規(guī)范。關(guān)系數(shù)據(jù)庫為了規(guī)范化數(shù)據(jù)、減少重復數(shù)據(jù)以及充分利用好存儲空間,把數(shù)據(jù)按照最小關(guān)系表的形式進行存儲,這樣數(shù)據(jù)管理就可以變得很清晰、一目了然。當存在多個表時,表和表之間通過主外鍵關(guān)系發(fā)生關(guān)聯(lián),并通過連接查詢獲得相關(guān)結(jié)果。(4)擴展方式。由于關(guān)系數(shù)據(jù)庫將數(shù)據(jù)存儲在數(shù)據(jù)表中,數(shù)據(jù)操作的瓶頸出現(xiàn)在多張數(shù)據(jù)表的操作中,而且數(shù)據(jù)表越多這個問題越嚴重。如果要緩解這個問題,只能提高處理能力,也就是選擇速度更快、性能更高的計算機,這樣的方法雖然具有一定的拓展空間,但是這樣的拓展空間是非常有限的,也就是一般的關(guān)系型數(shù)據(jù)庫只具備有限的縱向擴展能力。6.1.2關(guān)系數(shù)據(jù)庫(5)查詢方式。關(guān)系數(shù)據(jù)庫采用結(jié)構(gòu)化查詢語言(即SQL:StructuredQueryLanguage)來對數(shù)據(jù)庫進行查詢。結(jié)構(gòu)化查詢語言是高級的非過程化編程語言,允許用戶在高層數(shù)據(jù)結(jié)構(gòu)上工作。它不要求用戶指定對數(shù)據(jù)的存放方法,也不需要用戶了解具體的數(shù)據(jù)存放方式,所以,各種具有完全不同底層結(jié)構(gòu)的數(shù)據(jù)庫系統(tǒng),可以使用相同的結(jié)構(gòu)化查詢語言作為數(shù)據(jù)輸入與管理的接口。結(jié)構(gòu)化查詢語言語句可以嵌套,這使它具有極大的靈活性和強大的功能。(6)事務(wù)性。關(guān)系數(shù)據(jù)庫可以支持事務(wù)的ACID特性(原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)、持久性(Durability))。當事務(wù)被提交給了DBMS(數(shù)據(jù)庫管理系統(tǒng)),則DBMS需要確保該事務(wù)中的所有操作都成功完成且其結(jié)果被永久保存在數(shù)據(jù)庫中,如果事務(wù)中有的操作沒有成功完成,則事務(wù)中的所有操作都需要被回滾,回到事務(wù)執(zhí)行前的狀態(tài),從而確保數(shù)據(jù)庫狀態(tài)的一致性。(7)連接方式。不同的關(guān)系數(shù)據(jù)庫產(chǎn)品都遵守一個統(tǒng)一的數(shù)據(jù)庫連接接口標準,即ODBC(OpenDatabaseConnectivity)。ODBC的一個顯著優(yōu)點是,用它生成的程序是與具體的數(shù)據(jù)庫產(chǎn)品無關(guān)的,這樣可以為數(shù)據(jù)庫用戶和開發(fā)人員屏蔽不同數(shù)據(jù)庫異構(gòu)環(huán)境的復雜性。ODBC提供了數(shù)據(jù)庫訪問的統(tǒng)一接口,為應(yīng)用程序?qū)崿F(xiàn)與平臺的無關(guān)性和可移植性提供了基礎(chǔ),因而獲得了廣泛的支持和應(yīng)用。6.1.3數(shù)據(jù)倉庫數(shù)據(jù)倉庫(DataWarehouse)是一個面向主題的、集成的、相對穩(wěn)定的、反映歷史變化的數(shù)據(jù)集合,用于支持管理決策:(1)面向主題。操作型數(shù)據(jù)庫的數(shù)據(jù)組織面向事務(wù)處理任務(wù),而數(shù)據(jù)倉庫中的數(shù)據(jù)是按照一定的主題域進行組織。主題是指用戶使用數(shù)據(jù)倉庫進行決策時所關(guān)心的重點方面,一個主題通常與多個操作型信息系統(tǒng)相關(guān)。(2)集成。數(shù)據(jù)倉庫的數(shù)據(jù)來自于分散的操作型數(shù)據(jù),將所需數(shù)據(jù)從原來的數(shù)據(jù)中抽取出來,進行加工與集成、統(tǒng)一與綜合之后才能進入數(shù)據(jù)倉庫。(3)相對穩(wěn)定。數(shù)據(jù)倉庫是不可更新的,數(shù)據(jù)倉庫主要是為決策分析提供數(shù)據(jù),所涉及的操作主要是數(shù)據(jù)的查詢。(4)反映歷史變化。在構(gòu)建數(shù)據(jù)倉庫時,會每隔一定的時間(比如每周、每天或每小時)從數(shù)據(jù)源抽取數(shù)據(jù)并加載到數(shù)據(jù)倉庫。6.1.3數(shù)據(jù)倉庫圖

數(shù)據(jù)倉庫體系架構(gòu)一個典型的數(shù)據(jù)倉庫系統(tǒng)通常包含數(shù)據(jù)源、數(shù)據(jù)存儲和管理、OLAP服務(wù)器、前端工具和應(yīng)用等四個部分6.1.4并行數(shù)據(jù)庫并行數(shù)據(jù)庫是指那些在無共享的體系結(jié)構(gòu)中進行數(shù)據(jù)操作的數(shù)據(jù)庫系統(tǒng)這些系統(tǒng)大部分采用了關(guān)系數(shù)據(jù)模型并且支持SQL語句查詢,但為了能夠并行執(zhí)行SQL的查詢操作,系統(tǒng)中采用了兩個關(guān)鍵技術(shù):關(guān)系表的水平劃分和SQL查詢的分區(qū)執(zhí)行并行數(shù)據(jù)庫系統(tǒng)的目標是高性能和高可用性,通過多個節(jié)點并行執(zhí)行數(shù)據(jù)庫任務(wù),提高整個數(shù)據(jù)庫系統(tǒng)的性能和可用性6.1.4并行數(shù)據(jù)庫并行數(shù)據(jù)庫系統(tǒng)的主要缺點就是沒有較好的彈性,而這種特性對中小型企業(yè)和初創(chuàng)企業(yè)是有利的。人們在對并行數(shù)據(jù)庫進行設(shè)計和優(yōu)化的時候認為集群中節(jié)點的數(shù)量是固定的,若需要對集群進行擴展和收縮,則必須為數(shù)據(jù)轉(zhuǎn)移過程制訂周全的計劃。這種數(shù)據(jù)轉(zhuǎn)移的代價是昂貴的,并且會導致系統(tǒng)在某段時間內(nèi)不可訪問,而這種較差的靈活性直接影響到并行數(shù)據(jù)庫的彈性以及現(xiàn)用現(xiàn)付商業(yè)模式的實用性。并行數(shù)據(jù)庫的另一個問題就是系統(tǒng)的容錯性較差,過去人們認為節(jié)點故障是個特例,并不經(jīng)常出現(xiàn),因此系統(tǒng)只提供事務(wù)級別的容錯功能,如果在查詢過程中節(jié)點發(fā)生故障,那么整個查詢都要從頭開始重新執(zhí)行。這種重啟任務(wù)的策略使得并行數(shù)據(jù)庫難以在擁有數(shù)以千個節(jié)點的集群上處理較長的查詢,因為在這類集群中節(jié)點的故障經(jīng)常發(fā)生。基于這種分析,并行數(shù)據(jù)庫只適合于資源需求相對固定的應(yīng)用程序。不管怎樣,并行數(shù)據(jù)庫的許多設(shè)計原則為其他海量數(shù)據(jù)系統(tǒng)的設(shè)計和優(yōu)化提供了比較好的借鑒。6.2大數(shù)據(jù)時代的數(shù)據(jù)存儲與管理技術(shù)6.2.1分布式文件系統(tǒng)6.2.2NewSQL和NoSQL數(shù)據(jù)庫6.2.3云數(shù)據(jù)庫6.2.1分布式文件系統(tǒng)分布式文件系統(tǒng)(DistributedFileSystem)是一種通過網(wǎng)絡(luò)實現(xiàn)文件在多臺主機上進行分布式存儲的文件系統(tǒng)圖分布式文件系統(tǒng)的整體結(jié)構(gòu)6.2.2NewSQL和NoSQL數(shù)據(jù)庫1.NewSQL數(shù)據(jù)庫NewSQL是對各種新的可擴展、高性能數(shù)據(jù)庫的簡稱,這類數(shù)據(jù)庫不僅具有對海量數(shù)據(jù)的存儲管理能力,還保持了傳統(tǒng)數(shù)據(jù)庫支持ACID和SQL等特性目前具有代表性的NewSQL數(shù)據(jù)庫主要包括Spanner、Clustrix、GenieDB、ScalArc、Schooner、VoltDB、RethinkDB、ScaleDB、Akiban、CodeFutures、ScaleBase、Translattice、NimbusDB、Drizzle、Tokutek、JustOneDB等6.2.2NewSQL和NoSQL數(shù)據(jù)庫2.NoSQL數(shù)據(jù)庫NoSQL是一種不同于關(guān)系數(shù)據(jù)庫的數(shù)據(jù)庫管理系統(tǒng)設(shè)計方式,是對非關(guān)系型數(shù)據(jù)庫的統(tǒng)稱,它所采用的數(shù)據(jù)模型并非傳統(tǒng)關(guān)系數(shù)據(jù)庫的關(guān)系模型,而是類似鍵/值、列族、文檔等非關(guān)系模型NoSQL數(shù)據(jù)庫沒有固定的表結(jié)構(gòu),通常也不存在連接操作,也沒有嚴格遵守ACID約束,因此,與關(guān)系數(shù)據(jù)庫相比,NoSQL具有靈活的水平可擴展性,可以支持海量數(shù)據(jù)存儲6.2.2NewSQL和NoSQL數(shù)據(jù)庫3.大數(shù)據(jù)引發(fā)數(shù)據(jù)庫架構(gòu)變革圖

大數(shù)據(jù)引發(fā)數(shù)據(jù)庫架構(gòu)變革6.2.3云數(shù)據(jù)庫研究機構(gòu)IDC預言,大數(shù)據(jù)將按照每年60%的速度增加,其中包含結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)?據(jù)。如何方便、快捷、低成本地存儲這些海量數(shù)據(jù),是許多企業(yè)和機構(gòu)面臨的一個嚴峻挑戰(zhàn)。云數(shù)據(jù)庫就是一個非常好的解決方案,目前云服務(wù)提供商正通過云技術(shù)推出更多可在公有云中托管數(shù)據(jù)庫的方法,將用戶從繁瑣的數(shù)據(jù)庫硬件定制中解放出來,同時讓用戶擁有強大的數(shù)據(jù)庫擴展能力,滿足海量數(shù)據(jù)的存儲需求。此外,云數(shù)據(jù)庫還能夠很好地滿足企業(yè)動態(tài)變化的數(shù)據(jù)存儲需求和中小企業(yè)的低成本數(shù)據(jù)存儲需求??梢哉f,在大數(shù)據(jù)時代,云數(shù)據(jù)庫將成為許多企業(yè)數(shù)據(jù)的目的地。6.2.3云數(shù)據(jù)庫圖

關(guān)系數(shù)據(jù)庫、NoSQL、NewSQL和云數(shù)據(jù)庫產(chǎn)品分類6.3大數(shù)據(jù)處理架構(gòu)Hadoop6.3.1Hadoop特性6.3.2Hadoop生態(tài)系統(tǒng)6.3.1Hadoop特性

Hadoop是一個能夠?qū)Υ罅繑?shù)據(jù)進行分布式處理的軟件框架,并且是以一種可靠、高效、可伸縮的方式進行處理的,它具有以下幾個方面的特性:

高可靠性

高效性

高可擴展性

高容錯性

成本低

運行在Linux平臺上

支持多種編程語言6.3.2Hadoop生態(tài)系統(tǒng)經(jīng)過多年的發(fā)展,Hadoop生態(tài)系統(tǒng)不斷完善和成熟,目前已經(jīng)包含了多個子項目。除了核心的HDFS和MapReduce以外,Hadoop生態(tài)系統(tǒng)還包括Zookeeper、HBase、Hive、Pig、Mahout、Sqoop、Flume、Ambari等功能組件。6.4分布式文件系統(tǒng)HDFS6.4.1HDFS的設(shè)計目標6.4.2HDFS體系結(jié)構(gòu)6.4.1HDFS的設(shè)計目標總體而言,HDFS要實現(xiàn)以下目標:●兼容廉價的硬件設(shè)備●流數(shù)據(jù)讀寫●大數(shù)據(jù)集●簡單的文件模型●強大的跨平臺兼容性HDFS特殊的設(shè)計,在實現(xiàn)上述優(yōu)良特性的同時,也使得自身具有一些應(yīng)用局限性,主要包括以下幾個方面:●不適合低延遲數(shù)據(jù)訪問●無法高效存儲大量小文件●不支持多用戶寫入及任意修改文件6.4.2HDFS體系結(jié)構(gòu)HDFS采用了主從(Master/Slave)結(jié)構(gòu)模型,一個HDFS集群包括一個名稱節(jié)點(NameNode)和若干個數(shù)據(jù)節(jié)點(DataNode)(如圖3-4所示)。名稱節(jié)點作為中心服務(wù)器,負責管理文件系統(tǒng)的命名空間及客戶端對文件的訪問。集群中的數(shù)據(jù)節(jié)點一般是一個節(jié)點運行一個數(shù)據(jù)節(jié)點進程,負責處理文件系統(tǒng)客戶端的讀/寫請求,在名稱節(jié)點的統(tǒng)一調(diào)度下進行數(shù)據(jù)塊的創(chuàng)建、刪除和復制等操作。每個數(shù)據(jù)節(jié)點的數(shù)據(jù)實際上是保存在本地Linux文件系統(tǒng)中的圖HDFS體系結(jié)構(gòu)6.5NoSQL數(shù)據(jù)庫6.5.1鍵值數(shù)據(jù)庫6.5.2列族數(shù)據(jù)庫6.5.3文檔數(shù)據(jù)庫6.5.4圖數(shù)據(jù)庫6.5NoSQL數(shù)據(jù)庫NoSQL數(shù)據(jù)庫雖然數(shù)量眾多,但是,歸結(jié)起來,典型的NoSQL數(shù)據(jù)庫通常包括鍵值數(shù)據(jù)庫、列族數(shù)據(jù)庫、文檔數(shù)據(jù)庫和圖形數(shù)據(jù)庫6.5NoSQL數(shù)據(jù)庫文檔數(shù)據(jù)庫圖數(shù)據(jù)庫6.5.1鍵值數(shù)據(jù)庫相關(guān)產(chǎn)品Redis、Riak、SimpleDB、Chordless、Scalaris、Memcached數(shù)據(jù)模型鍵/值對鍵是一個字符串對象值可以是任意類型的數(shù)據(jù),比如整型、字符型、數(shù)組、列表、集合等典型應(yīng)用涉及頻繁讀寫、擁有簡單數(shù)據(jù)模型的應(yīng)用內(nèi)容緩存,比如會話、配置文件、參數(shù)、購物車等存儲配置和用戶數(shù)據(jù)信息的移動應(yīng)用優(yōu)點擴展性好,靈活性好,大量寫操作時性能高缺點無法存儲結(jié)構(gòu)化信息,條件查詢效率較低不適用情形不是通過鍵而是通過值來查:鍵值數(shù)據(jù)庫根本沒有通過值查詢的途徑需要存儲數(shù)據(jù)之間的關(guān)系:在鍵值數(shù)據(jù)庫中,不能通過兩個或兩個以上的鍵來關(guān)聯(lián)數(shù)據(jù)需要事務(wù)的支持:在一些鍵值數(shù)據(jù)庫中,產(chǎn)生故障時,不可以回滾使用者百度云數(shù)據(jù)庫(Redis)、GitHub(Riak)、BestBuy(Riak)、Twitter(Redis和Memcached)、StackOverFlow(Redis)、Instagram

(Redis)、Youtube(Memcached)、Wikipedia(Memcached)6.5.1鍵值數(shù)據(jù)庫鍵值數(shù)據(jù)庫成為理想的緩沖層解決方案Redis有時候會被人們稱為“強化版的Memcached”支持持久化、數(shù)據(jù)恢復、更多數(shù)據(jù)類型6.5.2列族數(shù)據(jù)庫相關(guān)產(chǎn)品BigTable、HBase、Cassandra、HadoopDB、GreenPlum、PNUTS數(shù)據(jù)模型列族典型應(yīng)用分布式數(shù)據(jù)存儲與管理數(shù)據(jù)在地理上分布于多個數(shù)據(jù)中心的應(yīng)用程序可以容忍副本中存在短期不一致情況的應(yīng)用程序擁有動態(tài)字段的應(yīng)用程序擁有潛在大量數(shù)據(jù)的應(yīng)用程序,大到幾百TB的數(shù)據(jù)優(yōu)點查找速度快,可擴展性強,容易進行分布式擴展,復雜性低缺點功能較少,大都不支持強事務(wù)一致性不適用情形需要ACID事務(wù)支持的情形,Cassandra等產(chǎn)品就不適用使用者Ebay(Cassandra)、Instagram(Cassandra)、NASA(Cassandra)、Twitter(CassandraandHBase)、Facebook(HBase)、Yahoo!(HBase)6.5.3文檔數(shù)據(jù)庫“文檔”其實是一個數(shù)據(jù)記錄,這個記錄能夠?qū)Π臄?shù)據(jù)類型和內(nèi)容進行“自我描述”。XML文檔、HTML文檔和JSON文檔就屬于這一類。SequoiaDB就是使用JSON格式的文檔數(shù)據(jù)庫,它的存儲的數(shù)據(jù)是這樣的:關(guān)系數(shù)據(jù)庫:必須有schema信息才能理解數(shù)據(jù)的含義學生(學號,姓名,性別,年齡,系,年級)(1001,張三,男,20,計算機,2002)一個XML文檔:<configuration>

<property>

<name>hbase.rootdir</name>

<value>hdfs://localhost:9000/hbase</value>

</property></configuration>

6.5.3文檔數(shù)據(jù)庫數(shù)據(jù)是不規(guī)則的,每一條記錄包含了所有的有關(guān)“SequoiaDB”的信息而沒有任何外部的引用,這條記錄就是“自包含”的這使得記錄很容易完全移動到其他服務(wù)器,因為這條記錄的所有信息都包含在里面了,不需要考慮還有信息在別的表沒有一起遷移走同時,因為在移動過程中,只有被移動的那一條記錄(文檔)需要操作,而不像關(guān)系型中每個有關(guān)聯(lián)的表都需要鎖住來保證一致性,這樣一來ACID的保證就會變得更快速,讀寫的速度也會有很大的提升6.5.3文檔數(shù)據(jù)庫相關(guān)產(chǎn)品MongoDB、CouchDB、Terrastore、ThruDB、RavenDB、SisoDB、RaptorDB、CloudKit、Perservere、Jackrabbit數(shù)據(jù)模型鍵/值值(value)是版本化的文檔典型應(yīng)用存儲、索引并管理面向文檔的數(shù)據(jù)或者類似的半結(jié)構(gòu)化數(shù)據(jù)比如,用于后臺具有大量讀寫操作的網(wǎng)站、使用JSON數(shù)據(jù)結(jié)構(gòu)的應(yīng)用、使用嵌套結(jié)構(gòu)等非規(guī)范化數(shù)據(jù)的應(yīng)用程序優(yōu)點性能好(高并發(fā)),靈活性高,復雜性低,數(shù)據(jù)結(jié)構(gòu)靈活提供嵌入式文檔功能,將經(jīng)常查詢的數(shù)據(jù)存儲在同一個文檔中既可以根據(jù)鍵來構(gòu)建索引,也可以根據(jù)內(nèi)容構(gòu)建索引缺點缺乏統(tǒng)一的查詢語法不適用情形在不同的文檔上添加事務(wù)。文檔數(shù)據(jù)庫并不支持文檔間的事務(wù),如果對這方面有需求則不應(yīng)該選用這個解決方案使用者百度云數(shù)據(jù)庫(MongoDB)、SAP(MongoDB)、Codecademy

(MongoDB)、Foursquare(MongoDB)、NBCNews(RavenDB)6.5.4圖數(shù)據(jù)庫相關(guān)產(chǎn)品Neo4J、OrientDB、InfoGrid、InfiniteGraph、GraphDB數(shù)據(jù)模型圖結(jié)構(gòu)典型應(yīng)用專門用于處理具有高度相互關(guān)聯(lián)關(guān)系的數(shù)據(jù),比較適合于社交網(wǎng)絡(luò)、模式識別、依賴分析、推薦系統(tǒng)以及路徑尋找等問題優(yōu)點靈活性高,支持復雜的圖形算法,可用于構(gòu)建復雜的關(guān)系圖譜缺點復雜性高,只能支持一定的數(shù)據(jù)規(guī)模使用者Adobe(Neo4J)、Cisco(Neo4J)、T-Mobile(Neo4J)不同類型數(shù)據(jù)庫比較分析MySQL產(chǎn)生年代較早,而且隨著LAMP大潮得以成熟。盡管其沒有什么大的改進,但是新興的互聯(lián)網(wǎng)使用的最多的數(shù)據(jù)庫MongoDB是個新生事物,提供更靈活的數(shù)據(jù)模型、異步提交、地理位置索引等五花十色的功能HBase是個“仗勢欺人”的大象兵。依仗著Hadoop的生態(tài)環(huán)境,可以有很好的擴展性。但是就像象兵一樣,使用者需要養(yǎng)一頭大象(Hadoop),才能驅(qū)使他Redis是鍵值存儲的代表,功能最簡單。提供隨機數(shù)據(jù)存儲。就像一根棒子一樣,沒有多余的構(gòu)造。但是也正是因此,它的伸縮性特別好。就像悟空手里的金箍棒,大可捅破天,小能成縮成針6.6云數(shù)據(jù)庫6.6.1云數(shù)據(jù)庫的概念6.6.2云數(shù)據(jù)庫的特性6.6.3云數(shù)據(jù)庫與其他數(shù)據(jù)庫的關(guān)系6.6.4代表性云數(shù)據(jù)庫產(chǎn)品6.6.1云數(shù)據(jù)庫的概念云數(shù)據(jù)庫是部署和虛擬化在云計算環(huán)境中的數(shù)據(jù)庫。云數(shù)據(jù)庫是在云計算的大背景下發(fā)展起來的一種新興的共享基礎(chǔ)架構(gòu)的方法,它極大地增強了數(shù)據(jù)庫的存儲能力,消除了人員、硬件、軟件的重復配置,讓軟、硬件升級變得更加容易。云數(shù)據(jù)庫具有高可擴展性、高可用性、采用多租形式和支持資源有效分發(fā)等特點。6.6.2云數(shù)據(jù)庫的特性云數(shù)據(jù)庫具有以下特性:(1)動態(tài)可擴展(2)高可用性

(3)較低的使用代價

(4)易用性

(5)高性能

(6)免維護

(7)安全

表6-2騰訊云數(shù)據(jù)庫和自建數(shù)據(jù)庫的比較自建數(shù)據(jù)庫騰訊云數(shù)據(jù)庫數(shù)據(jù)安全性開發(fā)者自行解決,成本高昂15種類型備份數(shù)據(jù),保證數(shù)據(jù)安全服務(wù)可用性99.99%高可靠性數(shù)據(jù)備份0花費,系統(tǒng)自動多時間點數(shù)據(jù)備份維護成本0成本,專業(yè)團隊7x24小時幫助維護實例擴容一鍵式直接擴容,安全可靠資源利用率按需申請,資源利用率高達99.9%技術(shù)支持專業(yè)團隊一對一指導、QQ遠程協(xié)助開發(fā)者6.6.3云數(shù)據(jù)庫與其他數(shù)據(jù)庫的關(guān)系從數(shù)據(jù)模型的角度來說,云數(shù)據(jù)庫并非一種全新的數(shù)據(jù)庫技術(shù),而只是以服務(wù)的方式提供數(shù)據(jù)庫功能云數(shù)據(jù)庫并沒有專屬于自己的數(shù)據(jù)模型,云數(shù)據(jù)庫所采用的數(shù)據(jù)模型可以是關(guān)系數(shù)據(jù)庫所使用的關(guān)系模型(微軟的SQLAzure云數(shù)據(jù)庫、阿里云RDS都采用了關(guān)系模型),也可以是NoSQL數(shù)據(jù)庫所使用的非關(guān)系模型(AmazonDynamo云數(shù)據(jù)庫采用的是“鍵/值”存儲)同一個公司也可能提供采用不同數(shù)據(jù)模型的多種云數(shù)據(jù)庫服務(wù)許多公司在開發(fā)云數(shù)據(jù)庫時,后端數(shù)據(jù)庫都是直接使用現(xiàn)有的各種關(guān)系數(shù)據(jù)庫或NoSQL數(shù)據(jù)庫產(chǎn)品6.6.4代表性云數(shù)據(jù)庫產(chǎn)品表

云數(shù)據(jù)庫產(chǎn)品企業(yè)產(chǎn)品AmazonDynamo、SimpleDB、RDSGoogleGoogleCloudSQLMicrosoftMicrosoftSQLAzureOracleOracleCloudYahoo!PNUTSVerticaAnalyticDatabasev3.0fortheCloudEnerpriseDBPostgresPlusintheCloud阿里阿里云RDS百度百度云數(shù)據(jù)庫騰訊騰訊云數(shù)據(jù)庫6.7分布式數(shù)據(jù)庫HBase6.7.1從BigTable說起6.7.2HBase簡介6.7.3HBase數(shù)據(jù)模型6.7.4HBase系統(tǒng)架構(gòu)6.7.1從BigTable說起B(yǎng)igTable是一個分布式存儲系統(tǒng)BigTable起初用于解決典型的互聯(lián)網(wǎng)搜索問題建立互聯(lián)網(wǎng)索引1

爬蟲持續(xù)不斷地抓取新頁面,這些頁面每頁一行地存儲到BigTable里2MapReduce計算作業(yè)運行在整張表上,生成索引,為網(wǎng)絡(luò)搜索應(yīng)用做準備搜索互聯(lián)網(wǎng)3

用戶發(fā)起網(wǎng)絡(luò)搜索請求4

網(wǎng)絡(luò)搜索應(yīng)用查詢建立好的索引,從BigTable得到網(wǎng)頁5

搜索結(jié)果提交給用戶網(wǎng)頁在BigTable中的存儲樣例6.7.1從BigTable說起B(yǎng)igTable是一個分布式存儲系統(tǒng)利用谷歌提出的MapReduce分布式并行計算模型來處理海量數(shù)據(jù)使用谷歌分布式文件系統(tǒng)GFS作為底層數(shù)據(jù)存儲采用Chubby提供協(xié)同服務(wù)管理可以擴展到PB級別的數(shù)據(jù)和上千臺機器,具備廣泛應(yīng)用性、可擴展性、高性能和高可用性等特點谷歌的許多項目都存儲在BigTable中,包括搜索、地圖、財經(jīng)、打印、社交網(wǎng)站Orkut、視頻共享網(wǎng)站YouTube和博客網(wǎng)站Blogger等6.7.2HBase簡介HBase是一個高可靠、高性能、面向列、可伸縮的分布式數(shù)據(jù)庫,是谷歌BigTable的開源實現(xiàn),主要用來存儲非結(jié)構(gòu)化和半結(jié)構(gòu)化的松散數(shù)據(jù)。HBase的目標是處理非常龐大的表,可以通過水平擴展的方式,利用廉價計算機集群處理由超過10億行數(shù)據(jù)和數(shù)百萬列元素組成的數(shù)據(jù)表圖Hadoop生態(tài)系統(tǒng)中HBase與其他部分的關(guān)系6.7.3HBase數(shù)據(jù)模型表:HBase采用表來組織數(shù)據(jù),表由行和列組成,列劃分為若干個列族行:每個HBase表都由若干行組成,每個行由行鍵(rowkey)來標識。列族:一個HBase表被分組成許多“列族”(ColumnFamily)的集合,它是基本的訪問控制單元列限定符:列族里的數(shù)據(jù)通過列限定符(或列)來定位單元格:在HBase表中,通過行、列族和列限定符確定一個“單元格”(cell),單元格中存儲的數(shù)據(jù)沒有數(shù)據(jù)類型,總被視為字節(jié)數(shù)組byte[]時間戳:每個單元格都保存著同一份數(shù)據(jù)的多個版本,這些版本采用時間戳進行索引6.7.4HBase系統(tǒng)架構(gòu)圖HBase的系統(tǒng)架構(gòu)6.8GoogleSpannerSpanner是一個可擴展的、全球分布式的數(shù)據(jù)庫,是由谷歌公司設(shè)計、開發(fā)和部署的。在最高抽象層面,Spanner就是一個數(shù)據(jù)庫,把數(shù)據(jù)分片存儲在許多Paxos狀態(tài)機上,這些機器位于遍布全球的數(shù)據(jù)中心內(nèi)。復制技術(shù)可以用來服務(wù)于全球可用性和地理局部性??蛻舳藭詣釉诟北局g進行失敗恢復。隨著數(shù)據(jù)的變化和服務(wù)器的變化,Spanner會自動把數(shù)據(jù)進行重新分片,從而有效應(yīng)對負載變化和處理失敗。Spanner被設(shè)計成可以擴展到幾百萬個機器節(jié)點,跨越成百上千個數(shù)據(jù)中心,具備幾萬億數(shù)據(jù)庫行的規(guī)模。應(yīng)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論