Hadoop大數(shù)據(jù)開(kāi)發(fā)基礎(chǔ)與案例實(shí)戰(zhàn)(微課版) 課件 6 Hive數(shù)據(jù)倉(cāng)庫(kù)_第1頁(yè)
Hadoop大數(shù)據(jù)開(kāi)發(fā)基礎(chǔ)與案例實(shí)戰(zhàn)(微課版) 課件 6 Hive數(shù)據(jù)倉(cāng)庫(kù)_第2頁(yè)
Hadoop大數(shù)據(jù)開(kāi)發(fā)基礎(chǔ)與案例實(shí)戰(zhàn)(微課版) 課件 6 Hive數(shù)據(jù)倉(cāng)庫(kù)_第3頁(yè)
Hadoop大數(shù)據(jù)開(kāi)發(fā)基礎(chǔ)與案例實(shí)戰(zhàn)(微課版) 課件 6 Hive數(shù)據(jù)倉(cāng)庫(kù)_第4頁(yè)
Hadoop大數(shù)據(jù)開(kāi)發(fā)基礎(chǔ)與案例實(shí)戰(zhàn)(微課版) 課件 6 Hive數(shù)據(jù)倉(cāng)庫(kù)_第5頁(yè)
已閱讀5頁(yè),還剩166頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

Hadoop大數(shù)據(jù)項(xiàng)目開(kāi)發(fā)——Hive概述目錄content02Hive支持的文件存儲(chǔ)格式01Hive簡(jiǎn)介03Hive特點(diǎn)Hive簡(jiǎn)介Hive是構(gòu)建在Hadoop上的數(shù)據(jù)倉(cāng)庫(kù)Hive是Hadoop的頂級(jí)項(xiàng)目之一Hive可以將Hive查詢語(yǔ)句解析成MapReduce作業(yè)Hive不適合實(shí)現(xiàn)復(fù)雜的機(jī)器學(xué)習(xí)算法等Hive適合批量處理海量數(shù)據(jù)。Hive并非數(shù)據(jù)庫(kù)。Hive的數(shù)據(jù)存儲(chǔ)在HDFSHive支持的文件存儲(chǔ)格式文本文件(TextFile)該格式是Hive默認(rèn)的存儲(chǔ)格式。文本文件格式簡(jiǎn)單,但用它存儲(chǔ)的數(shù)據(jù)會(huì)占用大量的磁盤空間。序列文件(SequenceFile)該格式文件存儲(chǔ)的數(shù)據(jù)是有序鍵值對(duì),并具有可分割和可壓縮的特點(diǎn)。列式記錄文件(RCFile)使用該格式存儲(chǔ)數(shù)據(jù)時(shí),先對(duì)數(shù)據(jù)水平切分,再做垂直切分。Hive的特點(diǎn)操作接口采用類SQL語(yǔ)法,提供快速開(kāi)發(fā)的能力。Hive優(yōu)勢(shì)在于處理大數(shù)據(jù)Hive支持用戶自定義函數(shù)優(yōu)點(diǎn)缺點(diǎn)Hive的HQL表達(dá)能力有限Hive的效率比較低Hive延時(shí)較高本章小結(jié)本節(jié)介紹了Hive,包括Hive簡(jiǎn)介,Hive支持的文件存儲(chǔ)格式和Hive特點(diǎn),相信大家對(duì)Hive有了全新的認(rèn)識(shí)。Hadoop大數(shù)據(jù)項(xiàng)目開(kāi)發(fā)——MySQL安裝目錄content01MySQL安裝02MySQL授權(quán)MySQL安裝步驟由于Hive的元數(shù)據(jù)需要保存在關(guān)系型數(shù)據(jù)庫(kù)MySQL中,本節(jié)將介紹如何在CentOS環(huán)境下安裝MySQL,以便用它來(lái)保存Hive的元數(shù)據(jù)。MySQL安裝步驟查詢Mariadb步驟1卸載Mariadb步驟2MySQL安裝步驟Xshell中的文件傳輸拖到文件傳輸窗口查看MySQL安裝包步驟3MySQL安裝步驟安裝MySQL步驟4MySQL安裝步驟啟動(dòng)服務(wù)和查看服務(wù)狀態(tài)步驟5啟動(dòng)MySQL服務(wù)查看MySQL服務(wù)狀態(tài)MySQL安裝步驟查詢初始密碼步驟6:查詢密碼命令MySQL安裝步驟啟動(dòng)HBase步驟7:輸入/var/log/mysqld.log文件中查詢到的默認(rèn)root用戶登錄密碼輸入新密碼Password123$輸入新密碼Password123$輸入新密碼Password123$輸入新密碼Password123$初始化命令MySQL授權(quán)登錄到MySQL命令輸入新設(shè)定的密碼Password123$MySQL授權(quán)本章小結(jié)本節(jié)介紹了MySQL的安裝,相信大家對(duì)Linux操作系統(tǒng)下安裝MySQL有了全新的認(rèn)識(shí),為我們后續(xù)學(xué)習(xí)Hive打下來(lái)基礎(chǔ)。Hadoop大數(shù)據(jù)項(xiàng)目開(kāi)發(fā)——Hive安裝與驗(yàn)證目錄content0201Hive安裝Hive驗(yàn)證Hive安裝步驟Xshell中的文件傳輸拖到文件傳輸窗口查看Hive安裝包步驟1Hive安裝步驟解壓Hive安裝包命令Hive系統(tǒng)環(huán)境變量步驟2步驟3重命名命令步驟4編輯profile文件步驟5使profile文件生效Hive安裝步驟步驟6hive-site.sh文件內(nèi)容Hive安裝步驟步驟7將mysql驅(qū)動(dòng)jar包上傳到Hive的安裝目錄的lib中Hive驗(yàn)證啟動(dòng)HiveHive驗(yàn)證Hive的元數(shù)據(jù)信息表本章小結(jié)本節(jié)介紹了Hive的安裝與配置,相信大家已經(jīng)掌握了Hive的安裝與配置,為我們后續(xù)學(xué)習(xí)Hive表操作打下了堅(jiān)實(shí)的基礎(chǔ)。Hadoop大數(shù)據(jù)項(xiàng)目開(kāi)發(fā)——Hive安裝與驗(yàn)證目錄content0201Hive安裝Hive驗(yàn)證Hive安裝步驟步驟1:使用Xshell的文件傳輸功能,將下載的Hive安裝包傳到虛擬機(jī)master中,點(diǎn)擊Xshell中的文件傳輸,然后將Hive安裝包直接拖到文件傳輸窗口即可,此時(shí)可以切換到文件傳輸路徑;Hive安裝步驟Hive安裝步驟使用查看命令,查看Hive安裝包是否已經(jīng)傳輸成功。Hive安裝步驟步驟2:在虛擬機(jī)master上安裝Hive,解壓Hive安裝包即可,解壓命令如下所示:步驟3:為了配置Hive系統(tǒng)環(huán)境變量方便,此處可以修改目錄名,命令如下:Hive安裝步驟步驟4:配置Hive系統(tǒng)環(huán)境變量,修改文件/etc/profile,執(zhí)行以下命令:在文件的末尾添加如下內(nèi)容:步驟5:profile文件配置完成之后,需要使剛剛修改的內(nèi)容生效,執(zhí)行如下命令:Hive安裝步驟步驟6:修改Hive的配置文件:新建hive-site.xml配置文件配置文件位于Hive安裝目錄下的conf目錄下面,在該目錄下可以使用自帶hive-default.xml.template文件,由于該文件中內(nèi)容較多,本課程中使用新建hive-site.xml的方式。Hive安裝步驟hive-site.xml配置文件的內(nèi)容如下:Hive安裝步驟上述配置文件中參數(shù)是設(shè)置存儲(chǔ)元數(shù)據(jù)的:javax.jdo.option.ConnectionURL:連接URL;javax.jdo.option.ConnectionDriverName:數(shù)據(jù)庫(kù)驅(qū)動(dòng)javax.jdo.option.ConnectionUserName:數(shù)據(jù)庫(kù)用戶名;javax.jdo.option.ConnectionPassword:數(shù)據(jù)庫(kù)密碼。Hive安裝步驟<value>jdbc:mysql://master:3306/hive?createDatabaseIfNotExist=true&characterEncoding=utf8</value>中:master是MySQL存儲(chǔ)元數(shù)據(jù)的主機(jī)名;Hive是MySQL中數(shù)據(jù)庫(kù)的名稱,用來(lái)存儲(chǔ)Hive中的元數(shù)據(jù)信息;配置JDBCURL時(shí),將&寫為&:因?yàn)?符號(hào)在xml中有特殊語(yǔ)義,必須進(jìn)?轉(zhuǎn)義。Hive安裝步驟如果想要設(shè)置Hive在hdfs中的存儲(chǔ)路徑,可以使用如下參數(shù)配置:Hive.metastore.warehouse.dir如非特殊需求,則不需要配置,默認(rèn)值為/user/hive/warehouseHive安裝步驟步驟7:上傳一個(gè)mysql的驅(qū)動(dòng)jar包到Hive的安裝目錄的lib中,mysql的驅(qū)動(dòng)jar包需要自行下載,本課程中使用的版本為mysql-connector-java-8.0.16.jar。Hive驗(yàn)證啟動(dòng)Hive:確保要連接的Hadoop集群是啟動(dòng)狀態(tài),并且能夠正常運(yùn)行;確保MySQL服務(wù)是運(yùn)行狀態(tài)。輸入hive命令,出現(xiàn)如圖界面,則hive安裝成功。Hive驗(yàn)證通過(guò)Navicat連接到master上的的MySQL,如下所示:Hive驗(yàn)證可以查看Hive的元數(shù)據(jù)信息,DBS表中存儲(chǔ)著Hive中數(shù)據(jù)庫(kù)信息,TBLS中存儲(chǔ)中Hive中的表信息,包括表名、數(shù)據(jù)位置、所有者等信息,VERSION中存儲(chǔ)著版本信息,Hive的元數(shù)據(jù)信息表如圖所示。本章小結(jié)本節(jié)介紹了Hive的安裝與配置,包括Hive的安裝,Hive配置文件的修改,Hive的啟動(dòng)以及查看Hive的元數(shù)據(jù)信息,相信大家已經(jīng)對(duì)Hive的安裝與配置有了新的認(rèn)識(shí),為我們后續(xù)學(xué)習(xí)Hive打下了堅(jiān)實(shí)的基礎(chǔ)。Hadoop大數(shù)據(jù)項(xiàng)目開(kāi)發(fā)——數(shù)據(jù)庫(kù)操作目錄content0201創(chuàng)建數(shù)據(jù)庫(kù)查看數(shù)據(jù)庫(kù)02刪除數(shù)據(jù)庫(kù)創(chuàng)建數(shù)據(jù)庫(kù)此時(shí)需要初始化數(shù)據(jù),再打開(kāi)一個(gè)終端,在linux命令行下執(zhí)行如下命令:第一次執(zhí)行該命令時(shí),會(huì)報(bào)如下錯(cuò)誤:(1)show:顯示數(shù)據(jù)庫(kù),執(zhí)行命令初始化完成創(chuàng)建數(shù)據(jù)庫(kù)初始化數(shù)據(jù)完成后,再執(zhí)行showdatabases;默認(rèn)數(shù)據(jù)庫(kù)存儲(chǔ)路徑:hdfs://master:9000/user/hive/warehouseHive默認(rèn)數(shù)據(jù)庫(kù):default創(chuàng)建數(shù)據(jù)庫(kù)(2)創(chuàng)建數(shù)據(jù)庫(kù)的語(yǔ)法如下:createdatabasedbnameIFNOTEXISTSCOMMENTLOCATIONWITHDBPROPERTIES;createdatabase:創(chuàng)建數(shù)據(jù)的關(guān)鍵字dbname:要?jiǎng)?chuàng)建的數(shù)據(jù)庫(kù)名稱IFNOTEXISTS:如果不存在則創(chuàng)建COMMENT:添加注釋LOCATION:指定hdfs存放路徑WITHDBPROPERTIES:添加自定義屬性。創(chuàng)建數(shù)據(jù)庫(kù)(3)新建數(shù)據(jù)庫(kù)bigdata數(shù)據(jù)庫(kù)建好后,在hdfs中會(huì)生成一個(gè)數(shù)據(jù)庫(kù)目錄,見(jiàn)上圖;創(chuàng)建數(shù)據(jù)庫(kù)(4)創(chuàng)建數(shù)據(jù)庫(kù)時(shí),如果數(shù)據(jù)庫(kù)已經(jīng)存在則會(huì)報(bào)錯(cuò)再次創(chuàng)建數(shù)據(jù)庫(kù)createdatabasebigdata;則出現(xiàn)下圖所示報(bào)錯(cuò)信息:為了避免創(chuàng)建的數(shù)據(jù)庫(kù)已經(jīng)存在時(shí)系統(tǒng)報(bào)錯(cuò),可以添加

ifnotexists命令,如圖所示:數(shù)據(jù)庫(kù)在HDFS上默認(rèn)存儲(chǔ)路徑是/user/hive/warehouse/*.db。查看數(shù)據(jù)庫(kù)(1)describe:查看數(shù)據(jù)庫(kù)bigdata的默認(rèn)存儲(chǔ)路徑(2)use:打開(kāi)數(shù)據(jù)庫(kù)查看數(shù)據(jù)庫(kù)新建數(shù)據(jù)庫(kù)bigdata的默認(rèn)存儲(chǔ)路徑如下圖所示刪除數(shù)據(jù)庫(kù)(1)drop:刪除空數(shù)據(jù)庫(kù),命令如下:如果刪除的數(shù)據(jù)庫(kù)不存在,直接刪除則會(huì)報(bào)如下錯(cuò)誤,命令如下:為了避免上述錯(cuò)誤,在刪除數(shù)據(jù)時(shí)可以使用ifexists判斷數(shù)據(jù)庫(kù)是否存在,命令如下:刪除數(shù)據(jù)庫(kù)(2)如果數(shù)據(jù)庫(kù)不為空,使用drop命令刪除數(shù)據(jù)庫(kù),則會(huì)出現(xiàn)如下錯(cuò)誤,命令如下:為了避免上述錯(cuò)誤,刪除非空數(shù)據(jù)庫(kù)時(shí)可以采用cascade命令,強(qiáng)制刪除,命令如下:本章小結(jié)本節(jié)內(nèi)容主要介紹了Hive中的數(shù)據(jù)庫(kù),包括創(chuàng)建數(shù)據(jù)庫(kù)、查詢數(shù)據(jù)庫(kù)和刪除數(shù)據(jù)庫(kù),為后續(xù)學(xué)校表操作奠定了堅(jiān)實(shí)的基礎(chǔ)。Hadoop大數(shù)據(jù)項(xiàng)目開(kāi)發(fā)——Hive表簡(jiǎn)介目錄content02外部表01內(nèi)部表03分區(qū)表內(nèi)部表默認(rèn)創(chuàng)建的表都是屬于內(nèi)部表Hive會(huì)控制著數(shù)據(jù)的生命周期內(nèi)部表默認(rèn)存儲(chǔ)在warehouse目錄中當(dāng)刪除表時(shí),表的數(shù)據(jù)和元數(shù)據(jù)將會(huì)被同時(shí)刪除內(nèi)部表的特點(diǎn)內(nèi)部表被刪除后,表的元數(shù)據(jù)和表數(shù)據(jù)都從HDFS中完全刪除創(chuàng)建Hive內(nèi)部表時(shí),數(shù)據(jù)將真實(shí)存在于表所在的目錄內(nèi),刪除內(nèi)部表時(shí),物理數(shù)據(jù)和文件也一并刪除。內(nèi)部表數(shù)據(jù)存儲(chǔ)的位置是HDFS下的warehouse目錄下,如果創(chuàng)建內(nèi)部表時(shí)沒(méi)有指定location,就會(huì)在/user/hive/warehouse/下新建一個(gè)表目錄。外部表Hive并非認(rèn)為其完全擁有這份數(shù)據(jù)刪除該表并不會(huì)刪除掉這份數(shù)據(jù),元數(shù)據(jù)信息會(huì)被刪除掉。外部表管理僅僅是在邏輯和語(yǔ)法意義上的,刪除時(shí)也并不物理刪除外部目錄,而僅僅是將引用和定義刪除。外部表的特點(diǎn)表中的數(shù)據(jù)在刪除后仍然在HDFS中如果創(chuàng)建一個(gè)外部表,在刪除表之后,只有與表相關(guān)的元數(shù)據(jù)被刪除,而不會(huì)刪除表的內(nèi)容。內(nèi)部表和外部表的區(qū)別內(nèi)部表未被external修飾;外部表被external修飾內(nèi)部表數(shù)據(jù)由Hive自身管理,外部表數(shù)據(jù)由HDFS管理內(nèi)部表的目錄在Hive的倉(cāng)庫(kù)目錄中,而外部表的目錄由用戶指定刪除內(nèi)部表會(huì)直接刪除元數(shù)據(jù)及存儲(chǔ)數(shù)據(jù);刪除外部表僅刪除元數(shù)據(jù),HDFS上文件不會(huì)被刪除Hive創(chuàng)建內(nèi)部表時(shí),會(huì)將數(shù)據(jù)移動(dòng)到數(shù)據(jù)倉(cāng)庫(kù)指向的路徑分區(qū)表分區(qū)表可以根據(jù)PARTITIONEDBY創(chuàng)建分區(qū)表。分區(qū)表實(shí)際上就是對(duì)應(yīng)一個(gè)HDFS文件系統(tǒng)上的獨(dú)立文件夾分區(qū)表的特點(diǎn)一個(gè)表可以擁有一個(gè)或者多個(gè)分區(qū)分區(qū)是以偽字段的形式在表結(jié)構(gòu)中存在分區(qū)建表分為2種本章小結(jié)本節(jié)內(nèi)容主要介紹了Hive中表的相關(guān)操作,包括內(nèi)部表,外部表和分區(qū)表的操作,相信大家已經(jīng)對(duì)Hive表有了新的認(rèn)識(shí),為我們后續(xù)學(xué)習(xí)Hive打下了堅(jiān)實(shí)的基礎(chǔ)。Hadoop大數(shù)據(jù)項(xiàng)目開(kāi)發(fā)——數(shù)據(jù)表創(chuàng)建操作目錄content0201創(chuàng)建內(nèi)部表創(chuàng)建內(nèi)部表創(chuàng)建數(shù)據(jù)庫(kù)創(chuàng)建數(shù)據(jù)表的語(yǔ)法如下:CREATE[EXTERNAL]TABLE[IFNOTEXISTS]table_name[(col_namedata_type[COMMENTcol_comment],...)][COMMENTtable_comment][PARTITIONEDBY(col_namedata_type[COMMENTcol_comment],...)][CLUSTEREDBY(col_name,col_name,...)storedas文件存儲(chǔ)類型[ROWFORMATrow_format][LOCATIONhdfs_path]創(chuàng)建內(nèi)部表初始化數(shù)據(jù)報(bào)錯(cuò)信息使用bigdata數(shù)據(jù)庫(kù)創(chuàng)建表創(chuàng)建內(nèi)部表根據(jù)查詢結(jié)果創(chuàng)建表創(chuàng)建內(nèi)部表student01在HDFS上的存儲(chǔ)創(chuàng)建內(nèi)部表根據(jù)已經(jīng)存在的表結(jié)構(gòu)創(chuàng)建表student3在HDFS上的存儲(chǔ)創(chuàng)建內(nèi)部表查詢表的類型創(chuàng)建外部表創(chuàng)建外部表查詢表的類型本章小結(jié)本節(jié)內(nèi)容主要介紹了Hive中內(nèi)部表和外部表的創(chuàng)建,相信大家已經(jīng)對(duì)Hive表的創(chuàng)建有了新的認(rèn)識(shí),為我們后續(xù)學(xué)習(xí)Hive打下了堅(jiān)實(shí)的基礎(chǔ)。Hadoop大數(shù)據(jù)項(xiàng)目開(kāi)發(fā)——分區(qū)表操作目錄content0201創(chuàng)建分區(qū)表查詢分區(qū)表0403增加分區(qū)刪除分區(qū)創(chuàng)建分區(qū)表創(chuàng)建分區(qū)表加載數(shù)據(jù)到分區(qū)表創(chuàng)建分區(qū)表在對(duì)應(yīng)的HDFS存儲(chǔ)路徑目錄下產(chǎn)生的目錄查詢分區(qū)表查詢分區(qū)表中分區(qū)為202306中的數(shù)據(jù)查看分區(qū)表分區(qū)數(shù)量增加分區(qū)增加分區(qū)202304HDFS上對(duì)應(yīng)的變化增加分區(qū)增加分區(qū)202301和202302HDFS上對(duì)應(yīng)的變化刪除分區(qū)刪除202301分區(qū)HDFS上對(duì)應(yīng)的變化刪除分區(qū)HDFS上對(duì)應(yīng)的變化刪除202302和202004分區(qū)本章小結(jié)本節(jié)內(nèi)容主要介紹了分區(qū)表的相關(guān)操作,包括分區(qū)表的創(chuàng)建、增加分區(qū)、刪除分區(qū)和查看分區(qū)表等操作。相信大家對(duì)Hive分區(qū)表有了一定的了解,為我們后續(xù)學(xué)習(xí)Hive表操作,打下了堅(jiān)實(shí)的基礎(chǔ)。Hadoop大數(shù)據(jù)項(xiàng)目開(kāi)發(fā)——Hive數(shù)據(jù)導(dǎo)入導(dǎo)出目錄content0201數(shù)據(jù)導(dǎo)入數(shù)據(jù)導(dǎo)出數(shù)據(jù)導(dǎo)入—向表中裝載數(shù)據(jù)語(yǔ)法如下:loaddata[local]inpath'文件名'[overwrite]intotablestudent[partition(partcol1=val1,…)];向表中裝載數(shù)據(jù):數(shù)據(jù)導(dǎo)入—向表中裝載數(shù)據(jù)加載學(xué)生信息到student表中student表中的數(shù)據(jù)與HDFS上student目錄下的student.txt文件中的內(nèi)容相同/user/hive/warehouse/bigdata.db/student目錄下面的數(shù)據(jù)位于家目錄下待上傳的數(shù)據(jù)本地文件加載到Hive表中數(shù)據(jù)導(dǎo)入—向表中裝載數(shù)據(jù)HDFS上student表中數(shù)據(jù)存儲(chǔ)的位置本地文件加載到Hive表中數(shù)據(jù)導(dǎo)入—向表中裝載數(shù)據(jù)加載HDFS文件到Hive中將文件上傳至HDFS上清除student表中數(shù)據(jù)將HDFS根目錄下的student.txt文件加載到student表中student表中的數(shù)據(jù)數(shù)據(jù)導(dǎo)入—向表中裝載數(shù)據(jù)加載HDFS文件到Hive中直接把文件上傳到表所在hdfs的目錄下數(shù)據(jù)導(dǎo)入—向表中裝載數(shù)據(jù)加載數(shù)據(jù)覆蓋表中數(shù)據(jù)數(shù)據(jù)導(dǎo)入查詢表類型通過(guò)查詢語(yǔ)句向表中插入數(shù)據(jù)數(shù)據(jù)導(dǎo)入查詢語(yǔ)句中創(chuàng)建表并加載數(shù)據(jù)數(shù)據(jù)導(dǎo)入查詢表類型通過(guò)location指定加載數(shù)據(jù)路徑數(shù)據(jù)導(dǎo)入通過(guò)location指定加載數(shù)據(jù)路徑數(shù)據(jù)導(dǎo)出—insert方式將查詢的結(jié)果導(dǎo)出到本地?cái)?shù)據(jù)導(dǎo)出—insert方式將查詢的結(jié)果格式化導(dǎo)出到本地?cái)?shù)據(jù)導(dǎo)出—HiveShell命令導(dǎo)出數(shù)據(jù)導(dǎo)出—HiveShell命令導(dǎo)出HiveShell命令導(dǎo)出基本語(yǔ)法如下:hive-e執(zhí)行語(yǔ)句>filehive-f腳本>file數(shù)據(jù)導(dǎo)出—HiveShell命令導(dǎo)出student2.txt文件中的數(shù)據(jù)HiveShell命令導(dǎo)出數(shù)據(jù)導(dǎo)出—HiveShell命令導(dǎo)出查詢表類型export導(dǎo)出到HDFS上本章小結(jié)本節(jié)內(nèi)容主要介紹了Hive中的數(shù)據(jù)庫(kù),包括創(chuàng)建數(shù)據(jù)庫(kù)、查詢數(shù)據(jù)庫(kù)和刪除數(shù)據(jù)庫(kù),為后續(xù)學(xué)校表操作奠定了堅(jiān)實(shí)的基礎(chǔ)。Hadoop大數(shù)據(jù)項(xiàng)目開(kāi)發(fā)——表查詢操作目錄content02條件查詢01基本查詢04排序03分組查詢Hive表查詢Hive中查詢語(yǔ)句的語(yǔ)法格式如下所示:select[ALL|DISTINCT]select_expr,select_expr,...FROMtable_reference[WHEREwhere_condition][GROUPBYcol_list][ORDERBYcol_list][CLUSTERBYcol_list|[DISTRIBUTEBYcol_list][SORTBYcol_list]][LIMITnumber]Hive表查詢創(chuàng)建emp表將本地?cái)?shù)據(jù)emp.txt文件加載到emp表基本查詢?nèi)聿樵兲囟胁樵兓静樵僉IMIT語(yǔ)句列別名條件查詢—WHERE語(yǔ)句查詢出薪水大于1000的所有員工查詢出薪水等于5000的所有員工查詢工資在500到1000的員工信息條件查詢—WHERE語(yǔ)句查詢comm為空的所有員工信息查詢工資是1500和5000的員工信息條件查詢—LIKE關(guān)鍵字查找以2開(kāi)頭薪水的員工信息查找第二個(gè)數(shù)值為2的薪水的員工信息條件查詢—邏輯運(yùn)算符查詢薪水大于1000,部門是30查詢薪水大于1000,或部門是30查詢除20和30部門以外的員工信息分組查詢—GROUPBY全表查詢特定列查詢計(jì)算emp表每個(gè)部門的平均工資分組查詢—GROUPBY計(jì)算emp每個(gè)部門中每個(gè)崗位的最高薪水分組查詢—HAVING不正確使用方法求每個(gè)部門的平均薪水大于2000的部門排序—全局排序查詢員工信息按工資升序排列排序—全局排序查詢員工信息按工資降序排列排序—全局排序按照員工薪水的2倍排序排序—全局排序按照部門和工資升序排序排序—分區(qū)排序先按照部門編號(hào)分區(qū),再按照員工編號(hào)降序排序設(shè)置reduce數(shù)量查詢語(yǔ)句查詢數(shù)據(jù)存儲(chǔ)到/root/result中本章小結(jié)本節(jié)介紹了Hive表查詢,包括基本查詢、條件查詢、分組和排序,能夠?qū)崿F(xiàn)Hive表數(shù)據(jù)的查詢,相信大家對(duì)Hive表查詢有了一定的了解。Hadoop大數(shù)據(jù)項(xiàng)目開(kāi)發(fā)——Hive函數(shù)目錄content02Hive窗口函數(shù)01Hive內(nèi)置函數(shù)Hive內(nèi)置函數(shù)分類函數(shù)描述數(shù)值相關(guān)函數(shù)

greatest(Tv1,Tv2,..)返回一組相同類型數(shù)據(jù)中的最大值(過(guò)濾NULL值)least(Tv1,Tv2,...)返回一組相同類型數(shù)據(jù)中的最小值(過(guò)濾NULL值)rand()返回0~1之間的隨機(jī)值rand(INTseed)返回固定的隨機(jī)值round(DOUBLEA)返回參數(shù)A四舍五入后的BIGINT值Hive內(nèi)置函數(shù)分類函數(shù)描述字符串相關(guān)函數(shù)

upper(STRINGA)ucase(STRINGA)將字符串A中的小寫字母轉(zhuǎn)換成大寫字母lower(STRINGA)lcase(STRINGA)將字符串A中的大寫字母轉(zhuǎn)換成小寫字母concat(STRINGA,STRINGB,...)字符串拼接函數(shù),返回A連接B等產(chǎn)生的字符串regexp_replace(STRINGA,STRINGB,STRINGC)字符串替換函數(shù),用字符串C替換字符串A中的Brepeat(STRINGstr,INTn)返回字符串str重復(fù)n次的結(jié)果trim(STRINGA)ltrim(STRINGA)rtrim(STRINGA)trim(STRINGA)刪除字符串兩邊的空格,但不會(huì)刪除中間的空格,ltrim(STRINGA)和rtrim(STRINGA)分別刪除左邊和右邊的空格length(STRINGstr)獲取字符串str的長(zhǎng)度split(STRINGstr,regex)按給定的正則表達(dá)式regex分割字符串str,將結(jié)果作為字符串?dāng)?shù)組返回substr(STRINGa,STRINGb)從字符串a(chǎn)中,第b位開(kāi)始取,取右邊所有的字符Hive內(nèi)置函數(shù)分類函數(shù)描述條件函數(shù)

if(BOOLEANtestCondition,TvalueTrue,TvalueFalseOrNULL)函數(shù)會(huì)根據(jù)條件返回不同的值,如果滿足條件,返回第一個(gè)參數(shù)值,否則返回第二個(gè)參數(shù)值nvl(Tvalue,Tdefault_value)判斷值是否為空,如果T(可以為任意數(shù)據(jù)類型)為空,則返回默認(rèn)值時(shí)間相關(guān)函數(shù)

unix_timestamp()獲取當(dāng)前系統(tǒng)時(shí)間,返回值為數(shù)字型秒數(shù)to_date(stringtimestamp)將時(shí)間戳轉(zhuǎn)換為日期,傳入?yún)?shù)也可以是當(dāng)前時(shí)間戳current_timestampdatediff(STRINGenddate,STRINGstartdate)返回INT類型的兩個(gè)日期相差的天數(shù)date_add(STRINGstartdate,INTdays)獲取增加天數(shù)后的日期last_day(STRINGdate)獲取傳入日期的月末日期Hive內(nèi)置函數(shù)分類函數(shù)描述聚合函數(shù)

count(*)和count(expr)返回檢索行的總數(shù)sum(col)和sum(DISTINCTcol)返回col所有元素的總和avg(col)和avg(DISTINCTcol)返回col所有元素的平均值min(col)返回col所有元素的最小值max(col)返回col所有元素的最大值類型轉(zhuǎn)換函數(shù)cast(expras<type>)將一個(gè)數(shù)據(jù)類型轉(zhuǎn)換為另一個(gè)數(shù)據(jù)類型膨脹函數(shù)explode()將一行數(shù)據(jù)轉(zhuǎn)換成列數(shù)據(jù),可以用于array和map類型的數(shù)據(jù),函數(shù)中的參數(shù)傳入的是arrary數(shù)據(jù)類型的列名。此函數(shù)不能關(guān)聯(lián)原有的表中的其他字段、不能與groupby、clusterby、distributeby、sortby聯(lián)用、不能進(jìn)行UDTF嵌套和不允許選擇其他表達(dá)式。窗口分析函數(shù)想要既顯示聚集前的數(shù)據(jù),又要顯示聚集后的數(shù)據(jù),引入了窗口函數(shù)。窗口函數(shù)又叫分析函數(shù),窗口函數(shù)兼具分組和排序功能。over()默認(rèn)的窗口大小是從第一行到最后一行的所有數(shù)據(jù)。partitionby是按照要求進(jìn)行分組,這樣設(shè)定之后,over的窗口大小就是一個(gè)分組。當(dāng)只指定分組時(shí),sum、avg統(tǒng)計(jì)的數(shù)據(jù)就是分組內(nèi)的數(shù)據(jù),當(dāng)既指定分組又指定排序時(shí),sum、avg統(tǒng)計(jì)的數(shù)據(jù)就是分組第一行到當(dāng)前行的數(shù)據(jù)。窗口函數(shù)最重要的關(guān)鍵字是partitionby和orderby。分組TOPN函數(shù)創(chuàng)建userinfo表將本地?cái)?shù)據(jù)user.txt文件加載到userinfo表分組TOPN函數(shù)查詢結(jié)果分組TOPN函數(shù)最終查詢結(jié)果累加計(jì)算函數(shù)創(chuàng)建index表將本地?cái)?shù)據(jù)index.txt文件加載到index表累加計(jì)算函數(shù)最終查詢結(jié)果本章小結(jié)本節(jié)介紹了Hive函數(shù),包括內(nèi)置函數(shù)和窗口函數(shù),在窗口函數(shù)中介紹了分組求TOPN和累加計(jì)算,相信大家對(duì)Hive函數(shù)有了一定的了解,為我們后續(xù)數(shù)據(jù)使用Hive函數(shù)打下了堅(jiān)實(shí)的基礎(chǔ)。Hadoop大數(shù)據(jù)項(xiàng)目開(kāi)發(fā)——Hive數(shù)據(jù)類型目錄content02Hive復(fù)合數(shù)據(jù)類型01Hive基本數(shù)據(jù)類型03復(fù)合數(shù)據(jù)類型的定義與使用方法Hive基本數(shù)據(jù)類型類型描述TINYINT(tinyint)一個(gè)字節(jié)(8位)有符號(hào)整數(shù),-128~127SMALLINT(smallint)2字節(jié)(16位)有符號(hào)整數(shù),-32768~32767INT(int)4字節(jié)(32位)有符號(hào)整數(shù)BIGINT(bigint)8字節(jié)(64位)有符號(hào)整數(shù)FLOAT(float)4字節(jié)(32位)單精度浮點(diǎn)數(shù)DOUBLE(double)8字節(jié)(64位)雙精度浮點(diǎn)數(shù)DECIMAL(decimal)任意精度的帶符號(hào)小數(shù)BOOLEAN(boolean)true/falseSTRING(string)字符串VARCHAR(varchar)變長(zhǎng)字符串CHAR(char)固定長(zhǎng)度字符串BINANY(binany)字節(jié)序列TIMESTAMP(timestamp)時(shí)間戳,納秒精度 DATE(date)日期Hive復(fù)合數(shù)據(jù)類型數(shù)據(jù)類型描述語(yǔ)法示例array數(shù)組是一組具有相同類型和名稱的變量的集合。這些變量稱為數(shù)組的元素,每個(gè)數(shù)組元素都有一個(gè)編號(hào),編號(hào)從零開(kāi)始。array()mapMAP是一組鍵-值對(duì)元組集合,使用數(shù)組表示法可以訪問(wèn)數(shù)據(jù)。map()struct和C語(yǔ)言中的struct類似,都可以通過(guò)“點(diǎn)”符號(hào)訪問(wèn)元素內(nèi)容。struct()復(fù)合數(shù)據(jù)類型的定義與使用方法數(shù)組類型鍵值對(duì)類型結(jié)構(gòu)體類型復(fù)合數(shù)據(jù)類型的定義與使用方法要獲取每個(gè)學(xué)生的數(shù)學(xué)成績(jī)獲取每個(gè)學(xué)生的父親的聯(lián)系電話獲取每個(gè)學(xué)生的家庭住址的省和市信息將本地的“student.txt”文件加載到student表本章小結(jié)本節(jié)介紹了Hive中的數(shù)據(jù)類型,包括基本數(shù)據(jù)類型和復(fù)合數(shù)據(jù)類型,以及復(fù)合數(shù)據(jù)類型的定義與使用方法,相信大家對(duì)Hive中的數(shù)據(jù)類型有了一定的了解,為我們后續(xù)Hive數(shù)據(jù)打下了堅(jiān)實(shí)的基礎(chǔ)。Hadoop大數(shù)據(jù)項(xiàng)目開(kāi)發(fā)——

Sqoop概述目錄content02Sqoop特點(diǎn)01Sqoop簡(jiǎn)介Sqoop簡(jiǎn)介Sqoop由Apache軟件基金會(huì)提供。Sqoop是一款開(kāi)源工具。用于在Hadoop和關(guān)系數(shù)據(jù)庫(kù)服務(wù)器之間傳輸數(shù)據(jù)的工具。于從關(guān)系數(shù)據(jù)庫(kù)導(dǎo)入數(shù)據(jù)到HadoopHDFS、Hive等,并從HadoopHDFS、Hive導(dǎo)出到關(guān)系數(shù)據(jù)庫(kù)。Sqoop簡(jiǎn)介Sqoop項(xiàng)目開(kāi)始于2009年,最早是作為Hadoop的一個(gè)第三方模塊存在。Sqoop類似于其他ETL工具,使用元數(shù)據(jù)模型來(lái)判斷數(shù)據(jù)類型并在數(shù)據(jù)從數(shù)據(jù)源轉(zhuǎn)移到Hadoop時(shí)確保類型安全的數(shù)據(jù)處理。Sqoop可以通過(guò)調(diào)整任務(wù)數(shù)來(lái)控制任務(wù)的并發(fā)度,自動(dòng)完成數(shù)據(jù)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(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)論