查詢結果插入到Hive表中_第1頁
查詢結果插入到Hive表中_第2頁
查詢結果插入到Hive表中_第3頁
查詢結果插入到Hive表中_第4頁
查詢結果插入到Hive表中_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

查詢結果插入到Hive表中學習目標2知識目標●了解Load加載●了解insert插入的模式能力目標●掌握Load實例●掌握多插入模式學習任務3了解LOCAL關鍵字熟悉動態(tài)分區(qū)模式了解create…as操作總結insertinto語句用法Load加載insert插入4目錄Create…as操作查詢結果插入到Hive表中摘要5Hive是基于Hadoop構建的一套數據倉庫分析系統(tǒng),它提供了豐富的SQL查詢方式來分析存儲在Hadoop分布式文件系統(tǒng)中的數據,可以將結構化的數據文件映射為一張數據庫表,并提供完整的SQL查詢功能,可以將SQL語句轉換為MapReduce任務進行運行,通過自己的SQL去查詢分析需要的內容,這套SQL簡稱HiveSQL,使不熟悉mapreduce的用戶很方便的利用SQL語言查詢,匯總,分析數據。Load加載6Load實例LOADDATA[LOCAL]INPATH'filepath'[OVERWRITE]INTOTABLEtablename[PARTITION(partcol1=val1,partcol2=val2...)]解釋:local:可選,表示從本地文件系統(tǒng)中加載,而非hdfsoverwrite:可選,先刪除原來數據,然后再加載Load加載7

而hive的score表對應的hdfs文件依舊沒變,因此load的命令的執(zhí)行其實就是簡單的mv操作。

如果要實現真正的分區(qū)加載則應該采用下面的加載方式,先load加載到非分區(qū)表score1,這個時候查詢是可以的。Load加載8向數據表內加載文件?Load操作只是單純的復制/移動操作,將數據文件移動到Hive表對應的位置。?filepath?相對路徑,例如:project/data1?絕對路徑,例如:/user/hive/project/data1?包含模式的完整URI,例如:hdfs://namenode:9000/user/hive/project/data1?加載的目標可以是一個表或者分區(qū)。如果表包含分區(qū),必須指定每一個分區(qū)的分區(qū)名?filepath可以引用一個文件(這種情況下,Hive會將文件移動到表所對應的目錄中)或者是一個目錄(在這種情況下,Hive會將目錄中的所有文件移動至表所對應的目錄中)Load加載9LOCAL關鍵字?指定了LOCAL?load命令會去查找本地文件系統(tǒng)中的filepath。如果發(fā)現是相對路徑,則路徑會被解釋為相對于當前用戶的當前路徑。用戶也可以為本地文件指定一個完整的URI,比如:file:///user/hive/project/data1。?load命令會將filepath中的文件復制到目標文件系統(tǒng)中。目標文件系統(tǒng)由表的位置屬性決定。被復制的數據文件移動到表的數據對應的位置。?沒有指定LOCAL如果filepath指向的是一個完整的URI,hive會直接使用這個URI。Load加載10OVERWRITE?指定了OVERWRITE?目標表(或者分區(qū))中的內容(如果有)會被刪除,然后再將filepath指向的文件/目錄中的內容添加到表/分區(qū)中。?如果目標表(分區(qū))已經有一個文件,并且文件名和filepath中的文件名沖突,那么現有的文件會被新文件所替代。將查詢結果插入Hive表?將查詢結果插入Hive表?將查詢結果寫入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操作,這樣的話,就不要很復雜的鎖機制來讀寫數據。INSERTINTOsyntaxisonlyavailablestartinginversion0.8。INSERTINTO就是在表或分區(qū)中追加數據,并不是經典數據庫中的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ū)數據insert到score中:insertoverwritetablescorepartition(school="school1",class="class1")selectid,name,Chinese,English,mathfromscore1whereschool="school1"andclass="class1";insert插入15動態(tài)分區(qū)模式將score1中的某個分區(qū)數據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查詢表文件數據:[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ū)數據并沒有存在表文件中,僅存在目錄上,因此,這下hive的分區(qū)本質摸清楚了。那么問題來了,假如分區(qū)數很多,每條一個分區(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表格里面的數據追加到cite表格里面。并且在cite數據存放目錄生成了一個新的數據文件,這個新文件是經過處理的,列之間的分割是cite表格的列分割符,而不是tt表格列的分隔符。insert插入19建完的score2表沒有分區(qū),因此,create...as不能復制分區(qū)表。分區(qū)表的復制:需要先用createtablescore3likescore來復制表結構,然后將原表的數據復制到新表(score3);創(chuàng)建新表:createtablescore3likescore;Create…as操作createtable

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論