大數(shù)據(jù)之Hive數(shù)據(jù)倉(cāng)庫(kù)
————? ?同學(xué)一定要仔細(xì)觀看哦!對(duì)你的幫助收獲滿滿~~~? ————


一、Hive簡(jiǎn)介
? ??Hive是基于Hadoop的一個(gè) 數(shù)據(jù)倉(cāng)庫(kù)工具,可以將結(jié)構(gòu)化的數(shù)據(jù)文件映射成一張表,并提供類(lèi)SQL查詢(xún)功能。
Hive是構(gòu)建在Hadoop 之上的數(shù)據(jù)倉(cāng)庫(kù)。
使用HQL作為查詢(xún)接口。
使用HDFS存儲(chǔ)。
使用MapReduce計(jì)算。

?
? ? 簡(jiǎn)單來(lái)說(shuō),Hive就是在Hadoop上架了一層SQL接口,可以將SQL翻譯成MapReduce去Hadoop上執(zhí)行,這樣就使得數(shù)據(jù)開(kāi)發(fā)和分析人員很方便的使用SQL來(lái)完成海量數(shù)據(jù)的統(tǒng)計(jì)和分析,而不必使用編程語(yǔ)言開(kāi)發(fā)MapReduce那么麻煩。

二、Hive架構(gòu)

1、用戶接口主要有三個(gè):CLI,Client 和 WUI。其中最常用的是CLI,Cli啟動(dòng)的時(shí)候,會(huì)同時(shí)啟動(dòng)一個(gè)Hive副本。Client是Hive的客戶端,用戶連接至Hive Server。在啟動(dòng) Client模式的時(shí)候,需要指出Hive Server所在節(jié)點(diǎn),并且在該節(jié)點(diǎn)啟動(dòng)Hive Server。 WUI是通過(guò)瀏覽器訪問(wèn)Hive。
?
2、Hive將元數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)庫(kù)中,如mysql、derby。Hive中的元數(shù)據(jù)包括表的名字,表的列和分區(qū)及其屬性,表的屬性(是否為外部表等),表的數(shù)據(jù)所在目錄等。
?
3、解釋器、編譯器、優(yōu)化器完成HQL查詢(xún)語(yǔ)句從詞法分析、語(yǔ)法分析、編譯、優(yōu)化以及查詢(xún)計(jì)劃的生成。生成的查詢(xún)計(jì)劃存儲(chǔ)在HDFS中,并在隨后有MapReduce調(diào)用執(zhí)行。
?
4、Hive的數(shù)據(jù)存儲(chǔ)在HDFS中,大部分的查詢(xún)、計(jì)算由MapReduce完成(包含*的查詢(xún),比如select * from tbl不會(huì)生成MapRedcue任務(wù))。

三、Hive函數(shù)
1、內(nèi)置運(yùn)算符
關(guān)系運(yùn)算符、算術(shù)運(yùn)算符、邏輯運(yùn)算符、復(fù)雜類(lèi)型函數(shù)、對(duì)復(fù)雜類(lèi)型函數(shù)操作
2、內(nèi)置函數(shù)
數(shù)學(xué)函數(shù)、收集函數(shù)、類(lèi)型轉(zhuǎn)換函數(shù)、日期函數(shù)、字符函數(shù)
3、內(nèi)置的聚合函數(shù)
4、內(nèi)置表生成函數(shù)
5、自定義函數(shù)

四、Hive視圖
?

1、和關(guān)系型數(shù)據(jù)庫(kù)中的普通視圖一樣,hive也支持視圖。
2、特點(diǎn)
不支持物化視圖。
只能查詢(xún),不能做加載數(shù)據(jù)操作。
視圖的創(chuàng)建,只是保存一份元數(shù)據(jù),查詢(xún)視圖時(shí)才執(zhí)行對(duì)應(yīng)的子查詢(xún)。
view定義中若包含了ORDER BY/LIMIT語(yǔ)句,則當(dāng)查詢(xún)視圖時(shí)也進(jìn)行ORDER BY/LIMIT語(yǔ)句操作,view當(dāng)中定義的優(yōu)先級(jí)更高。
view支持迭代視圖。

?本結(jié)課就到這里了,想學(xué)習(xí)更詳細(xì)的知識(shí)可看上方視頻
對(duì)于大數(shù)據(jù)hive數(shù)據(jù)倉(cāng)庫(kù),有不懂的可在下方評(píng)論區(qū)提問(wèn),一起討論起來(lái)吧?。?!