![第講Hive數(shù)據(jù)倉(cāng)庫(kù)_第1頁(yè)](http://file4.renrendoc.com/view/f990d2a856502b28bdf39029b8aabac7/f990d2a856502b28bdf39029b8aabac71.gif)
![第講Hive數(shù)據(jù)倉(cāng)庫(kù)_第2頁(yè)](http://file4.renrendoc.com/view/f990d2a856502b28bdf39029b8aabac7/f990d2a856502b28bdf39029b8aabac72.gif)
![第講Hive數(shù)據(jù)倉(cāng)庫(kù)_第3頁(yè)](http://file4.renrendoc.com/view/f990d2a856502b28bdf39029b8aabac7/f990d2a856502b28bdf39029b8aabac73.gif)
![第講Hive數(shù)據(jù)倉(cāng)庫(kù)_第4頁(yè)](http://file4.renrendoc.com/view/f990d2a856502b28bdf39029b8aabac7/f990d2a856502b28bdf39029b8aabac74.gif)
![第講Hive數(shù)據(jù)倉(cāng)庫(kù)_第5頁(yè)](http://file4.renrendoc.com/view/f990d2a856502b28bdf39029b8aabac7/f990d2a856502b28bdf39029b8aabac75.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第7講Hive數(shù)據(jù)倉(cāng)庫(kù)
數(shù)據(jù)分析者面臨的問題
數(shù)據(jù)日趨龐大,無論是入庫(kù)和查詢,都出現(xiàn)性能瓶頸用戶的應(yīng)用和分析結(jié)果呈整合趨勢(shì),對(duì)實(shí)時(shí)性和響應(yīng)時(shí)間要求越來越高使用的模型越來越復(fù)雜,計(jì)算量指數(shù)級(jí)上升數(shù)據(jù)分析者期待的解決方案
完美解決性能瓶頸,在可見未來不容易出現(xiàn)新瓶頸過去所擁有的技能可以平穩(wěn)過渡。比如SQL、R轉(zhuǎn)移平臺(tái)的成本有多高?平臺(tái)軟硬件成本,再開發(fā)成本,技能再培養(yǎng)成本,維護(hù)成本Hive簡(jiǎn)介
起源自facebook由JeffHammerbacher領(lǐng)導(dǎo)的團(tuán)隊(duì)構(gòu)建在Hadoop上的數(shù)據(jù)倉(cāng)庫(kù)框架設(shè)計(jì)目的是讓SQL技能良好,但Java技能較弱的分析師可以查詢海量數(shù)據(jù)2008年facebook把hive項(xiàng)目貢獻(xiàn)給Apache
Hive
數(shù)據(jù)倉(cāng)庫(kù)工具??梢园袶adoop下的原始結(jié)構(gòu)化數(shù)據(jù)變成Hive中的表支持一種與SQL幾乎完全相同的語言HiveQL。除了不支持更新、索引和事務(wù),幾乎SQL的其它特征都能支持可以看成是從SQL到Map-Reduce的映射器提供shell、JDBC/ODBC、Thrift、Web等接口Hive不適合用于聯(lián)機(jī)事務(wù)處理,也不提供實(shí)時(shí)查詢功能。最適合應(yīng)用在基于大量不可變數(shù)據(jù)的批處理作業(yè)。Hive是建立在Hadoop上的數(shù)據(jù)倉(cāng)庫(kù)基礎(chǔ)構(gòu)架。它提供了一系列的工具,可以用來進(jìn)行數(shù)據(jù)提取轉(zhuǎn)化加載(ETL),這是一種可以存儲(chǔ)、查詢和分析存儲(chǔ)在Hadoop中的大規(guī)模數(shù)據(jù)的機(jī)制。Hive定義了簡(jiǎn)單的類SQL查詢語言,稱為HQL,它允許熟悉SQL的用戶查詢數(shù)據(jù)。同時(shí),這個(gè)語言也允許熟悉MapReduce開發(fā)者的開發(fā)自定義的mapper和reducer來處理內(nèi)建的mapper和reducer無法完成的復(fù)雜的分析工作。Hive現(xiàn)狀
Hadoop生態(tài)圈中的重要項(xiàng)目企業(yè)級(jí)數(shù)據(jù)倉(cāng)庫(kù)的主流架構(gòu)之一解決“即席查詢”的問題注意Cloudera的Impala項(xiàng)目,號(hào)稱比Hive要快3-30倍兼容SQL是目前大數(shù)據(jù)產(chǎn)品的風(fēng)向標(biāo)體系結(jié)構(gòu)圖1、用戶接口主要有三個(gè):命令行(CLI),客戶端(Client)和WEB界面(WUI)。其中最常用的是CLI,Cli啟動(dòng)的時(shí)候,會(huì)同時(shí)啟動(dòng)一個(gè)Hive服務(wù)。Client是Hive的客戶端,用戶連接至HiveServer。在啟動(dòng)Client模式的時(shí)候,需要指出HiveServer所在節(jié)點(diǎn),并且在該節(jié)點(diǎn)啟動(dòng)HiveServer。WUI是通過瀏覽器訪問Hive。2、元數(shù)據(jù)存儲(chǔ)。Hive將元數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)庫(kù)中,如mysql、derby嵌入式數(shù)據(jù)庫(kù)。Hive中的元數(shù)據(jù)包括表的名字,表的列和分區(qū)及其屬性,表的屬性(是否為外部表等),表的數(shù)據(jù)所在目錄等。3、執(zhí)行。解釋器、編譯器、優(yōu)化器完成HiveQL查詢語句從詞法分析、語法分析、編譯、優(yōu)化以及查詢計(jì)劃的生成。生成的查詢計(jì)劃存儲(chǔ)在HDFS中,并在隨后有MapReduce調(diào)用執(zhí)行。4、HDFS存儲(chǔ)。Hive的數(shù)據(jù)存儲(chǔ)在HDFS中,大部分的查詢由MapReduce完成(包含*的查詢,比如select*fromtbl不會(huì)生成MapRedcue任務(wù))。Hive元數(shù)據(jù)存儲(chǔ)Hive將元數(shù)據(jù)存儲(chǔ)在RDBMS中,有三種模式可以連接到數(shù)據(jù)庫(kù):SingleUserMode:此模式連接到一個(gè)In-memory的數(shù)據(jù)庫(kù)Derby,一般用于UnitTest。Hive安裝
內(nèi)嵌模式:元數(shù)據(jù)保持在內(nèi)嵌的Derby模式,只允許一個(gè)會(huì)話連接本地獨(dú)立模式:在本地安裝Mysql,把元數(shù)據(jù)放到Mysql內(nèi)遠(yuǎn)程模式:元數(shù)據(jù)放置在遠(yuǎn)程的Mysql數(shù)據(jù)庫(kù)內(nèi)嵌模式式安裝下載并解解壓Hive設(shè)置環(huán)境境變量(修改profile文件)配置文件件hive-env.shhive-site.xmlcphive-default.xml.templatehive-site.xml啟動(dòng)hiveHive命令行啟啟動(dòng)方式式:直接接輸入/hive/bin/hive命令,或者輸入入hive-servicecli命令。Hiveweb界面啟動(dòng)動(dòng)方式::輸入hive-servicehwi命令。Hive采用遠(yuǎn)程程服務(wù)啟啟動(dòng)方式式:遠(yuǎn)程程服務(wù)的的端口號(hào)號(hào)為10000,采用hive--servicehiveserver命令。Hive采用遠(yuǎn)程程后臺(tái)啟啟動(dòng)方式式:關(guān)閉閉Hive終端,但但是Hive服務(wù)不退出,采用用nohuphive--servicehiveserver命令。簡(jiǎn)單建刪表測(cè)測(cè)試一個(gè)常見錯(cuò)誤誤解決方法修改hadoop-env.shHive安裝:獨(dú)立模模式可參考網(wǎng)絡(luò)資資源:Hive的服務(wù)Hive不僅僅是一個(gè)個(gè)shell,通過配置,,還可以提供供Thrift服務(wù)器、Web接口、元數(shù)據(jù)據(jù)和JDBC/ODBC服務(wù),具有強(qiáng)強(qiáng)大的功能和和良好的可擴(kuò)擴(kuò)展性。1、Hiveshell執(zhí)行HiveQL(大約相當(dāng)于于SQL92標(biāo)準(zhǔn))查看或臨時(shí)時(shí)設(shè)置Hive參數(shù),只對(duì)當(dāng)當(dāng)前會(huì)話有效效創(chuàng)建函數(shù)導(dǎo)入jar包HiveQL查詢語言HiveQL是一種類似SQL的語言查詢語言HQLSQL數(shù)據(jù)存儲(chǔ)位置HDFSRawDevice或者LocalFS數(shù)據(jù)格式用戶定義系統(tǒng)決定數(shù)據(jù)更新不支持支持索引無有執(zhí)行MapRedcueExecutor執(zhí)行延遲高低可擴(kuò)展性高低數(shù)據(jù)規(guī)模大小HiveQL查詢語言1.查詢語言。由由于SQL被廣泛的應(yīng)用用在數(shù)據(jù)倉(cāng)庫(kù)庫(kù)中,因此,,專門針對(duì)Hive的特性設(shè)計(jì)了了類SQL的查詢語言HQL。熟悉SQL開發(fā)的開發(fā)者者可以很方便便的使用Hive進(jìn)行開發(fā)。2.數(shù)據(jù)存儲(chǔ)位置置。Hive是建立在Hadoop之上的,所有有Hive的數(shù)據(jù)都是存存儲(chǔ)在HDFS中的。而數(shù)據(jù)據(jù)庫(kù)則可以將將數(shù)據(jù)保存在在塊設(shè)備或者者本地文件系系統(tǒng)中。3.數(shù)據(jù)格式。Hive中沒有定義專專門的數(shù)據(jù)格格式,數(shù)據(jù)格格式可以由用用戶指定,用用戶定義數(shù)據(jù)據(jù)格式需要指指定三個(gè)屬性性:列分隔符符(通常為空空格、”\t”、”\x001″″)、行分隔符符(”\n”)以及讀取文文件數(shù)據(jù)的方方法(Hive中默認(rèn)有三個(gè)個(gè)文件格式TextFile,SequenceFile以及RCFile)。由于在加加載數(shù)據(jù)的過過程中,不需需要從用戶數(shù)數(shù)據(jù)格式到Hive定義的數(shù)據(jù)格格式的轉(zhuǎn)換,,因此,Hive在加載的過程程中不會(huì)對(duì)數(shù)數(shù)據(jù)本身進(jìn)行行任何修改,,而只是將數(shù)數(shù)據(jù)內(nèi)容復(fù)制制或者移動(dòng)到到相應(yīng)的HDFS目錄中。而在在數(shù)據(jù)庫(kù)中,,不同的數(shù)據(jù)據(jù)庫(kù)有不同的的存儲(chǔ)引擎,,定義了自己己的數(shù)據(jù)格式式。所有數(shù)據(jù)據(jù)都會(huì)按照一定的組織存存儲(chǔ),因此,,數(shù)據(jù)庫(kù)加載載數(shù)據(jù)的過程程會(huì)比較耗時(shí)時(shí)。HiveQL查詢語言4.數(shù)據(jù)更新。由由于Hive是針對(duì)數(shù)據(jù)倉(cāng)倉(cāng)庫(kù)應(yīng)用設(shè)計(jì)計(jì)的,而數(shù)據(jù)據(jù)倉(cāng)庫(kù)的內(nèi)容容是讀多寫少少的。因此,,Hive中不支持對(duì)數(shù)數(shù)據(jù)的改寫和和添加,所有有的數(shù)據(jù)都是是在加載的時(shí)時(shí)候中確定好好的。而數(shù)據(jù)據(jù)庫(kù)中的數(shù)據(jù)據(jù)通常是需要要經(jīng)常進(jìn)行修修改的,因此此可以使用INSERTINTO...VALUES添加數(shù)據(jù),使使用UPDATE...SET修改數(shù)據(jù)5.索引。之前已已經(jīng)說過,Hive在加載數(shù)據(jù)的的過程中不會(huì)會(huì)對(duì)數(shù)據(jù)進(jìn)行行任何處理,,甚至不會(huì)對(duì)對(duì)數(shù)據(jù)進(jìn)行掃掃描,因此也也沒有對(duì)數(shù)據(jù)據(jù)中的某些Key建立索引。。Hive要訪問數(shù)據(jù)據(jù)中滿足條條件的特定定值時(shí),需需要暴力掃掃描整個(gè)數(shù)數(shù)據(jù),因此此訪問延遲遲較高。由由于MapReduce的引入,Hive可以并行訪訪問數(shù)據(jù),,因此即使使沒有索引引,對(duì)于大大數(shù)據(jù)量的的訪問,Hive仍然可以體體現(xiàn)出優(yōu)勢(shì)勢(shì)。數(shù)據(jù)庫(kù)庫(kù)中,通常常會(huì)針對(duì)一一個(gè)或者幾幾個(gè)列建立立索引,因因此對(duì)于少少量的特定定條件的數(shù)數(shù)據(jù)的訪問問,數(shù)據(jù)庫(kù)庫(kù)可以有很很高的效率率,較低的的延遲。由由于數(shù)據(jù)的的訪問延延遲較高,,決定了Hive不適合在線線數(shù)據(jù)查詢?cè)儭?.執(zhí)行。Hive中大多數(shù)查查詢的執(zhí)行行是通過Hadoop提供的MapReduce來實(shí)現(xiàn)的((類似select*fromtbl的查詢不需需要MapReduce)。而數(shù)據(jù)據(jù)庫(kù)通常有有自己的執(zhí)執(zhí)行引擎。。HiveQL查詢語言7.執(zhí)行延遲。。之前提到到,Hive在查詢數(shù)據(jù)據(jù)的時(shí)候,,由于沒有有索引,需需要掃描整整個(gè)表,因因此延遲較較高。另外外一個(gè)導(dǎo)致致Hive執(zhí)行延遲高高的因素是是MapReduce框架。由于于MapReduce本身具有較較高的延遲遲,因此在在利用MapReduce執(zhí)行Hive查詢時(shí),也也會(huì)有較高高的延遲。。相對(duì)的,,數(shù)據(jù)庫(kù)的的執(zhí)行延遲遲較低。當(dāng)當(dāng)然,這個(gè)個(gè)低是有條條件的,即即數(shù)據(jù)規(guī)模模較小,當(dāng)當(dāng)數(shù)據(jù)規(guī)模模大到超過過數(shù)據(jù)庫(kù)的的處理能力力的時(shí)候,,Hive的并行計(jì)算算顯然能體體現(xiàn)出優(yōu)勢(shì)勢(shì)。8.可擴(kuò)展性。。由于Hive是建立在Hadoop之上的,因因此Hive的可擴(kuò)展性性是和Hadoop的可擴(kuò)展性性是一致的的。而數(shù)據(jù)據(jù)庫(kù)由于ACID語義的嚴(yán)格格限制,擴(kuò)擴(kuò)展行非常常有限。9.數(shù)據(jù)規(guī)模。。由于Hive建立在集群群上并可以以利用MapReduce進(jìn)行并行計(jì)計(jì)算,因此此可以支持持很大規(guī)模模的數(shù)據(jù);;對(duì)應(yīng)的,,數(shù)據(jù)庫(kù)可可以支持的的數(shù)據(jù)規(guī)模模較小。HiveQL查詢語言Hive安裝與部署署成功之后后,在命令令行輸入hive進(jìn)入shell。1、退出shell:Hive>quit;2、查看已有有表Hive>showtables;3、查看表結(jié)結(jié)構(gòu)Hive>describetablename;建表CreateTableCREATE[EXTERNAL]TABLE[IFNOTEXISTS]table_name[(col_namedata_type[COMMENTcol_comment],...)][COMMENTtable_comment][PARTITIONEDBY(col_namedata_type[COMMENTcol_comment],...)][CLUSTEREDBY(col_name,col_name,...)[SORTEDBY(col_name[ASC|DESC],...)]INTOnum_bucketsBUCKETS][ROWFORMATrow_format][STOREDASfile_format][LOCATIONhdfs_path]CREATETABLE創(chuàng)建一個(gè)指指定名字的的表。如果果相同名字字的表已經(jīng)經(jīng)存在,則則拋出異常常;用戶可可以用IFNOTEXIST選項(xiàng)來忽略略這個(gè)異常常。EXTERNAL關(guān)鍵字可以以讓用戶創(chuàng)創(chuàng)建一個(gè)外外部表,在在建表的同同時(shí)指定一一個(gè)指向?qū)崒?shí)際數(shù)據(jù)的的路徑(LOCATION),Hive創(chuàng)建內(nèi)部表表時(shí),會(huì)將將數(shù)據(jù)移動(dòng)動(dòng)到數(shù)據(jù)倉(cāng)倉(cāng)庫(kù)指向的的路徑;若若創(chuàng)建外部部表,僅記記錄數(shù)據(jù)所所在的路徑徑,不對(duì)數(shù)數(shù)據(jù)的位置置做任何改改變。在刪刪除表的時(shí)時(shí)候,內(nèi)部部表的元數(shù)數(shù)據(jù)和數(shù)據(jù)據(jù)會(huì)被一起起刪除,而而外部表只只刪除元數(shù)數(shù)據(jù),不刪刪除數(shù)據(jù)。。LIKE允許用戶復(fù)復(fù)制現(xiàn)有的的表結(jié)構(gòu),,但是不復(fù)復(fù)制數(shù)據(jù)。。用戶在建表表的時(shí)候可可以自定義義SerDe或者使用自自帶的SerDe。如果沒有有指定ROWFORMAT或者ROWFORMATDELIMITED,將會(huì)使用用自帶的SerDe。在建表的的時(shí)候,用用戶還需要要為表指定定列,用戶戶在指定表表的列的同同時(shí)也會(huì)指指定自定義義的SerDe,Hive通過SerDe確定表的具具體的列的的數(shù)據(jù)。如果文件數(shù)數(shù)據(jù)是純文文本,可以以使用STOREDASTEXTFILE。如果數(shù)據(jù)據(jù)需要壓縮縮,使用STOREDASSEQUENCE。有分區(qū)的表表可以在創(chuàng)創(chuàng)建的時(shí)候候使用PARTITIONEDBY語句。一個(gè)個(gè)表可以擁?yè)碛幸粋€(gè)或或者多個(gè)分分區(qū),每一一個(gè)分區(qū)單單獨(dú)存在一一個(gè)目錄下下。而且,,表和分區(qū)區(qū)都可以對(duì)對(duì)某個(gè)列進(jìn)進(jìn)行CLUSTEREDBY操作作,,將將若若干干個(gè)個(gè)列列放放入入一一個(gè)個(gè)桶桶((bucket)中中。。也也可可以以利利用用SORTBY對(duì)數(shù)數(shù)據(jù)據(jù)進(jìn)進(jìn)行行排排序序。。這這樣樣可可以以為為特特定定應(yīng)應(yīng)用用提提高高性性能能。。表名名和和列列名名不不區(qū)區(qū)分分大大小小寫寫,,SerDe和屬屬性性名名區(qū)區(qū)分分大大小小寫寫。。表表和和列列的的注注釋釋是是字字符符串串。。創(chuàng)建建表表創(chuàng)建建表表列類類型型Hive支持持的的數(shù)數(shù)據(jù)據(jù)類類型型如如下下:原生生類類型型:TINYINTSMALLINTINTBIGINTBOOLEANFLOATDOUBLESTRING以上上才才可可用用)以上上才才可可用用)復(fù)合合類類型型:arrays:ARRAY<data_type>maps:MAP<primitive_type,data_type>structs:STRUCT<col_name:data_type[COMMENTcol_comment],...>union:UNIONTYPE<data_type,data_type,...>Hive中表表的的類類型型Hive沒有有專專門門的的數(shù)數(shù)據(jù)據(jù)存存儲(chǔ)儲(chǔ)格格式式,,也也沒沒有有為為數(shù)數(shù)據(jù)據(jù)建建立立索索引引,,用用戶戶可可以以非非常常自自由由的的組組織織Hive中的表,只需需要在創(chuàng)建表表的時(shí)候告訴訴Hive數(shù)據(jù)中的列分分隔符和行分分隔符,Hive就可以解析數(shù)數(shù)據(jù)。Hive中所有的數(shù)據(jù)據(jù)都存儲(chǔ)在HDFS中,Hive中包含以下數(shù)數(shù)據(jù)模型:Table,ExternalTable,Partition,Bucket。(1)普通表普通表的創(chuàng)建建就是一個(gè)表表對(duì)應(yīng)一個(gè)表表名和表名對(duì)對(duì)應(yīng)的文件。。(2)外部表建表的同時(shí)指指定一個(gè)指向向?qū)嶋H數(shù)據(jù)的的路徑,創(chuàng)建建內(nèi)部表時(shí)會(huì)會(huì)將數(shù)據(jù)移動(dòng)動(dòng)到數(shù)據(jù)倉(cāng)庫(kù)庫(kù)指向的路徑徑;若創(chuàng)建外外部表,僅記記錄數(shù)據(jù)所在在的路徑,不不對(duì)數(shù)據(jù)的位位置做任何改改變。刪除表表時(shí),內(nèi)部表表的元數(shù)據(jù)和和數(shù)據(jù)一起被被刪,而外部部表只刪除元元數(shù)據(jù),不刪刪除數(shù)據(jù)。(3)分區(qū)表在Hive中,表中的一一個(gè)Partition對(duì)應(yīng)于表下的的一個(gè)目錄,,所有的Partition的數(shù)據(jù)都存儲(chǔ)儲(chǔ)在對(duì)應(yīng)的目目錄中。例如如:pvs表中包含ds和city兩個(gè)Partition,則對(duì)應(yīng)于ds=20090801,ctry=US的HDFS子目錄為:/wh/pvs/ds=20090801/ctry=US;對(duì)應(yīng)于ds=20090801,ctry=CA的HDFS子目錄為;/wh/pvs/ds=20090801/ctry=CA加載數(shù)據(jù)Hive不支持一條一一條用insert語句進(jìn)行插入入操作,也不不支持update操作。數(shù)據(jù)以以load的方式加載到到建立好的表表中,一旦導(dǎo)導(dǎo)入,不可修修改。LOADDATA[LOCAL]INPATH'filepath'[OVERWRITE]INTOTABLEtablename[PARTITION(partcol1=val1,partcol2=val2...)]Load操作只是單純純的復(fù)制/移動(dòng)操作,將將數(shù)據(jù)文件移移動(dòng)到Hive表對(duì)應(yīng)的位置置。filepath可以是:相對(duì)路徑,例例如:project/data1絕對(duì)路徑,例例如:/user/hive/project/data1包含模式的完完整URI,例如:hdfs://namenode:9000/user/hive/project/data1加載的目標(biāo)可可以是一個(gè)表表或者分區(qū)。。如果表包含含分區(qū),必須須指定每一個(gè)個(gè)分區(qū)的分區(qū)區(qū)名。filepath可以引用一個(gè)個(gè)文件(這種種情況下,Hive會(huì)將文件移動(dòng)動(dòng)到表所對(duì)應(yīng)應(yīng)的目錄中))或者是一個(gè)個(gè)目錄(在這這種情況下,,Hive會(huì)將目錄中的的所有文件移移動(dòng)至表所對(duì)對(duì)應(yīng)的目錄中中)。如果指定了LOCAL,那么:load命令會(huì)去查找找本地文件系系統(tǒng)中的filepath。如果發(fā)現(xiàn)是是相對(duì)路徑,,則路徑會(huì)被被解釋為相對(duì)對(duì)于當(dāng)前用戶戶的當(dāng)前路徑徑。用戶也可可以為本地文文件指定一個(gè)個(gè)完整的URI,比如:file:///user/hive/project/data1.load命令會(huì)將filepath中的文件復(fù)制制到目標(biāo)文件件系統(tǒng)中。目目標(biāo)文件系統(tǒng)統(tǒng)由表的位置置屬性決定。。被復(fù)制的數(shù)數(shù)據(jù)文件移動(dòng)動(dòng)到表的數(shù)據(jù)據(jù)對(duì)應(yīng)的位置置。如果沒有指定定LOCAL關(guān)鍵字,如果果filepath指向的的是一一個(gè)完完整的的URI,hive會(huì)直接接使用用這個(gè)個(gè)URI。否則則:如果沒沒有指指定schema或者authority,Hive會(huì)使用用在hadoop配置文文件中中定義義的schema和authority,指定了了Namenode的URI。如果路路徑不不是絕絕對(duì)的的,Hive相對(duì)于于/user/進(jìn)行解解釋。。Hive會(huì)將filepath中指定定的文文件內(nèi)內(nèi)容移移動(dòng)到到table(或者者partition)所指指定的的路徑徑中。。如果使使用了了OVERWRITE關(guān)鍵字字,則則目標(biāo)標(biāo)表((或者者分區(qū)區(qū))中中的內(nèi)內(nèi)容((如果果有))會(huì)被被刪除除,然然后再再將filepath指向的文件件/目錄中的內(nèi)內(nèi)容添加到到表/分區(qū)中。如果目標(biāo)表表(分區(qū)))已經(jīng)有一一個(gè)文件,,并且文件件名和filepath中的文件名名沖突,那那么現(xiàn)有的的文件會(huì)被被新文件所所替代。插入數(shù)據(jù)SELECT查詢SELECT[ALL|DISTINCT]select_expr,select_expr,...FROMtable_reference[WHEREwhere_condition][GROUPBYcol_list][CLUSTERBYcol_list|[DISTRIBUTEBYcol_list][SORTBYcol_list]][LIMITnumber]一個(gè)SELECT語句可以是是一個(gè)union查詢或一個(gè)個(gè)子查詢的的一部分table_reference是查詢的輸輸入,可以以是一個(gè)普普通表、一一個(gè)視圖、、一個(gè)join或一個(gè)子查查詢簡(jiǎn)單查詢。。例如,下下面這一語語句從t1表中查詢所所有列的信信息。SELECT*FROMt1WHEREClauseWHEREClause是一個(gè)布爾爾表達(dá)式,,不支持where子句中的in,exit或子查詢使用ALL和DISTINCT選項(xiàng)區(qū)分對(duì)對(duì)重復(fù)記錄錄的處理。。默認(rèn)是ALL,表示查詢?cè)兯杏涗涗?。DISTINCT表示去掉重重復(fù)的記錄錄。hive>SELECTcol1,col2FROMt113131425hive>SELECTDISTINCTcol1,col2FROMt1131425基于Partition的查詢一般SELECT查詢會(huì)掃描描整個(gè)表((除非是為為了抽樣查查詢)。但但是如果一一個(gè)表使用用PARTITIONEDBY子句建表,,查詢就可可以利用分分區(qū)剪枝((inputpruning)的特性,,只掃描一一個(gè)表中它它關(guān)心的那那一部分。。Hive當(dāng)前的實(shí)現(xiàn)現(xiàn)是,只有有分區(qū)斷言言出現(xiàn)在離離FROM子句最近的的那個(gè)WHERE子句中,才才會(huì)啟用分分區(qū)剪枝。。例如,如如果page_views表使用date列分區(qū),以以下語句只只會(huì)讀取分分區(qū)為‘2008-03-01’的數(shù)據(jù)。SELECTpage_views.*FROMpage_viewsWHEREpage_views.date>='2008-03-01'ANDpage_views.date<='2008-03-31';查詢連接HiveQL的連接分為為內(nèi)連接、、左向外連連接、右向向外連接、、全外連接接和半連接接5種。例如:Selectuserinfor.*,choice.*fromuserinforjoinchoiceon(userinfor.id=choice.userid);表連接JDBC/ODBC接口用戶可以像像連接傳統(tǒng)統(tǒng)關(guān)系數(shù)據(jù)據(jù)庫(kù)一樣使使用JDBC或ODBC連接Hive目前還不成成熟JDBC的具體連接接過程1.使用jdbc的方式連接接Hive,首先做的的事情就是是需要啟動(dòng)動(dòng)hive的ThriftServer,否則連接hive的時(shí)候會(huì)報(bào)報(bào)connectionrefused的錯(cuò)誤。啟動(dòng)命令如如下:hive--servicehiveserver2.新建java項(xiàng)目,然后后將hive/lib下的所有jar包和
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度農(nóng)業(yè)科技項(xiàng)目可行性研究合同
- 二零二五年度養(yǎng)老機(jī)構(gòu)聘用護(hù)工服務(wù)合同標(biāo)準(zhǔn)范本4篇
- 2025年全球及中國(guó)數(shù)字集中病人監(jiān)護(hù)系統(tǒng)行業(yè)頭部企業(yè)市場(chǎng)占有率及排名調(diào)研報(bào)告
- 2025年全球及中國(guó)加密電子郵件服務(wù)行業(yè)頭部企業(yè)市場(chǎng)占有率及排名調(diào)研報(bào)告
- 二零二五年度內(nèi)地居民離婚協(xié)議執(zhí)行監(jiān)督合同
- 書店裝修終止合同協(xié)議書
- 美容院裝修燈光設(shè)計(jì)合同
- 簡(jiǎn)易網(wǎng)絡(luò)推廣居間合同
- 高考地理一輪專項(xiàng)復(fù)習(xí)必刷題:天氣與氣候(原卷版+解析版)
- 節(jié)能減排技術(shù)研發(fā)合同
- 避暑旅游目的地評(píng)價(jià)指標(biāo)、閾值和評(píng)價(jià)等級(jí)表、人體舒適度、度假氣候指數(shù)和旅游氣候指數(shù)計(jì)算方法
- 允許一切發(fā)生:過不緊繃松弛的人生
- 注塑生產(chǎn)過程控制流程
- 教科版六年級(jí)科學(xué)下冊(cè) (廚房里的物質(zhì)與變化)教學(xué)課件
- 公務(wù)員面試應(yīng)急應(yīng)變題目大全及解析
- 浙江省炮制規(guī)范2015版電子版
- 冰心《童年的春節(jié)》
- 鄭州小吃詳細(xì)地點(diǎn)
- 上海高考英語詞匯手冊(cè)
- 2021年江蘇省淮安市淮陰中學(xué)高一政治下學(xué)期期末試題含解析
- 公共政策工具-課件
評(píng)論
0/150
提交評(píng)論