Hadoop大數(shù)據(jù)平臺(tái)構(gòu)建與應(yīng)用 課件 項(xiàng)目7 購物網(wǎng)站中的數(shù)據(jù)倉庫技術(shù) 任務(wù)2 Hive存儲(chǔ)和壓縮2_第1頁
Hadoop大數(shù)據(jù)平臺(tái)構(gòu)建與應(yīng)用 課件 項(xiàng)目7 購物網(wǎng)站中的數(shù)據(jù)倉庫技術(shù) 任務(wù)2 Hive存儲(chǔ)和壓縮2_第2頁
Hadoop大數(shù)據(jù)平臺(tái)構(gòu)建與應(yīng)用 課件 項(xiàng)目7 購物網(wǎng)站中的數(shù)據(jù)倉庫技術(shù) 任務(wù)2 Hive存儲(chǔ)和壓縮2_第3頁
Hadoop大數(shù)據(jù)平臺(tái)構(gòu)建與應(yīng)用 課件 項(xiàng)目7 購物網(wǎng)站中的數(shù)據(jù)倉庫技術(shù) 任務(wù)2 Hive存儲(chǔ)和壓縮2_第4頁
Hadoop大數(shù)據(jù)平臺(tái)構(gòu)建與應(yīng)用 課件 項(xiàng)目7 購物網(wǎng)站中的數(shù)據(jù)倉庫技術(shù) 任務(wù)2 Hive存儲(chǔ)和壓縮2_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

項(xiàng)目7購物網(wǎng)站中的數(shù)據(jù)倉庫技術(shù)

任務(wù)2Hive存儲(chǔ)和壓縮項(xiàng)目背景

Hive數(shù)據(jù)倉庫技術(shù)在購物網(wǎng)站中的應(yīng)用具有深遠(yuǎn)的背景和重要的價(jià)值。它不僅能夠解決購物網(wǎng)站在數(shù)據(jù)管理和分析方面面臨的挑戰(zhàn),還能夠?yàn)橘徫锞W(wǎng)站的數(shù)字化轉(zhuǎn)型和業(yè)務(wù)發(fā)展提供強(qiáng)大的支持。知識(shí)目標(biāo)了解Hive的數(shù)據(jù)存儲(chǔ)格式、數(shù)據(jù)類型及常見存儲(chǔ)格式的結(jié)構(gòu)。技能目標(biāo)能夠理解常見數(shù)據(jù)存儲(chǔ)格式的優(yōu)缺點(diǎn)。能夠根據(jù)實(shí)際需要選擇合適的Hive存儲(chǔ)格式;素質(zhì)目標(biāo)培養(yǎng)團(tuán)隊(duì)協(xié)作能力和有效溝通技巧。鼓勵(lì)探索Hive的新功能及其在不同場(chǎng)景下的應(yīng)用潛力,具備創(chuàng)新意識(shí),并能夠通過解決實(shí)際問題提升動(dòng)手能力和創(chuàng)新能力。任務(wù)描述

本任務(wù)將重點(diǎn)介紹Hive存儲(chǔ)中的數(shù)據(jù)存儲(chǔ)格式和常見數(shù)據(jù)存儲(chǔ)格式的優(yōu)缺點(diǎn);并對(duì)Hive中常見存儲(chǔ)格式的存儲(chǔ)原理和存儲(chǔ)結(jié)構(gòu)進(jìn)行分析;最終能夠根據(jù)實(shí)際需要選擇合適的Hive存儲(chǔ)格式。content目錄01Hive存儲(chǔ)簡(jiǎn)介02Hive數(shù)據(jù)存儲(chǔ)格式Hive存儲(chǔ)簡(jiǎn)介01知識(shí)與技能——Hive存儲(chǔ)格式Hive沒有專門的數(shù)據(jù)存儲(chǔ)格式,默認(rèn)可以直接加載文本文件TextFile,同時(shí)還支持SequenceFile、RCFile等格式。Hive中常見的數(shù)據(jù)存儲(chǔ)格式,如下表1所示。表1Hive中常見的數(shù)據(jù)存儲(chǔ)格式說明:其中RcFile數(shù)據(jù)存儲(chǔ)格式是從Hive0.6版本開始支持的;Avro數(shù)據(jù)存儲(chǔ)格式是從Hive0.9版本開始支持的;Orc數(shù)據(jù)存儲(chǔ)格式是從Hive0.11版本開始支持的;Parquet數(shù)據(jù)存儲(chǔ)格式是Hive0.13版本開始支持的。選擇哪種存儲(chǔ)格式取決于具體的使用場(chǎng)景、數(shù)據(jù)大小、查詢需求以及性能要求。例如,對(duì)于需要高速讀寫和復(fù)雜查詢的場(chǎng)景,Parquet和Orc是很好的選擇;而對(duì)于需要頻繁更新的場(chǎng)景,可能需要考慮使用Avro或JSON文件格式。在實(shí)際應(yīng)用中,通常根據(jù)具體需求和測(cè)試結(jié)果來選擇最合適的存儲(chǔ)格式。當(dāng)前大數(shù)據(jù)分析、處理工作中使用最多的是TextFile、Orc和Parquet三種存儲(chǔ)格式。默認(rèn)情況下使用TextFile即可,想要提高數(shù)據(jù)存儲(chǔ)、處理和計(jì)算效率,可以考慮使用Orc或者Parquet格式。

接下來將對(duì)Hive常見數(shù)據(jù)存儲(chǔ)格式的特點(diǎn),優(yōu)缺點(diǎn)進(jìn)行展開講解。知識(shí)與技能——Hive存儲(chǔ)格式Hive數(shù)據(jù)存儲(chǔ)格式02Hive數(shù)據(jù)存儲(chǔ)格式1.TextFile存儲(chǔ)格式TextFile是Hive的默認(rèn)數(shù)據(jù)存儲(chǔ)格式,以純文本形式存儲(chǔ)數(shù)據(jù),是基于行的存儲(chǔ)模式。其主要特點(diǎn)是磁盤存儲(chǔ)開銷大,數(shù)據(jù)解析開銷大。這種存儲(chǔ)格式存儲(chǔ)的是原始文件內(nèi)容,沒有使用壓縮,所以存儲(chǔ)開銷會(huì)比較大。在反序列化讀取數(shù)據(jù)的過程中,必須逐個(gè)字符判斷是不是字段分隔符和行結(jié)束符,所以數(shù)據(jù)解析開銷也大。優(yōu)點(diǎn):簡(jiǎn)單易用,兼容性強(qiáng),可以直接通過文本編輯器查看數(shù)據(jù)。缺點(diǎn):不支持壓縮,不適合大規(guī)模數(shù)據(jù)存儲(chǔ)和處理,性能較低。實(shí)際應(yīng)用中,如果想要減少磁盤存儲(chǔ)開銷,可以對(duì)TextFile格式的數(shù)據(jù)進(jìn)行壓縮,但是部分壓縮格式在Hives中無法切割。數(shù)據(jù)的壓縮格式是在MapReduce中提出的,因?yàn)镠ive底層支持MapReduce,所以Hive中也支持這些壓縮格式。Hive數(shù)據(jù)存儲(chǔ)格式2.SequenceFile存儲(chǔ)格式SequenceFile是一種二進(jìn)制文件存儲(chǔ)格式,以Hadoop專用的二進(jìn)制文件格式存儲(chǔ),文件內(nèi)部數(shù)據(jù)是<Key,Value>鍵-值對(duì)的形式存儲(chǔ),也是基于行的存儲(chǔ)。其特點(diǎn)是使用方便,MapReduce原生支持這種數(shù)據(jù)格式,并且它還支持切分,也支持壓縮??梢灾С諲ONE、RECORD、BLOCK級(jí)別的壓縮。優(yōu)點(diǎn):支持壓縮,讀寫性能較好。缺點(diǎn):不便于直接查看內(nèi)容,需要通過Hadoop的序列化工具查看。Hive數(shù)據(jù)存儲(chǔ)格式3.RcFile存儲(chǔ)格式RcFile是RecordColumnar的縮寫,是專門為Hive設(shè)計(jì)的數(shù)據(jù)存儲(chǔ)格式,是Hadoop中第一個(gè)列式存儲(chǔ)格式。其具有很好的壓縮和快速的查詢性能,但是不支持模式演進(jìn),是一種行列存儲(chǔ)相結(jié)合的存儲(chǔ)方式(行列混合存儲(chǔ))。首先,將數(shù)據(jù)按照行分組,每個(gè)組內(nèi)部再按照列存儲(chǔ);分組時(shí)確保同一行的數(shù)據(jù)位于同一個(gè)塊上,避免讀一個(gè)記錄需要讀取多個(gè)block。其次,塊內(nèi)數(shù)據(jù)按列式存儲(chǔ),有利于數(shù)據(jù)壓縮和快速的列存取,并且能跳過不必要的列讀取。RcFile存儲(chǔ)格式整合了行存儲(chǔ)和列存儲(chǔ)的優(yōu)點(diǎn),可以稱為行列式存儲(chǔ),大層面還是屬于列式存儲(chǔ)的。優(yōu)點(diǎn):壓縮速度快,可分割,支持快速列存取。缺點(diǎn):在讀取所有列的情況下,RCFile的性能沒有SequenceFile高。不過,在實(shí)際工作中大部分的統(tǒng)計(jì)分析需求都不會(huì)讀取所有列。RCFile的數(shù)據(jù)存儲(chǔ)格式如下圖所示。對(duì)RCFile行列混合存儲(chǔ)的解析如下:在右圖中,左邊的Relation表示關(guān)系型數(shù)據(jù)庫中的數(shù)據(jù)存儲(chǔ)形式,一張有A、B、C、D四列的二維表格,第一行數(shù)據(jù)中A的值為101,B的值為111,C的值為121,D的值為131。如果將二維表格中的數(shù)據(jù)使用RCFile格式進(jìn)行存儲(chǔ),對(duì)應(yīng)圖中的中間圖形RCFile,RCFile是存儲(chǔ)在HDFS里面的,所以會(huì)有多個(gè)HDFS的Block塊。每個(gè)Block塊內(nèi)部包含多個(gè)RowGroup(行組)。RowGroup中包含的是具體的數(shù)據(jù)的存儲(chǔ)方式,如圖中右邊的圖RowGroup所示;這里面的第一行數(shù)據(jù)是所有A字段的值,因?yàn)镽owGroup是按列式存儲(chǔ),所以會(huì)把原始表中的每個(gè)列的數(shù)據(jù)存儲(chǔ)到一起,便于查詢這個(gè)列的數(shù)據(jù)。第二行是所有B字段的值。后面的依此類推。從圖中可以看出,RCFile會(huì)把數(shù)據(jù)首先按照行分成RowGroup,在RowGroup內(nèi)部按照列存儲(chǔ),每個(gè)列的數(shù)據(jù)存儲(chǔ)在一起。3.RcFile存儲(chǔ)格式RCFile的數(shù)據(jù)存儲(chǔ)格式

圖4.ORC存儲(chǔ)格式ORC是OptimizedRowColumnar的簡(jiǎn)寫,是列式存儲(chǔ)格式,由ApacheORC項(xiàng)目提供支持。ORC是在RC?le的基礎(chǔ)之上做了一些升級(jí),在性能層面有大幅度提升。優(yōu)點(diǎn):提供更好的壓縮率和讀寫性能,適合大數(shù)據(jù)處理和分析。缺點(diǎn):相對(duì)于Parquet,ORC在處理復(fù)雜數(shù)據(jù)類型時(shí)可能稍顯不足。ORC文件是保存在文件系統(tǒng)上的普通二進(jìn)制文件,一個(gè)ORC文件中可以包含多個(gè)stripe,每個(gè)ORC文件由一個(gè)或多個(gè)stripe組成,每個(gè)stripe一般為HDFS的塊大小,每個(gè)stripe包含多條記錄,這些記錄按照列進(jìn)行獨(dú)立存儲(chǔ),對(duì)應(yīng)到Parquet中就是RowGroup的概念。ORC的存儲(chǔ)格式如圖所示。

從右圖中可以看出,ORC中的數(shù)據(jù)首先被劃分為多個(gè)Stripe,每個(gè)Stripe250MB。Stripe表示ORC文件存儲(chǔ)數(shù)據(jù)的地方。Stripe內(nèi)部包含了IndexData、RowData和StripeFooter三部分。①IndexData中存儲(chǔ)的是索引數(shù)據(jù)。②RowData中存儲(chǔ)的是具體的數(shù)據(jù),這里面有多個(gè)行組,每10000行構(gòu)成一個(gè)行組。③StripeFooter中存儲(chǔ)的是數(shù)據(jù)所在的文件目錄。4.ORC存儲(chǔ)格式FileFooter中包含了ORC文件中Stripe的列表、每個(gè)Stripe的行數(shù)、每個(gè)列的數(shù)據(jù)類型,以及每個(gè)列的最小值、最大值等信息。Postscript中包含了壓縮參數(shù)和壓縮大小相關(guān)的信息。說明:ORC存儲(chǔ)格式并不是一個(gè)單純的列式存儲(chǔ)格式,它仍然是先根據(jù)行組分割整個(gè)表,在每一個(gè)行組內(nèi)進(jìn)行按列存儲(chǔ)。ORC存儲(chǔ)格式的理解也可以簡(jiǎn)化如下圖所示。從上圖中可以看出,ORC存儲(chǔ)格式和RCFile存儲(chǔ)格式在存儲(chǔ)形式上沒有特別大的區(qū)別,核心思想還是行列式存儲(chǔ)。5.Parquet存儲(chǔ)格式Parquet是一種新型的、與語言無關(guān)的且不和任何一種數(shù)據(jù)處理框架綁定的列式存儲(chǔ)結(jié)構(gòu),適配多種語言和組件。Parquet數(shù)據(jù)存儲(chǔ)格式可以在Hive、Impala、Spark等計(jì)算引擎中使用。Parquet存儲(chǔ)格式能夠很好地壓縮,具有良好的查詢性能,支持有限的模式演進(jìn)。但是,其一寫速度通常比較慢。這種存儲(chǔ)格式主要是用在ClouderaImpala上面。由于Parquet文件是以二進(jìn)制方式存儲(chǔ)的,所以文件不可以直接讀取。文件中包括該文件的數(shù)據(jù)和元數(shù)據(jù),因此Parquet格式文件是自解析的。優(yōu)點(diǎn):高效的壓縮,支持復(fù)雜的嵌套數(shù)據(jù)結(jié)構(gòu),讀寫性能好,適合大數(shù)據(jù)分析和實(shí)時(shí)查詢。缺點(diǎn):相對(duì)于其他格式,Parquet需要更多的CPU資源進(jìn)行壓縮和解壓。Parquet的存儲(chǔ)格式如下圖所示。5.Parquet存儲(chǔ)格式

說明:從圖中可以看出,Parquet的存儲(chǔ)格式原理如下:①Parquet格式的文件中包含多個(gè)RowGroup。②每個(gè)RowGroup內(nèi)部包含多個(gè)Column。③每個(gè)Column內(nèi)部包含多個(gè)Page。④Page內(nèi)部存儲(chǔ)具體的數(shù)據(jù)內(nèi)容。Parquet存儲(chǔ)格式比ORC更復(fù)雜一些,多封裝出來一層Page。ORC存儲(chǔ)格式是把數(shù)據(jù)內(nèi)容直接存儲(chǔ)到了Column這一層。Hive數(shù)據(jù)存儲(chǔ)格式總結(jié)通過上述分析,發(fā)現(xiàn)Hive支持的數(shù)據(jù)存儲(chǔ)格式很多。那么,在實(shí)際工作中應(yīng)該如何選擇Hive數(shù)據(jù)存儲(chǔ)格式?常見Hive文件存儲(chǔ)格式及壓縮后大小情況,如下表1所示?!颈碇械臄?shù)據(jù)是近似值】從上表可以看出,ORC格式在數(shù)據(jù)存儲(chǔ)層面性能最優(yōu)。所以,在實(shí)際工作中,如果希望減少Hive中的數(shù)據(jù)存儲(chǔ)量,建議使用ORC數(shù)據(jù)存儲(chǔ)格式。在使用ORC數(shù)據(jù)存儲(chǔ)格式的時(shí)候,最好配合恰當(dāng)?shù)膲?/p>

溫馨提示

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

評(píng)論

0/150

提交評(píng)論