2018-05-04 15:13:35 3576瀏覽
分區(qū)是hive存放數(shù)據(jù)的一種方式。將列值作為目錄來存放數(shù)據(jù),就是一個分區(qū)。這樣查詢時使用分區(qū)列進行過濾,只需根據(jù)列值直接掃描對應目錄下的數(shù)據(jù),不掃描其他不關(guān)心的分區(qū),快速定位,提高查詢效率。分動態(tài)和靜態(tài)分區(qū)兩種:
createtableifnotexistsday_part1( uidint, unamestring ) partitionedby(yearint,monthint) rowformatdelimitedfieldsterminatedby'\t'; ##加載數(shù)據(jù)指定分區(qū) loaddatalocalinpath'/root/Desktop/student.txt'intotableday_part1partition(year=2017,month=04); ##新增分區(qū)指定分區(qū)名 altertableday_part1addpartition(year=2017,month=1)partition(year=2016,month=12);
##創(chuàng)建臨時表 createtableifnotexiststmp (uidint, commentidbigint, recommentidbigint, yearint, monthint, dayint) rowformatdelimitedfieldsterminatedby'\t'; ##加載數(shù)據(jù) loaddatalocalinpath'/root/Desktop/comm'intotabletmp; ##創(chuàng)建動態(tài)分區(qū)表 createtableifnotexistsdyp1 (uidint, commentidbigint, recommentidbigint) partitionedby(yearint,monthint,dayint) rowformatdelimitedfieldsterminatedby'\t'; ##嚴格模式 insertintotabledyp1partition(year=2016,month,day) selectuid,commentid,recommentid,month,dayfromtmp; ##非嚴格模式 ##設(shè)置非嚴格模式動態(tài)分區(qū) sethive.exec.dynamic.partition.mode=nostrict; ##創(chuàng)建動態(tài)分區(qū)表 createtableifnotexistsdyp2 (uidint, commentidbigint, recommentidbigint) partitionedby(yearint,monthint,dayint) rowformatdelimitedfieldsterminatedby'\t'; ##為非嚴格模式動態(tài)分區(qū)加載數(shù)據(jù) insertintotabledyp2partition(year,month,day) selectuid,commentid,recommentid,year,month,dayfromtmp;
以上就是關(guān)于扣丁學堂Java培訓之Hive靜態(tài)分區(qū)與動態(tài)分區(qū)的詳細介紹,最后想要了解更多關(guān)于Java開發(fā)問題的小伙伴可以登錄扣丁學堂官網(wǎng)咨詢??鄱W堂是專業(yè)的Java培訓機構(gòu),不僅有專業(yè)的老師和與時俱進的課程體系,還有大量的Java視頻教程供學員觀看學習,想要學好Java的小伙伴抓緊時間行動吧。Java技術(shù)交流群:670348138。
【關(guān)注微信公眾號免費領(lǐng)取丁豆獲取更多學習資料】
查看更多關(guān)于“Java開發(fā)資訊”的相關(guān)文章>>