學(xué)習(xí)記錄4 Hadoop生態(tài)圈技術(shù)棧(二)

前面剛說(shuō)完外部和內(nèi)部表,這里接著往后看。

hive作為MapReduce的“翻譯官”,某種程度上來(lái)說(shuō),也有些不太夠格,雖然提供了類(lèi)似SQL的查詢(xún)功能,但是他的執(zhí)行效率實(shí)在是一言難盡。

查詢(xún)時(shí),hive會(huì)掃描整個(gè)表,一般表都不會(huì)小,所以這也導(dǎo)致了hive的運(yùn)行時(shí)長(zhǎng)問(wèn)題。為了提高效率,分區(qū)是個(gè)不錯(cuò)的想法。hive的分區(qū)表也由此而來(lái)。

分區(qū)表

其實(shí)這里也就是在加載數(shù)據(jù)后面加上了一個(gè) into table?

這個(gè)12行這里個(gè)人感覺(jué)會(huì)比較常用,可以留個(gè)心思。。。

分桶表

有一說(shuō)一,這個(gè)純屬套娃了,單個(gè)分區(qū)的數(shù)據(jù)量如果依舊大,那怎么辦?毫無(wú)疑問(wèn),繼續(xù)分,但繼續(xù)分下去就不叫分區(qū)了,他有了新的名字:分桶。

通過(guò)創(chuàng)建分桶表和創(chuàng)建普通表的對(duì)比,不難看出區(qū)別就在于第7行。套娃歸套娃,這個(gè)加載數(shù)據(jù)這里差別還是蠻大的。分桶的數(shù)據(jù)加載還需要 insert? ?select 這種古老儀式。

講了一些hive比較常用的知識(shí)點(diǎn),最后說(shuō)一下hive的表修改和刪除吧。

修改表與刪除表

修改這里呢,分為表名,列名,字段類(lèi)型的修改,另外新增字段,刪除字段,刪除表這里也說(shuō)了一下。說(shuō)實(shí)話(huà)這里簡(jiǎn)單歸簡(jiǎn)單,但是容易記混,畢竟這和SQL的不一樣。

以上呢,就是hive的DDL知識(shí)部分了,接下來(lái)就是HQL的數(shù)據(jù)操作了,也是實(shí)打?qū)嵉闹匾糠帧?/p>

HQL-數(shù)據(jù)操作

首先自然是數(shù)據(jù)的導(dǎo)入了,要是卡在這一步后面就啥也干不了了。

其實(shí)這里也簡(jiǎn)單,語(yǔ)法是load data local inpath ‘’? into table當(dāng)然了這里都寫(xiě)了local了,自然是從本地導(dǎo)入數(shù)據(jù)了,如果還從hdfs里面導(dǎo)入,就會(huì)顯得你很呆。

要從hdfs里面導(dǎo)數(shù)據(jù)的話(huà),去掉上面的local就可以了。

這里比較簡(jiǎn)單,其實(shí)實(shí)際多操作幾遍就會(huì)了,就算不會(huì),回頭看看也花不了多久。

有完整的數(shù)據(jù)集自然是好的,就怕數(shù)據(jù)集斷斷續(xù)續(xù),加載完結(jié)果還漏了兩個(gè),需要手動(dòng)去補(bǔ)加上,那這種情況怎么辦呢?

插入數(shù)據(jù)

人麻了,import導(dǎo)入數(shù)據(jù),這種手段倒是第一次見(jiàn)。蠻新穎的,萬(wàn)一以后看到有誰(shuí)真的用這種手法,不能忘了暗罵一句憨批。

數(shù)據(jù)的導(dǎo)入都學(xué)了,接下來(lái)自然是導(dǎo)出了。導(dǎo)出代碼如下,比較奇怪的就是,導(dǎo)出不用制定數(shù)據(jù)儲(chǔ)存格式嗎?

當(dāng)然了,hive數(shù)據(jù)的導(dǎo)入和導(dǎo)出還可以用其他工具,如:Sqoop,DataX。這些后面都會(huì)了解到。

上述只說(shuō)了數(shù)據(jù)操作中的加載插入導(dǎo)入導(dǎo)出的基本操作,當(dāng)然了接下來(lái)就是重中之重了。就是傳說(shuō)中的HQL的DQL查詢(xún)語(yǔ)言了。

不得不說(shuō),不虧是SQL的克隆親兄弟。

這里不是很想說(shuō),這里做注解會(huì)顯得我比較菜雞。

關(guān)于后面的where,group by ,order by,甚至連窗口函數(shù)都與SQL別無(wú)二致,hive啊hive,你就不能有點(diǎn)自己的貨嗎?

元數(shù)據(jù)管理與儲(chǔ)存

接下宏觀(guān)的了解一下hive。在hive的具體使用中,最先面臨的問(wèn)題其實(shí)就是如何定義表結(jié)構(gòu),因?yàn)樗枰成鋒dfs中的結(jié)構(gòu)化數(shù)據(jù)。這時(shí)hive里面就需要描述清楚數(shù)據(jù)的列,字段等等信息。

metadata就是元數(shù)據(jù),它就是hive

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容