版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
查詢結(jié)果插入到Hive表中學(xué)習(xí)目標(biāo)2知識目標(biāo)●了解Load加載●了解insert插入的模式能力目標(biāo)●掌握Load實(shí)例●掌握多插入模式學(xué)習(xí)任務(wù)3了解LOCAL關(guān)鍵字熟悉動態(tài)分區(qū)模式了解create…as操作總結(jié)insertinto語句用法Load加載insert插入4目錄Create…as操作查詢結(jié)果插入到Hive表中摘要5Hive是基于Hadoop構(gòu)建的一套數(shù)據(jù)倉庫分析系統(tǒng),它提供了豐富的SQL查詢方式來分析存儲在Hadoop分布式文件系統(tǒng)中的數(shù)據(jù),可以將結(jié)構(gòu)化的數(shù)據(jù)文件映射為一張數(shù)據(jù)庫表,并提供完整的SQL查詢功能,可以將SQL語句轉(zhuǎn)換為MapReduce任務(wù)進(jìn)行運(yùn)行,通過自己的SQL去查詢分析需要的內(nèi)容,這套SQL簡稱HiveSQL,使不熟悉mapreduce的用戶很方便的利用SQL語言查詢,匯總,分析數(shù)據(jù)。Load加載6Load實(shí)例LOADDATA[LOCAL]INPATH'filepath'[OVERWRITE]INTOTABLEtablename[PARTITION(partcol1=val1,partcol2=val2...)]解釋:local:可選,表示從本地文件系統(tǒng)中加載,而非hdfsoverwrite:可選,先刪除原來數(shù)據(jù),然后再加載Load加載7
而hive的score表對應(yīng)的hdfs文件依舊沒變,因此load的命令的執(zhí)行其實(shí)就是簡單的mv操作。
如果要實(shí)現(xiàn)真正的分區(qū)加載則應(yīng)該采用下面的加載方式,先load加載到非分區(qū)表score1,這個時候查詢是可以的。Load加載8向數(shù)據(jù)表內(nèi)加載文件?Load操作只是單純的復(fù)制/移動操作,將數(shù)據(jù)文件移動到Hive表對應(yīng)的位置。?filepath?相對路徑,例如:project/data1?絕對路徑,例如:/user/hive/project/data1?包含模式的完整URI,例如:hdfs://namenode:9000/user/hive/project/data1?加載的目標(biāo)可以是一個表或者分區(qū)。如果表包含分區(qū),必須指定每一個分區(qū)的分區(qū)名?filepath可以引用一個文件(這種情況下,Hive會將文件移動到表所對應(yīng)的目錄中)或者是一個目錄(在這種情況下,Hive會將目錄中的所有文件移動至表所對應(yīng)的目錄中)Load加載9LOCAL關(guān)鍵字?指定了LOCAL?load命令會去查找本地文件系統(tǒng)中的filepath。如果發(fā)現(xiàn)是相對路徑,則路徑會被解釋為相對于當(dāng)前用戶的當(dāng)前路徑。用戶也可以為本地文件指定一個完整的URI,比如:file:///user/hive/project/data1。?load命令會將filepath中的文件復(fù)制到目標(biāo)文件系統(tǒng)中。目標(biāo)文件系統(tǒng)由表的位置屬性決定。被復(fù)制的數(shù)據(jù)文件移動到表的數(shù)據(jù)對應(yīng)的位置。?沒有指定LOCAL如果filepath指向的是一個完整的URI,hive會直接使用這個URI。Load加載10OVERWRITE?指定了OVERWRITE?目標(biāo)表(或者分區(qū))中的內(nèi)容(如果有)會被刪除,然后再將filepath指向的文件/目錄中的內(nèi)容添加到表/分區(qū)中。?如果目標(biāo)表(分區(qū))已經(jīng)有一個文件,并且文件名和filepath中的文件名沖突,那么現(xiàn)有的文件會被新文件所替代。將查詢結(jié)果插入Hive表?將查詢結(jié)果插入Hive表?將查詢結(jié)果寫入HDFS文件系統(tǒng)Load加載11?基本模式INSERTOVERWRITETABLEtablename1[PARTITION(partcol1=val1,partcol2=val2...)]select_statement1FROMfrom_statement?多插入模式FROMfrom_statementINSERTOVERWRITETABLEtablename1[PARTITION(partcol1=val1,partcol2=val2...)]select_statement1[INSERTOVERWRITETABLEtablename2[PARTITION...]select_statement2]...?自動分區(qū)模式INSERTOVERWRITETABLEtablenamePARTITILoad加載12insert插入hive不支持INSERTINTO,UPDATE,DELETE操作,這樣的話,就不要很復(fù)雜的鎖機(jī)制來讀寫數(shù)據(jù)。INSERTINTOsyntaxisonlyavailablestartinginversion0.8。INSERTINTO就是在表或分區(qū)中追加數(shù)據(jù),并不是經(jīng)典數(shù)據(jù)庫中的insertinto操作,只是insertinto單詞一樣。13基本模式INSERTINTO|OVERWRITETABLEtablename1[PARTITION(partcol1=val1,partcol2=val2...)]select_statement1多插入模式FROMfrometable1,fromtable2....INSERTINTO|OVERWRITETABLEdesttable1[PARTITION(partcol1=val1,partcol2=val2...)]select_statement1[INSERTINTO|OVERWRITETABLEdesttable2[PARTITION...]select_statement2]...insert插入14動態(tài)分區(qū)模式INSERTINTO|OVERWRITETABLEtablenamePARTITION(partcol1[=val1],partcol2[=val2]...)select_statementFROMfrom_statement將score1中的某個分區(qū)數(shù)據(jù)insert到score中:insertoverwritetablescorepartition(school="school1",class="class1")selectid,name,Chinese,English,mathfromscore1whereschool="school1"andclass="class1";insert插入15動態(tài)分區(qū)模式將score1中的某個分區(qū)數(shù)據(jù)insert到score中:insertoverwritetablescorepartition(school="school2",class="class1")selectid,name,Chinese,English,mathfromscore1whereschool="school2"andclass="class1";insertoverwritetablescorepartition(school="school3",class="class1")selectid,name,Chinese,English,mathfromscore1whereschool="school3"andclass="class1";insert插入16查詢表文件數(shù)據(jù):[root@xxxtmp]#
hdfsdfs-cat
/user/hive/warehouse/jira.db/score/school=school1/class=class1/000000_00001,zhangsan,99.0,98.0,100.00004,zhangsan2,99.0,98.0,100.0分區(qū)數(shù)據(jù)并沒有存在表文件中,僅存在目錄上,因此,這下hive的分區(qū)本質(zhì)摸清楚了。那么問題來了,假如分區(qū)數(shù)很多,每條一個分區(qū)豈不累死,hive提出了動態(tài)分區(qū)的功能,上面的語句是靜態(tài)分區(qū),需要手動指定。動態(tài)分區(qū)和靜態(tài)分區(qū)并不在我們這章的討論范圍。insert插入17insertinto語句用法INSERTOVERWRITETABLEtablename1[PARTITION(partcol1=val1,partcol2=val2...)[IF
NOTEXISTS]]\select_statement1FROMfrom_statement;用法一:用法二:INSERTINTOTABLEtablename1[PARTITION(partcol1=val1,partcol2=val2...)]\select_statement1FROMfrom_statement;hive>insertintotablecite>select*fromtt;insert插入18insertinto語句用法這樣就會將tt表格里面的數(shù)據(jù)追加到cite表格里面。并且在cite數(shù)據(jù)存放目錄生成了一個新的數(shù)據(jù)文件,這個新文件是經(jīng)過處理的,列之間的分割是cite表格的列分割符,而不是tt表格列的分隔符。insert插入19建完的score2表沒有分區(qū),因此,create...as不能復(fù)制分區(qū)表。分區(qū)表的復(fù)制:需要先用createtablescore3likescore來復(fù)制表結(jié)構(gòu),然后將原表的數(shù)據(jù)復(fù)制到新表(score3);創(chuàng)建新表:createtablescore3likescore;Create…as操作createtable
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 淘寶網(wǎng)課程設(shè)計
- 灌區(qū)課程設(shè)計
- 管理學(xué)課程設(shè)計英文
- 瓦斯課程設(shè)計織金縣
- 煙草校本課程設(shè)計
- 幼兒園微笑禮儀課程設(shè)計
- 玻璃熔爐熔化率提升考核試卷
- 氣體壓縮與輸送技術(shù)在工業(yè)中的應(yīng)用考核試卷
- 建立職業(yè)影響力職場瓶頸中的個人品牌考核試卷
- 物聯(lián)網(wǎng)軟件開發(fā)與測試考核試卷
- 【企業(yè)杜邦分析國內(nèi)外文獻(xiàn)綜述6000字】
- 2023-2024學(xué)年浙江省富陽市小學(xué)數(shù)學(xué)五年級上冊期末通關(guān)試題
- GB/T 5343.2-2007可轉(zhuǎn)位車刀及刀夾第2部分:可轉(zhuǎn)位車刀型式尺寸和技術(shù)條件
- GB/T 32285-2015熱軋H型鋼樁
- 中考數(shù)學(xué)真題變式題庫
- FZ/T 91019-1998染整機(jī)械導(dǎo)布輥制造工藝規(guī)范
- 主持人培訓(xùn) 課件
- SHSG0522003 石油化工裝置工藝設(shè)計包(成套技術(shù))內(nèi)容規(guī)定
- 制造部年終總結(jié)報告課件
- 企業(yè)大學(xué)商學(xué)院建設(shè)方案
- 粵科版高中通用技術(shù)選修1:電子控制技術(shù)全套課件
評論
0/150
提交評論