版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第9章大數(shù)據(jù)存儲(chǔ)與檢索010203目錄CONTENTS04大數(shù)據(jù)的定義與特征大數(shù)據(jù)存儲(chǔ)大數(shù)據(jù)檢索應(yīng)用實(shí)例04本章小結(jié)01PART大數(shù)據(jù)的定義與特征大數(shù)據(jù)(BigData)是指需要通過(guò)快速獲取、處理、分析以從中提取價(jià)值的海量且多樣化的交易數(shù)據(jù)、交互數(shù)據(jù)與傳感數(shù)據(jù),其規(guī)模往往達(dá)到PB(1024TB)級(jí)。不同機(jī)構(gòu)對(duì)大數(shù)據(jù)也有不同的定義。麥肯錫全球研究院(MGI)對(duì)大數(shù)據(jù)的定義為:一種規(guī)模大到在獲取、存儲(chǔ)、管理、分析方面極大超出傳統(tǒng)數(shù)據(jù)庫(kù)軟件工具能力范圍的數(shù)據(jù)集合,具有海量的數(shù)據(jù)規(guī)模、快速的數(shù)據(jù)流轉(zhuǎn)、多樣的數(shù)據(jù)類(lèi)型和價(jià)值密度低四大特征。移動(dòng)信息化研究中心對(duì)大數(shù)據(jù)的定義為:大數(shù)據(jù)是幫助企業(yè)利用海量數(shù)據(jù)資產(chǎn),實(shí)時(shí)、精確地洞察未知邏輯領(lǐng)域的動(dòng)態(tài)變化,并快速重塑業(yè)務(wù)流程、組織和行業(yè)的新興數(shù)據(jù)管理技術(shù)?;ヂ?lián)網(wǎng)數(shù)據(jù)中心(IDC)認(rèn)為,大數(shù)據(jù)具備海量(Volume)、異構(gòu)(Variety)、高速(Velocity)和價(jià)值(Value)四大特性。9.1.1大數(shù)據(jù)定義大數(shù)據(jù)的定義與特征小數(shù)據(jù)與大數(shù)據(jù)的特征對(duì)比如下表所示。9.1.1大數(shù)據(jù)定義特征小數(shù)據(jù)大數(shù)據(jù)體積有限的量數(shù)據(jù)龐大徹底性樣本整個(gè)群體分辨率和索引性粗糙,弱精致,強(qiáng)關(guān)聯(lián)性弱強(qiáng)速度慢、定格快多樣性窄寬靈活性和可擴(kuò)展性中等高大數(shù)據(jù)的定義與特征大數(shù)據(jù)的特征可以歸納為5個(gè)層面:Volume(數(shù)據(jù)容量)、Variety(數(shù)據(jù)類(lèi)型)、Value(價(jià)值密度)、Velocity(速度)、Veracity(真實(shí)性),也就是大數(shù)據(jù)的5V特征。(1)數(shù)據(jù)容量Volume表示數(shù)據(jù)容量巨大。大型數(shù)據(jù)集一般在10TB規(guī)模。但在實(shí)際應(yīng)用中,很多企業(yè)用戶(hù)把多個(gè)數(shù)據(jù)集放在一起,已經(jīng)形成了PB級(jí)的數(shù)據(jù)量??梢韵胂?,隨著存儲(chǔ)設(shè)備容量的增大以及物聯(lián)網(wǎng)和人工智能等的發(fā)展,存儲(chǔ)數(shù)據(jù)還會(huì)呈幾何級(jí)增長(zhǎng)。大數(shù)據(jù)的容量指標(biāo)是動(dòng)態(tài)增加的。9.1.2大數(shù)據(jù)特征大數(shù)據(jù)的定義與特征(2)數(shù)據(jù)類(lèi)型Variety表示數(shù)據(jù)類(lèi)型繁多。傳統(tǒng)的數(shù)據(jù)類(lèi)型一般較為單一,且或多或少是同構(gòu)的,即結(jié)構(gòu)化的數(shù)據(jù),這種特點(diǎn)使它更易于管理。但在大數(shù)據(jù)中,數(shù)據(jù)來(lái)源各異,因而形式各異。大數(shù)據(jù)主要來(lái)源于互聯(lián)網(wǎng),包含多種數(shù)據(jù)類(lèi)型,例如各種音頻和視頻文件、網(wǎng)絡(luò)日志、地理位置信息等。大數(shù)據(jù)大多為半結(jié)構(gòu)化,甚至完全非結(jié)構(gòu)化的數(shù)據(jù)類(lèi)型。這類(lèi)數(shù)據(jù)毫無(wú)特征可言,給大數(shù)據(jù)的存儲(chǔ)和檢索帶來(lái)極大的挑戰(zhàn)。9.1.2大數(shù)據(jù)特征大數(shù)據(jù)的定義與特征(3)價(jià)值密度Value表示價(jià)值密度。隨著物聯(lián)網(wǎng)的廣泛應(yīng)用,信息感知無(wú)處不在,數(shù)據(jù)海量,但是其價(jià)值密度很低。大數(shù)據(jù)蘊(yùn)藏著豐富的價(jià)值,挖掘價(jià)值往往類(lèi)似沙里淘金。通過(guò)對(duì)大數(shù)據(jù)獲取、存儲(chǔ)、抽取、清洗,再經(jīng)過(guò)復(fù)雜地挖掘與分析才能從大數(shù)據(jù)中獲取到有價(jià)值的信息。如何從海量的數(shù)據(jù)中迅速地完成數(shù)據(jù)的價(jià)值提純是亟待解決的難題。(4)速度Velocity表示數(shù)據(jù)的產(chǎn)生和變化快。在高速網(wǎng)絡(luò)時(shí)代,通過(guò)能夠?qū)崿F(xiàn)軟件性能優(yōu)化的高速處理器和服務(wù)器創(chuàng)建實(shí)時(shí)數(shù)據(jù)流已經(jīng)成為流行趨勢(shì)。企業(yè)不僅需要了解如何快速創(chuàng)建數(shù)據(jù),還需要知道如何快速處理、分析數(shù)據(jù)并返回結(jié)果給用戶(hù),以滿(mǎn)足用戶(hù)的實(shí)時(shí)需求。大數(shù)據(jù)的快速處理能力充分體現(xiàn)了它與傳統(tǒng)數(shù)據(jù)處理技術(shù)的本質(zhì)區(qū)別。9.1.2大數(shù)據(jù)特征大數(shù)據(jù)的定義與特征(5)真實(shí)性Veracity表示數(shù)據(jù)的真實(shí)性。數(shù)據(jù)真實(shí)性是一個(gè)在討論大數(shù)據(jù)時(shí)常常被忽略的屬性,但是它與其他的屬性同樣重要。采集到的大數(shù)據(jù)并不能保證完全、真實(shí)、準(zhǔn)確,可能存在著錯(cuò)誤的數(shù)據(jù)、甚至是偽造的數(shù)據(jù),而大數(shù)據(jù)分析高度依賴(lài)數(shù)據(jù)的真實(shí)性,越真實(shí)的數(shù)據(jù),就越有助于分析出準(zhǔn)確的結(jié)果。9.1.2大數(shù)據(jù)特征大數(shù)據(jù)的定義與特征(1)物聯(lián)網(wǎng)的興起:物聯(lián)網(wǎng)和5G通信技術(shù)的發(fā)展使得智能終端廣泛應(yīng)用于家用電器的控制。(2)暗數(shù)據(jù)遷移到云:尚未轉(zhuǎn)換為數(shù)字格式的數(shù)據(jù)稱(chēng)為暗數(shù)據(jù),它是尚未開(kāi)發(fā)的巨大存儲(chǔ)庫(kù),未來(lái)這些模擬數(shù)據(jù)庫(kù)會(huì)被數(shù)字化并遷移到云中,有利于進(jìn)一步分析和決策。(3)量子計(jì)算:盡管量子計(jì)算尚處于起步階段,但相關(guān)研究實(shí)驗(yàn)從未停止,量子計(jì)算將能夠極大提升計(jì)算機(jī)數(shù)據(jù)處理能力,縮短處理時(shí)間。(4)邊緣計(jì)算:隨著物聯(lián)網(wǎng)的發(fā)展,企業(yè)收集數(shù)據(jù)的方式逐漸轉(zhuǎn)向設(shè)備端,邊緣計(jì)算相較于云計(jì)算更加靠近數(shù)據(jù)源頭,這樣可以有效降低數(shù)據(jù)傳輸處理到反饋的遲延,同時(shí)具有顯著的大數(shù)據(jù)收集與處理能力。(5)人工智能:隨著機(jī)器學(xué)習(xí)與人工智能(AI)的崛起,越來(lái)越多與人們生活日常息息相關(guān)的大數(shù)據(jù)被輸送到AI模型中,進(jìn)一步提升了AI系統(tǒng)的智能化決策水平,以便更好地為人類(lèi)服務(wù)。9.1.3大數(shù)據(jù)的行業(yè)發(fā)展趨勢(shì)02PART大數(shù)據(jù)存儲(chǔ)9.2.1數(shù)據(jù)存儲(chǔ)管理傳統(tǒng)的數(shù)據(jù)存儲(chǔ)管理已經(jīng)不能滿(mǎn)足大數(shù)據(jù)的發(fā)展要求,大數(shù)據(jù)存儲(chǔ)管理面臨著巨大的挑戰(zhàn)。大數(shù)據(jù)管理技術(shù)也不斷涌現(xiàn),有多種數(shù)據(jù)管理技術(shù)被廣泛關(guān)注,例如分布式存儲(chǔ)、內(nèi)存數(shù)據(jù)庫(kù)技術(shù)、列式數(shù)據(jù)庫(kù)技術(shù)、云數(shù)據(jù)庫(kù)技術(shù)、NoSQL技術(shù)、移動(dòng)數(shù)據(jù)庫(kù)技術(shù)等。分布式存儲(chǔ)系統(tǒng)是將數(shù)據(jù)分散存儲(chǔ)在多臺(tái)獨(dú)立的設(shè)備上。內(nèi)存數(shù)據(jù)庫(kù)技術(shù)將數(shù)據(jù)放在內(nèi)存中直接操作,內(nèi)存的數(shù)據(jù)讀寫(xiě)速度要比磁盤(pán)高出幾個(gè)數(shù)量級(jí),因此數(shù)據(jù)保存在內(nèi)存中能為應(yīng)用程序提供即時(shí)的響應(yīng)和高吞吐量。列式數(shù)據(jù)庫(kù)是以列相關(guān)存儲(chǔ)架構(gòu)進(jìn)行數(shù)據(jù)存儲(chǔ)的數(shù)據(jù)庫(kù),主要適用于批量數(shù)據(jù)處理和即時(shí)查詢(xún),占用更少的存儲(chǔ)空間,它是構(gòu)建數(shù)據(jù)倉(cāng)庫(kù)的理想架構(gòu)之一。云數(shù)據(jù)庫(kù)是指被優(yōu)化或部署到一個(gè)虛擬計(jì)算環(huán)境中的數(shù)據(jù)庫(kù),其可以被隨意地進(jìn)行擴(kuò)展,具有按需付費(fèi)、按需擴(kuò)展、高可用性以及存儲(chǔ)整合等優(yōu)勢(shì)。NoSQL(NotOnlySQL)泛指非關(guān)系型數(shù)據(jù)庫(kù),適用于龐大的數(shù)據(jù)量、極端的查詢(xún)量和模式演化等場(chǎng)景下。移動(dòng)數(shù)據(jù)庫(kù)是分布式數(shù)據(jù)庫(kù)的延伸和擴(kuò)展,擁有分布式數(shù)據(jù)庫(kù)的諸多優(yōu)點(diǎn)和獨(dú)特的性能,能夠滿(mǎn)足未來(lái)人們?cè)L問(wèn)信息的要求。大數(shù)據(jù)存儲(chǔ)9.2.2分布式文件系統(tǒng)分布式文件系統(tǒng)(DistributedFileSystem)是指文件系統(tǒng)管理的存儲(chǔ)資源不一定直接連接在本地節(jié)點(diǎn)上,而是通過(guò)計(jì)算機(jī)網(wǎng)絡(luò)節(jié)點(diǎn)相連,或是若干不同的邏輯磁盤(pán)分區(qū)或卷標(biāo)組合在一起而形成的完整、有層次的文件系統(tǒng)。分布式文件系統(tǒng)把大量數(shù)據(jù)分散到不同的節(jié)點(diǎn)上存儲(chǔ),并使用備份機(jī)制,極大減小了數(shù)據(jù)丟失的風(fēng)險(xiǎn)。分布式文件系統(tǒng)具有冗余性,部分節(jié)點(diǎn)的故障并不影響整體的正常運(yùn)行,而且即使出現(xiàn)故障的計(jì)算機(jī)存儲(chǔ)的數(shù)據(jù)損壞、甚至丟失,也可以由其他節(jié)點(diǎn)將缺失的數(shù)據(jù)恢復(fù)出來(lái)。大數(shù)據(jù)存儲(chǔ)9.2.2分布式文件系統(tǒng)Hadoop
Distributed
FileSystem(簡(jiǎn)稱(chēng)HDFS)是一個(gè)分布式文件系統(tǒng)。HDFS
與現(xiàn)有的分布式文件系統(tǒng)有很多共同點(diǎn),但同時(shí)它與其他分布式文件系統(tǒng)的區(qū)別也非常明顯。HDFS
是基于滿(mǎn)足流數(shù)據(jù)模式訪問(wèn)和處理超大文件的需求而開(kāi)發(fā)的,是一個(gè)具有高度容錯(cuò)性的系統(tǒng),適合部署在廉價(jià)的商用服務(wù)器上。HDFS
能提供高吞吐量的數(shù)據(jù)訪問(wèn),非常適合那些有著超大數(shù)據(jù)集的應(yīng)用程序。大數(shù)據(jù)存儲(chǔ)9.2.2分布式文件系統(tǒng)HDFS采用了主從(Master/Slave)結(jié)構(gòu)模型,一個(gè)HDFS集群由一個(gè)名稱(chēng)節(jié)點(diǎn)(NameNode)和若干數(shù)據(jù)節(jié)點(diǎn)(DataNode)組成。其中,名稱(chēng)節(jié)點(diǎn)作為主服務(wù)器,用于管理文件命名空間和調(diào)節(jié)客戶(hù)端對(duì)文件的訪問(wèn);集群中的數(shù)據(jù)節(jié)點(diǎn)才是真正存儲(chǔ)數(shù)據(jù)的地方,一般一個(gè)數(shù)據(jù)節(jié)點(diǎn)對(duì)應(yīng)一臺(tái)服務(wù)器。HDFS系統(tǒng)架構(gòu)如圖所示。大數(shù)據(jù)存儲(chǔ)9.2.2分布式文件系統(tǒng)NameNode管理文件系統(tǒng)的命名空間,維護(hù)著文件系統(tǒng)樹(shù)以及整棵樹(shù)內(nèi)所有的文件和目錄,這些元數(shù)據(jù)以?xún)蓚€(gè)文件的形式永久保存在本地磁盤(pán)上,即命名空間鏡像文件和編輯日志文件。NameNode也記錄著每個(gè)文件中各個(gè)塊所在的數(shù)據(jù)節(jié)點(diǎn)信息,但它并不持久化在硬盤(pán)上,而是存儲(chǔ)在內(nèi)存中,這些信息是在系統(tǒng)啟動(dòng)時(shí)由DataNode發(fā)送過(guò)來(lái)的。因此,NameNode并不參與客戶(hù)數(shù)據(jù)的讀寫(xiě)操作,只負(fù)責(zé)維護(hù)一些控制信息。大數(shù)據(jù)存儲(chǔ)9.2.2分布式文件系統(tǒng)DataNode是文件系統(tǒng)的工作節(jié)點(diǎn),是真正存儲(chǔ)數(shù)據(jù)的位置。DataNode在存儲(chǔ)數(shù)據(jù)時(shí)以數(shù)據(jù)塊為單位讀寫(xiě)數(shù)據(jù),數(shù)據(jù)塊是HDFS讀寫(xiě)數(shù)據(jù)的基本單位。每個(gè)文件除了最后一個(gè)塊,其他塊都有相同的大小。數(shù)據(jù)塊一般都有多個(gè)備份,存儲(chǔ)在不同的DataNode中,DataNode也可以分布在不同的機(jī)架上。DataNode負(fù)責(zé)執(zhí)行文件系統(tǒng)客戶(hù)端發(fā)出的讀/寫(xiě)請(qǐng)求,將數(shù)據(jù)塊持久化存儲(chǔ)在本地。DataNode同時(shí)也負(fù)責(zé)執(zhí)行NameNode發(fā)送過(guò)來(lái)的指令,例如進(jìn)行數(shù)據(jù)塊的創(chuàng)建、刪除和復(fù)制。大數(shù)據(jù)存儲(chǔ)9.2.2分布式文件系統(tǒng)HDFS主要有以下幾個(gè)特點(diǎn)。(1)故障檢測(cè)和自動(dòng)快速恢復(fù)硬件故障的出現(xiàn)在HDFS中是常態(tài)。由于整個(gè)HDFS系統(tǒng)由數(shù)百或數(shù)千個(gè)存儲(chǔ)著文件數(shù)據(jù)片段的服務(wù)器組成,且都很復(fù)雜,因此每一個(gè)部分都很有可能出現(xiàn)故障,這就意味著HDFS系統(tǒng)中總有一些部件是失效的??梢哉f(shuō),故障的檢測(cè)和自動(dòng)快速恢復(fù)是HDFS一個(gè)很核心的設(shè)計(jì)目標(biāo)(2)簡(jiǎn)單、一致模型大部分的HDFS程序?qū)ξ募僮鞯男枨笫且淮螌?xiě)入多次讀取。一個(gè)文件一旦被創(chuàng)建、寫(xiě)入、關(guān)閉之后就不需要再修改了,這個(gè)假定簡(jiǎn)化了數(shù)據(jù)一致的問(wèn)題,同時(shí)也能提供高吞吐量的數(shù)據(jù)訪問(wèn)。Map-Reduce程序或者網(wǎng)絡(luò)爬蟲(chóng)應(yīng)用都可以完美地適合這個(gè)模型。大數(shù)據(jù)存儲(chǔ)9.2.2分布式文件系統(tǒng)(3)大數(shù)據(jù)集運(yùn)行在HDFS上的應(yīng)用程序有著大量的數(shù)據(jù)集。典型的HDFS文件大小是GB到TB的級(jí)別,操作系統(tǒng)中磁盤(pán)塊的大小默認(rèn)是512字節(jié),而hadoop2.x版本中塊的大小默認(rèn)為128MB,其目的是減小尋址的開(kāi)銷(xiāo)。只要塊足夠大,磁盤(pán)傳輸數(shù)據(jù)的時(shí)間必定會(huì)明顯大于這個(gè)塊的尋址時(shí)間。另外,HDFS提供很高的聚合數(shù)據(jù)帶寬,即一個(gè)集群中支持?jǐn)?shù)百個(gè)節(jié)點(diǎn),另一個(gè)集群中還應(yīng)該支持千萬(wàn)級(jí)別的文件。(4)數(shù)據(jù)訪問(wèn)運(yùn)行在HDFS上的應(yīng)用程序必須流式地訪問(wèn)它們的數(shù)據(jù)集,它不是運(yùn)行在普通文件系統(tǒng)上的程序。HDFS被設(shè)計(jì)成適合批量處理的,而不是用戶(hù)交互式的。HDFS強(qiáng)調(diào)數(shù)據(jù)吞吐量,而不是數(shù)據(jù)訪問(wèn)的反應(yīng)時(shí)間。POSIX(PortableOperatingSystemInterfaceofUNIX)的很多硬性需求對(duì)HDFS應(yīng)用都是非必需的,去掉POSIX中小部分關(guān)鍵語(yǔ)義可以獲得更好的數(shù)據(jù)吞吐量。(大數(shù)據(jù)存儲(chǔ)9.2.2分布式文件系統(tǒng)(5)異構(gòu)軟硬件平臺(tái)間的可移植性HDFS被設(shè)計(jì)成可以簡(jiǎn)單實(shí)現(xiàn)平臺(tái)間的遷移,這樣將推動(dòng)需要大數(shù)據(jù)集的應(yīng)用更廣泛地采用HDFS作為平臺(tái)。(6)移動(dòng)計(jì)算比移動(dòng)數(shù)據(jù)更經(jīng)濟(jì)在靠近計(jì)算數(shù)據(jù)的真實(shí)存儲(chǔ)位置來(lái)進(jìn)行計(jì)算是最理想的狀態(tài),尤其是在數(shù)據(jù)集特別巨大的時(shí)候,傳送代碼的通信代價(jià)通常比傳送數(shù)據(jù)小得多。因此,就近計(jì)算能消除網(wǎng)絡(luò)的擁堵,提高系統(tǒng)的整體吞吐量。一個(gè)假定就是遷移程序到距離數(shù)據(jù)更近的位置比將數(shù)據(jù)移動(dòng)到程序運(yùn)行更近的位置要更好。HDFS提供了讓程序?qū)⒆约阂苿?dòng)到距離數(shù)據(jù)存儲(chǔ)更近位置的接口。大數(shù)據(jù)存儲(chǔ)9.2.2分布式文件系統(tǒng)HDFS的設(shè)計(jì)理念是為了滿(mǎn)足特定的大數(shù)據(jù)場(chǎng)景,所以HDFS也具有一定的局限性,主要體現(xiàn)在以下幾點(diǎn)。(1)小文件問(wèn)題文件系統(tǒng)的元數(shù)據(jù)是由NameNode保存在內(nèi)存中,而HDFS系統(tǒng)只有一個(gè)NameNode,文件系統(tǒng)所能存儲(chǔ)的文件總量受限于NameNode的內(nèi)存總?cè)萘?,因此過(guò)多的小文件會(huì)大量消耗NameNode的存儲(chǔ)量。(2)實(shí)時(shí)性差HDFS針對(duì)高數(shù)據(jù)吞吐量做了優(yōu)化,以獲取數(shù)據(jù)有延遲為代價(jià),因此HDFS并不適用于對(duì)實(shí)時(shí)性要求很高的應(yīng)用場(chǎng)景。(3)文件修改問(wèn)題HDFS并不支持修改文件,HDFS適合一次寫(xiě)入,然后多次讀取的場(chǎng)景。(4)不支持用戶(hù)的并行寫(xiě)同一時(shí)間內(nèi),只能有一個(gè)用戶(hù)執(zhí)行寫(xiě)操作。大數(shù)據(jù)存儲(chǔ)9.2.3NoSQL數(shù)據(jù)庫(kù)傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)可以很好地支持結(jié)構(gòu)化數(shù)據(jù)的存儲(chǔ)和管理,它們具有嚴(yán)格的數(shù)據(jù)模式和標(biāo)準(zhǔn),并且支持事務(wù)的ACID特性:原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)和持久性(Durability)。但是,大數(shù)據(jù)時(shí)代的數(shù)據(jù)大多為半結(jié)構(gòu)化和非結(jié)構(gòu)化的數(shù)據(jù),傳統(tǒng)關(guān)系型數(shù)據(jù)庫(kù)并不適合存儲(chǔ)和管理這些數(shù)據(jù),因此NoSQL數(shù)據(jù)庫(kù)應(yīng)運(yùn)而生。NoSQL具有以下幾個(gè)特點(diǎn)。(1)靈活的可擴(kuò)展性NoSQL數(shù)據(jù)庫(kù)種類(lèi)繁多,但是它們有一個(gè)共同的特點(diǎn),就是沒(méi)有關(guān)系型數(shù)據(jù)庫(kù)的關(guān)系性特性。數(shù)據(jù)之間沒(méi)有關(guān)系使擴(kuò)展變得更加容易,如在架構(gòu)層面上無(wú)形之間帶來(lái)可擴(kuò)展的能力。大數(shù)據(jù)存儲(chǔ)9.2.3NoSQL數(shù)據(jù)庫(kù)(2)大數(shù)據(jù)量和高性能大數(shù)據(jù)時(shí)代需要存儲(chǔ)的數(shù)據(jù)規(guī)模增大了好幾個(gè)數(shù)量級(jí)。盡管傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)一直在優(yōu)化以適應(yīng)這種規(guī)模的增長(zhǎng),但是其特點(diǎn)決定存儲(chǔ)上限;NoSQL數(shù)據(jù)庫(kù)具有無(wú)關(guān)系性,數(shù)據(jù)庫(kù)的結(jié)構(gòu)也相對(duì)簡(jiǎn)單,這些使得它具有非常高的讀寫(xiě)性能,尤其是在大數(shù)據(jù)量場(chǎng)景下。一般關(guān)系型數(shù)據(jù)庫(kù)使用查詢(xún)緩存,而NoSQL使用的是記錄級(jí)緩存,即一種細(xì)粒度的緩存,所以在這個(gè)層面上來(lái)說(shuō)NoSQL的性能就要高很多。(3)靈活的數(shù)據(jù)模型,可處理半結(jié)構(gòu)化和非結(jié)構(gòu)化的大數(shù)據(jù)在關(guān)系型數(shù)據(jù)庫(kù)中,數(shù)據(jù)字段需要事先建立好,因?yàn)橄到y(tǒng)運(yùn)行后再增、刪字段是一件非常麻煩的事情。NoSQL數(shù)據(jù)庫(kù)在這一方面的優(yōu)勢(shì)就顯而易見(jiàn)了——NoSQL數(shù)據(jù)庫(kù)在數(shù)據(jù)模型約束方面更加寬松,無(wú)須用戶(hù)事先為要存儲(chǔ)的數(shù)據(jù)建立字段,且允許隨時(shí)存儲(chǔ)自定義的數(shù)據(jù)格式。NoSQL數(shù)據(jù)庫(kù)可以讓?xiě)?yīng)用程序在一個(gè)數(shù)據(jù)元素中存儲(chǔ)任何結(jié)構(gòu)的數(shù)據(jù),如半結(jié)構(gòu)化、完全非結(jié)構(gòu)化的數(shù)據(jù)。大數(shù)據(jù)存儲(chǔ)9.2.3NoSQL數(shù)據(jù)庫(kù)近些年,伴隨著大數(shù)據(jù)的發(fā)展,NoSQL數(shù)據(jù)庫(kù)的發(fā)展十分迅猛。據(jù)統(tǒng)計(jì),目前已經(jīng)出現(xiàn)50~150款NoSQL數(shù)據(jù)庫(kù)系統(tǒng)。它們一般被劃分為4類(lèi),分別是鍵值數(shù)據(jù)庫(kù)、列式數(shù)據(jù)庫(kù)、文檔數(shù)據(jù)庫(kù)和圖形數(shù)據(jù)庫(kù),如圖所示。其中,鍵值數(shù)據(jù)庫(kù)以鍵值對(duì)為基本存儲(chǔ)單元,具有非??斓臋z索能力,這樣可以極大提升數(shù)據(jù)檢索的效率;列式數(shù)據(jù)庫(kù)以列簇式存儲(chǔ),具有很強(qiáng)的數(shù)據(jù)可擴(kuò)展性,更容易進(jìn)行分布式擴(kuò)展;文檔型數(shù)據(jù)庫(kù)對(duì)數(shù)據(jù)結(jié)構(gòu)的要求不嚴(yán)格,使得數(shù)據(jù)存儲(chǔ)更加靈活多變;圖形數(shù)據(jù)庫(kù)主要用于社交網(wǎng)絡(luò)、推薦系統(tǒng)等典型場(chǎng)景,在圖計(jì)算和數(shù)據(jù)可視化方面具有天然的優(yōu)勢(shì),但其構(gòu)建成本相對(duì)較高。大數(shù)據(jù)存儲(chǔ)9.2.4HBase數(shù)據(jù)庫(kù)HBase是一款基于Hadoop的分布式、可伸縮、面向列的開(kāi)源數(shù)據(jù)庫(kù),其用于存儲(chǔ)海量數(shù)據(jù)。HBase與一般的關(guān)系型數(shù)據(jù)庫(kù)不同,它是一款適用于非結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)的數(shù)據(jù)庫(kù),而且它是基于列而不是基于行的模式。HBase有如下幾個(gè)特點(diǎn)。(1)海量存儲(chǔ)HBase適合存儲(chǔ)PB級(jí)別的海量數(shù)據(jù),人們即使是使用廉價(jià)計(jì)算機(jī)上的HBase來(lái)存儲(chǔ)PB級(jí)別的數(shù)據(jù),也能在幾十毫秒到百毫秒內(nèi)獲得反饋數(shù)據(jù)。HBase的這個(gè)特點(diǎn)得益于其極易擴(kuò)展性。正因?yàn)镠Base擁有良好的擴(kuò)展性,才為海量數(shù)據(jù)的存儲(chǔ)提供了便利。(2)列式存儲(chǔ)里“列式存儲(chǔ)”其實(shí)是列族存儲(chǔ),其中列族是指多個(gè)列的組合。區(qū)別于原來(lái)關(guān)系型數(shù)據(jù)庫(kù)的行式存儲(chǔ),HBase的列式存儲(chǔ)將行內(nèi)的數(shù)據(jù)按照列族分組,并且在物理存放上具有更加緊湊的空間使用效率。大數(shù)據(jù)存儲(chǔ)9.2.4HBase數(shù)據(jù)庫(kù)(3)極易擴(kuò)展HBase的擴(kuò)展性主要體現(xiàn)在兩個(gè)方面:一方面,通過(guò)橫向添加RegionSever的機(jī)器進(jìn)行水平擴(kuò)展,可以提高HBase的上層處理能力;另一方面,通過(guò)橫向添加DataNode的機(jī)器進(jìn)行存儲(chǔ)層的擴(kuò)容,可以提升HBase的數(shù)據(jù)存儲(chǔ)能力和后端存儲(chǔ)的讀寫(xiě)能力。(4)高并發(fā)目前大部分采用HBase的架構(gòu)都是使用的廉價(jià)PC,因此單個(gè)I/O的延遲其實(shí)并不低。但是在并發(fā)的情況下,HBase的單個(gè)I/O延遲并不會(huì)變差很多,所以總體上用戶(hù)能獲得高并發(fā)、低延遲的服務(wù)。大數(shù)據(jù)存儲(chǔ)9.2.4HBase數(shù)據(jù)庫(kù)(5)稀疏稀疏主要是針對(duì)HBase列的靈活性而言的,即在列族中可以指定任意多的列,但只有列數(shù)據(jù)不為空的才會(huì)真正地占用存儲(chǔ)空間。HBase實(shí)際上是一個(gè)稀疏、多維度、有序的映射表,表中的每個(gè)單元是由行鍵、列族、列限定符和時(shí)間戳組成的唯一索引標(biāo)識(shí)。當(dāng)用戶(hù)在表中存儲(chǔ)數(shù)據(jù)時(shí),表中的每一行至少由一個(gè)列族組成,每一個(gè)列族又包含任意多的列。同一個(gè)表模式的列族數(shù)量是固定的,即每一行有相同數(shù)量的列族,且列族的名稱(chēng)相同,但每一行中每個(gè)列族的列個(gè)數(shù)是可以變動(dòng)的。HBase的數(shù)據(jù)模型示意圖如圖所示。大數(shù)據(jù)存儲(chǔ)9.2.4HBase數(shù)據(jù)庫(kù)HBase中同一列族里面的數(shù)據(jù)存儲(chǔ)在一起,列族支持動(dòng)態(tài)擴(kuò)展,即不用提前定義列的數(shù)量,可隨時(shí)增加新的列。因此,同一個(gè)表中的不同行有相同的列族,但是可能具有完全不同的列。正因如此,對(duì)于整個(gè)映射表的每行數(shù)據(jù)而言,部分列的值是空的,所以HBase的表是稀疏的。HBase表中所有的行都是排好序的,一般按照行鍵的字典序排列。一個(gè)HBase表一般都很大,所以存儲(chǔ)時(shí)在行的方向上被分割成多個(gè)HRegion。HRegion是按大小分割的,默認(rèn)大小為10GB。HBase表是自動(dòng)分割HRegion的,其自動(dòng)分割原理是:每個(gè)表最開(kāi)始只有一個(gè)HRegion,隨著數(shù)據(jù)不斷被插入表中,HRegion不斷增大;當(dāng)增大到一個(gè)閾值的時(shí)候,HRegion就會(huì)被等分成兩個(gè)新的HRegion;表中的行不斷增多,就會(huì)有越來(lái)越多的HRegion。HBase的數(shù)據(jù)單元層次示意圖如圖所示。大數(shù)據(jù)存儲(chǔ)9.2.4HBase數(shù)據(jù)庫(kù)HRegion是HBase中分布式存儲(chǔ)和負(fù)載均衡的最小單元,因此不同的HRegion可以分布在不同的HRegionServer上,但是HRegion不會(huì)拆分到多個(gè)服務(wù)器上。盡管HRegion是負(fù)載均衡的最小單元,但它并不是物理存儲(chǔ)上的最小單元。事實(shí)上,HRegion由一個(gè)或多個(gè)Store組成,每個(gè)Store保存一個(gè)列族,而每個(gè)Store又由一個(gè)MemStore和0個(gè)或多個(gè)StoreFile組成。HBase中所有的文件都存儲(chǔ)在HDFS上,其主要包括兩種文件類(lèi)型:分別為HFile和HLogFile。HRegion的內(nèi)部結(jié)構(gòu)示意圖如圖所示。大數(shù)據(jù)存儲(chǔ)9.2.4HBase數(shù)據(jù)庫(kù)HFile是Hadoop的二進(jìn)制格式文件,實(shí)際上StoreFile就是對(duì)HFile做了輕量級(jí)包裝,即StoreFile就是HFile。HFile內(nèi)部結(jié)構(gòu)示意圖如下圖所示。其中,Data為數(shù)據(jù)塊,保存的是表中的數(shù)據(jù),可以被壓縮;Meta為元數(shù)據(jù)塊,保存用戶(hù)自定義的鍵值對(duì),也可以被壓縮;FileInfo是HFile的元數(shù)據(jù)信息,用戶(hù)也可以在這一部分添加自己的元信息;DataIndex是存儲(chǔ)Data塊索引信息的塊文件,每條索引的key是被索引block中第一條記錄的key;MetaData是存儲(chǔ)Meta塊索引信息的塊文件;Trailer是HFile的最后一部分,它用來(lái)存儲(chǔ)FileInfo、DataIndex、MetaIndex塊的偏移量和尋址信息。03PART大數(shù)據(jù)檢索傳統(tǒng)意義上的索引,其目標(biāo)是加快查詢(xún)速度。索引是獨(dú)立于數(shù)據(jù)的,它通??梢员患虞d到內(nèi)存中,這樣就可以高效地進(jìn)行數(shù)據(jù)訪問(wèn),例如典型的B樹(shù)等。但是在大數(shù)據(jù)中,這一點(diǎn)就變得不太現(xiàn)實(shí)。即使索引比實(shí)際數(shù)據(jù)小很多,但由于實(shí)際數(shù)據(jù)的規(guī)模非常大,索引量依然會(huì)很大,因此索引仍然無(wú)法全部被放入內(nèi)存,這樣就導(dǎo)致很多傳統(tǒng)數(shù)據(jù)庫(kù)的索引模式對(duì)大數(shù)據(jù)失效。關(guān)系型數(shù)據(jù)庫(kù)一般采用B+樹(shù)作為索引的數(shù)據(jù)結(jié)構(gòu)。在關(guān)系型數(shù)據(jù)庫(kù)中,數(shù)據(jù)隨機(jī)無(wú)序?qū)懺诖疟P(pán)上,B+樹(shù)能夠很好地提高數(shù)據(jù)庫(kù)的讀數(shù)據(jù)能力。對(duì)于大型分布式數(shù)據(jù)系統(tǒng),B+樹(shù)的性能就沒(méi)那么強(qiáng)了;這種情況下,日志結(jié)構(gòu)合并樹(shù)(LogStructuredMergeTree,LSM樹(shù))是一個(gè)更好的選擇。9.3.1大數(shù)據(jù)索引大數(shù)據(jù)檢索LSM
樹(shù)是一種分層、有序、面向磁盤(pán)的數(shù)據(jù)結(jié)構(gòu)。LSM
樹(shù)的核心思想是以放棄部分讀數(shù)據(jù)能力來(lái)?yè)Q取寫(xiě)入能力的最大化。使用LSM
樹(shù),假定內(nèi)存足夠大,因此不需要每次更新數(shù)據(jù)時(shí)就必須將數(shù)據(jù)寫(xiě)入磁盤(pán),而是將最新的數(shù)據(jù)駐留在內(nèi)存中,等積累到閾值后再使用歸并排序的方式將內(nèi)存中的數(shù)據(jù)歸并且追加到磁盤(pán)隊(duì)尾。事實(shí)上,所有待合并的樹(shù)都是有序的,因而我們可以通過(guò)合并排序的方式將它們快速合并到一起。LSM
樹(shù)的原理是把一棵大樹(shù)拆分成N
棵小樹(shù),即將它寫(xiě)入內(nèi)存中,隨著不斷更新數(shù)據(jù),小樹(shù)越來(lái)越大,達(dá)到一定的閾值之后,內(nèi)存中的小樹(shù)會(huì)被寫(xiě)回到磁盤(pán)中,磁盤(pán)中的樹(shù)可定期做歸并操作,歸并成一棵大樹(shù),以?xún)?yōu)化讀性能。LSM
樹(shù)合并示意圖如圖所示。9.3.1大數(shù)據(jù)索引大數(shù)據(jù)檢索LSM樹(shù)與B樹(shù)的差異就體現(xiàn)于在讀性能和寫(xiě)性能之間進(jìn)行取舍,在犧牲性能的同時(shí),尋找其他方案來(lái)彌補(bǔ)。LSM樹(shù)具有批量特性,可實(shí)現(xiàn)存儲(chǔ)延遲。當(dāng)寫(xiě)操作大于讀操作時(shí),LSM樹(shù)相較于B
樹(shù)有更好的性能。這是因?yàn)殡S著插入操作的增多,為了維護(hù)B樹(shù)結(jié)構(gòu),結(jié)點(diǎn)需要分裂,讀磁盤(pán)的隨機(jī)概率會(huì)變大,性能會(huì)逐漸減弱。LSM樹(shù)的數(shù)據(jù)更新只在內(nèi)存中操作,沒(méi)有磁盤(pán)訪問(wèn)環(huán)節(jié)。如果讀取的是最近訪問(wèn)過(guò)的數(shù)據(jù),則可以直接從內(nèi)存中讀取,減少了磁盤(pán)訪問(wèn),因而提高性能。9.3.1大數(shù)據(jù)索引大數(shù)據(jù)檢索
大數(shù)據(jù)檢索技術(shù)是科學(xué)家一直都在研究的內(nèi)容,搜索引擎就是發(fā)展很多年的一項(xiàng)檢索技術(shù)。搜索引擎是根據(jù)用戶(hù)需求和利用一定算法,運(yùn)用特定策略從互聯(lián)網(wǎng)檢索出指定信息并反饋給用戶(hù)的一門(mén)
檢索技術(shù)。搜索方式大致可以分為4種:全文搜索引擎方式、元搜索引擎方式、垂直搜索引擎方式和目錄搜索引擎方式。(1)全文搜索引擎方式全文搜索引擎方式是利用爬蟲(chóng)程序抓取互聯(lián)網(wǎng)上所有相關(guān)文章并予以索引的搜索方式,一般的
網(wǎng)絡(luò)用戶(hù)使用全文搜索引擎。全文搜索能夠方便、簡(jiǎn)捷地獲得所有相關(guān)信息,但是搜索到的信息比
較龐雜,需要用戶(hù)進(jìn)一步自行篩選。在用戶(hù)沒(méi)有明確檢索意圖的情況下,這種搜索方式非常高效。9.3.2大數(shù)據(jù)高效檢索大數(shù)據(jù)檢索(2)元搜索引擎方式元搜索引擎方式是基于多個(gè)搜索引擎結(jié)果并對(duì)之整合處理的二次搜索方式。元搜索方式適用廣泛,能夠準(zhǔn)確地收集信息。不同全文搜索引擎的性能和反饋能力差異較大,導(dǎo)致各有利弊。元搜索引擎剛好能夠解決這個(gè)問(wèn)題,有利于各基本搜索引擎間的優(yōu)勢(shì)互補(bǔ)。元搜索方式還有利于對(duì)基本搜索方式進(jìn)行全局控制,引導(dǎo)全文搜索引擎自我完善。(3)垂直搜索引擎方式垂直搜索引擎方式是對(duì)某一特定行業(yè)內(nèi)數(shù)據(jù)進(jìn)行快速檢索的一種專(zhuān)業(yè)搜索方式。這種方式適用于有明確搜索意圖情況下的檢索。例如,用戶(hù)購(gòu)買(mǎi)機(jī)票、火車(chē)票、汽車(chē)票時(shí)或想要瀏覽網(wǎng)絡(luò)視頻資源時(shí),都可以直接選用行業(yè)內(nèi)專(zhuān)用搜索引擎,以準(zhǔn)確、迅速地獲得相關(guān)信息。(4)目錄搜索引擎方式目錄搜索引擎方式是依賴(lài)人工收集、處理數(shù)據(jù)并置于分類(lèi)目錄鏈接下的搜索方式。這種方式通常是網(wǎng)站內(nèi)部使用的檢索方式。9.3.2大數(shù)據(jù)高效檢索04PART應(yīng)用實(shí)例ApacheS
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 中學(xué)學(xué)生家長(zhǎng)委員會(huì)制度
- 企業(yè)辦公設(shè)備采購(gòu)管理制度
- 2026年物流管理專(zhuān)業(yè)考試供應(yīng)鏈管理與優(yōu)化題目
- 2026年心理咨詢(xún)室干預(yù)流程實(shí)操題目
- 2026年體育產(chǎn)業(yè)發(fā)展趨勢(shì)下的教練員專(zhuān)業(yè)素質(zhì)測(cè)試題
- 燙傷疤痕修復(fù)治療合同
- 傳聲港輿情優(yōu)化公司白皮書(shū):汽車(chē)行業(yè)輿情優(yōu)化解決方案
- 護(hù)理應(yīng)急管理制度內(nèi)容
- 廣西來(lái)賓市2025-2026學(xué)年高二上學(xué)期期末模擬卷(一)地理試卷(含部分解析)
- 2025年湖北科技職業(yè)學(xué)院?jiǎn)握新殬I(yè)技能考試模擬測(cè)試卷附答案解析
- 2026年蘇科版七年級(jí)上學(xué)期數(shù)學(xué)期末考試試題(含答案詳解)
- 機(jī)械加工入股合同范本
- 2025年速凍食品市場(chǎng)調(diào)研:餛飩需求與餡料多樣度分析
- 應(yīng)急環(huán)境應(yīng)急物資儲(chǔ)備應(yīng)急預(yù)案
- 醫(yī)院開(kāi)工第一課安全生產(chǎn)課件
- 煤礦地測(cè)防治水培訓(xùn)課件
- 2025年山東省濟(jì)南市高考地理一模試卷
- 醫(yī)美體雕科普知識(shí)培訓(xùn)課件
- PCBA基礎(chǔ)知識(shí)培訓(xùn)課件
- 報(bào)關(guān)用的合同模板(3篇)
- 4S店安全教育培訓(xùn)課件
評(píng)論
0/150
提交評(píng)論