![第7講Hive數(shù)據(jù)倉(cāng)庫(kù)_第1頁(yè)](http://file4.renrendoc.com/view/4d56cad4b7fb18ff39283649d225fff2/4d56cad4b7fb18ff39283649d225fff21.gif)
![第7講Hive數(shù)據(jù)倉(cāng)庫(kù)_第2頁(yè)](http://file4.renrendoc.com/view/4d56cad4b7fb18ff39283649d225fff2/4d56cad4b7fb18ff39283649d225fff22.gif)
![第7講Hive數(shù)據(jù)倉(cāng)庫(kù)_第3頁(yè)](http://file4.renrendoc.com/view/4d56cad4b7fb18ff39283649d225fff2/4d56cad4b7fb18ff39283649d225fff23.gif)
![第7講Hive數(shù)據(jù)倉(cāng)庫(kù)_第4頁(yè)](http://file4.renrendoc.com/view/4d56cad4b7fb18ff39283649d225fff2/4d56cad4b7fb18ff39283649d225fff24.gif)
![第7講Hive數(shù)據(jù)倉(cāng)庫(kù)_第5頁(yè)](http://file4.renrendoc.com/view/4d56cad4b7fb18ff39283649d225fff2/4d56cad4b7fb18ff39283649d225fff25.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ù)2023年facebook把hive工程奉獻(xiàn)給Apache
Hive
數(shù)據(jù)倉(cāng)庫(kù)工具??梢园袶adoop下的原始結(jié)構(gòu)化數(shù)據(jù)變成Hive中的表支持一種與SQL幾乎完全相同的語(yǔ)言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ù)根底構(gòu)架。它提供了一系列的工具,可以用來進(jìn)行數(shù)據(jù)提取轉(zhuǎn)化加載〔ETL〕,這是一種可以存儲(chǔ)、查詢和分析存儲(chǔ)在Hadoop中的大規(guī)模數(shù)據(jù)的機(jī)制。Hive定義了簡(jiǎn)單的類SQL查詢語(yǔ)言,稱為HQL,它允許熟悉SQL的用戶查詢數(shù)據(jù)。同時(shí),這個(gè)語(yǔ)言也允許熟悉MapReduce開發(fā)者的開發(fā)自定義的mapper和reducer來處理內(nèi)建的mapper和reducer無法完成的復(fù)雜的分析工作。Hive現(xiàn)狀
Hadoop生態(tài)圈中的重要工程企業(yè)級(jí)數(shù)據(jù)倉(cāng)庫(kù)的主流架構(gòu)之一解決“即席查詢〞的問題注意Cloudera的Impala工程,號(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效勞。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ǔ)句從詞法分析、語(yǔ)法分析、編譯、優(yōu)化以及查詢方案的生成。生成的查詢方案存儲(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.sh
cphive-env.sh.templatehive-env.shhive-site.xml
cphive-default.xml.templatehive-site.xml啟動(dòng)hive
Hive命令行啟動(dòng)方式:直接輸入/hive/bin/hive命令,或者輸入hive-servicecli命令。Hiveweb界面啟動(dòng)方式:輸入hive-servicehwi命令。Hive采用遠(yuǎn)程效勞啟動(dòng)方式:遠(yuǎn)程效勞的端口號(hào)為10000,采用hive--servicehiveserver命令。Hive采用遠(yuǎn)程后臺(tái)啟動(dòng)方式:關(guān)閉Hive終端,但是Hive效勞不退出,采用nohuphive--servicehiveserver命令。簡(jiǎn)單建刪表測(cè)試
一個(gè)常見錯(cuò)誤
解決方法
修改hadoop-env.shHive安裝:獨(dú)立模式
可參考網(wǎng)絡(luò)資源:
Hive的效勞Hive不僅僅是一個(gè)shell,通過配置,還可以提供Thrift效勞器、Web接口、元數(shù)據(jù)和JDBC/ODBC效勞,具有強(qiáng)大的功能和良好的可擴(kuò)展性。1、Hiveshell執(zhí)行HiveQL〔大約相當(dāng)于SQL92標(biāo)準(zhǔn)〕查看或臨時(shí)設(shè)置Hive參數(shù),只對(duì)當(dāng)前會(huì)話有效創(chuàng)立函數(shù)導(dǎo)入jar包HiveQL查詢語(yǔ)言HiveQL是一種類似SQL的語(yǔ)言查詢語(yǔ)言HQLSQL數(shù)據(jù)存儲(chǔ)位置HDFSRawDevice或者LocalFS數(shù)據(jù)格式用戶定義系統(tǒng)決定數(shù)據(jù)更新不支持支持索引無有執(zhí)行MapRedcueExecutor執(zhí)行延遲高低可擴(kuò)展性高低數(shù)據(jù)規(guī)模大小HiveQL查詢語(yǔ)言1.查詢語(yǔ)言。由于SQL被廣泛的應(yīng)用在數(shù)據(jù)倉(cāng)庫(kù)中,因此,專門針對(duì)Hive的特性設(shè)計(jì)了類SQL的查詢語(yǔ)言HQL。熟悉SQL開發(fā)的開發(fā)者可以很方便的使用Hive進(jìn)行開發(fā)。
2.數(shù)據(jù)存儲(chǔ)位置。Hive是建立在Hadoop之上的,所有Hive的數(shù)據(jù)都是存儲(chǔ)在HDFS中的。而數(shù)據(jù)庫(kù)那么可以將數(shù)據(jù)保存在塊設(shè)備或者本地文件系統(tǒng)中。3.數(shù)據(jù)格式。Hive中沒有定義專門的數(shù)據(jù)格式,數(shù)據(jù)格式可以由用戶指定,用戶定義數(shù)據(jù)格式需要指定三個(gè)屬性:列分隔符〔通常為空格、〞\t〞、〞\x001″〕、行分隔符〔〞\n〞〕以及讀取文件數(shù)據(jù)的方法〔Hive中默認(rèn)有三個(gè)文件格式TextFile,SequenceFile以及RCFile〕。由于在加載數(shù)據(jù)的過程中,不需要從用戶數(shù)據(jù)格式到Hive定義的數(shù)據(jù)格式的轉(zhuǎn)換,因此,Hive在加載的過程中不會(huì)對(duì)數(shù)據(jù)本身進(jìn)行任何修改,而只是將數(shù)據(jù)內(nèi)容復(fù)制或者移動(dòng)到相應(yīng)的HDFS目錄中。而在數(shù)據(jù)庫(kù)中,不同的數(shù)據(jù)庫(kù)有不同的存儲(chǔ)引擎,定義了自己的數(shù)據(jù)格式。所有數(shù)據(jù)都會(huì)按照一定的組織存儲(chǔ),因此,數(shù)據(jù)庫(kù)加載數(shù)據(jù)的過程會(huì)比較耗時(shí)。
HiveQL查詢語(yǔ)言4.數(shù)據(jù)更新。由于Hive是針對(duì)數(shù)據(jù)倉(cāng)庫(kù)應(yīng)用設(shè)計(jì)的,而數(shù)據(jù)倉(cāng)庫(kù)的內(nèi)容是讀多寫少的。因此,Hive中不支持對(duì)數(shù)據(jù)的改寫和添加,所有的數(shù)據(jù)都是在加載的時(shí)候中確定好的。而數(shù)據(jù)庫(kù)中的數(shù)據(jù)通常是需要經(jīng)常進(jìn)行修改的,因此可以使用INSERTINTO...VALUES添加數(shù)據(jù),使用UPDATE...SET修改數(shù)據(jù)
5.索引。之前已經(jīng)說過,Hive在加載數(shù)據(jù)的過程中不會(huì)對(duì)數(shù)據(jù)進(jìn)行任何處理,甚至不會(huì)對(duì)數(shù)據(jù)進(jìn)行掃描,因此也沒有對(duì)數(shù)據(jù)中的某些Key建立索引。Hive要訪問數(shù)據(jù)中滿足條件的特定值時(shí),需要暴力掃描整個(gè)數(shù)據(jù),因此訪問延遲較高。由于MapReduce的引入,Hive可以并行訪問數(shù)據(jù),因此即使沒有索引,對(duì)于大數(shù)據(jù)量的訪問,Hive仍然可以表達(dá)出優(yōu)勢(shì)。數(shù)據(jù)庫(kù)中,通常會(huì)針對(duì)一個(gè)或者幾個(gè)列建立索引,因此對(duì)于少量的特定條件的數(shù)據(jù)的訪問,數(shù)據(jù)庫(kù)可以有很高的效率,較低的延遲。由于數(shù)據(jù)的訪問延遲較高,決定了Hive不適合在線數(shù)據(jù)查詢。
6.執(zhí)行。Hive中大多數(shù)查詢的執(zhí)行是通過Hadoop提供的MapReduce來實(shí)現(xiàn)的〔類似select*fromtbl的查詢不需要MapReduce〕。而數(shù)據(jù)庫(kù)通常有自己的執(zhí)行引擎。
HiveQL查詢語(yǔ)言7.執(zhí)行延遲。之前提到,Hive在查詢數(shù)據(jù)的時(shí)候,由于沒有索引,需要掃描整個(gè)表,因此延遲較高。另外一個(gè)導(dǎo)致Hive執(zhí)行延遲高的因素是MapReduce框架。由于MapReduce本身具有較高的延遲,因此在利用MapReduce執(zhí)行Hive查詢時(shí),也會(huì)有較高的延遲。相對(duì)的,數(shù)據(jù)庫(kù)的執(zhí)行延遲較低。當(dāng)然,這個(gè)低是有條件的,即數(shù)據(jù)規(guī)模較小,當(dāng)數(shù)據(jù)規(guī)模大到超過數(shù)據(jù)庫(kù)的處理能力的時(shí)候,Hive的并行計(jì)算顯然能表達(dá)出優(yōu)勢(shì)。8.可擴(kuò)展性。由于Hive是建立在Hadoop之上的,因此Hive的可擴(kuò)展性是和Hadoop的可擴(kuò)展性是一致的。而數(shù)據(jù)庫(kù)由于ACID語(yǔ)義的嚴(yán)格限制,擴(kuò)展行非常有限。9.數(shù)據(jù)規(guī)模。由于Hive建立在集群上并可以利用MapReduce進(jìn)行并行計(jì)算,因此可以支持很大規(guī)模的數(shù)據(jù);對(duì)應(yīng)的,數(shù)據(jù)庫(kù)可以支持的數(shù)據(jù)規(guī)模較小。
HiveQL查詢語(yǔ)言Hive安裝與部署成功之后,在命令行輸入hive進(jìn)入shell。1、退出shell:Hive>quit;2、查看已有表
Hive>showtables;3、查看表結(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][STOREDAS][LOCATIONhdfs_path]CREATETABLE創(chuàng)立一個(gè)指定名字的表。如果相同名字的表已經(jīng)存在,那么拋出異常;用戶可以用IFNOTEXIST選項(xiàng)來忽略這個(gè)異常。EXTERNAL關(guān)鍵字可以讓用戶創(chuàng)立一個(gè)外部表,在建表的同時(shí)指定一個(gè)指向?qū)嶋H數(shù)據(jù)的路徑〔LOCATION〕,Hive創(chuàng)立內(nèi)部表時(shí),會(huì)將數(shù)據(jù)移動(dòng)到數(shù)據(jù)倉(cāng)庫(kù)指向的路徑;假設(shè)創(chuàng)立外部表,僅記錄數(shù)據(jù)所在的路徑,不對(duì)數(shù)據(jù)的位置做任何改變。在刪除表的時(shí)候,內(nèi)部表的元數(shù)據(jù)和數(shù)據(jù)會(huì)被一起刪除,而外部表只刪除元數(shù)據(jù),不刪除數(shù)據(jù)。LIKE允許用戶復(fù)制現(xiàn)有的表結(jié)構(gòu),但是不復(fù)制數(shù)據(jù)。用戶在建表的時(shí)候可以自定義SerDe或者使用自帶的SerDe。如果沒有指定ROWFORMAT或者ROWFORMATDELIMITED,將會(huì)使用自帶的SerDe。在建表的時(shí)候,用戶還需要為表指定列,用戶在指定表的列的同時(shí)也會(huì)指定自定義的SerDe,Hive通過SerDe確定表的具體的列的數(shù)據(jù)。如果文件數(shù)據(jù)是純文本,可以使用STOREDASTEXTFILE。如果數(shù)據(jù)需要壓縮,使用STOREDASSEQUENCE。有分區(qū)的表可以在創(chuàng)立的時(shí)候使用PARTITIONEDBY語(yǔ)句。一個(gè)表可以擁有一個(gè)或者多個(gè)分區(qū),每一個(gè)分區(qū)單獨(dú)存在一個(gè)目錄下。而且,表和分區(qū)都可以對(duì)某個(gè)列進(jìn)行CLUSTEREDBY操作,將假設(shè)干個(gè)列放入一個(gè)桶〔bucket〕中。也可以利用SORTBY對(duì)數(shù)據(jù)進(jìn)行排序。這樣可以為特定應(yīng)用提高性能。表名和列名不區(qū)分大小寫,SerDe和屬性名區(qū)分大小寫。表和列的注釋是字符串。創(chuàng)立表
創(chuàng)立表
列類型Hive支持的數(shù)據(jù)類型如下:原生類型:TINYINTSMALLINTINTBIGINTBOOLEANFLOATDOUBLESTRINGBINARY
(Hive
0.8.0以上才可用)TIMESTAMP
(Hive
0.8.0以上才可用)復(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ù)據(jù)存儲(chǔ)格式,也沒有為數(shù)據(jù)建立索引,用戶可以非常自由的組織Hive中的表,只需要在創(chuàng)立表的時(shí)候告訴Hive數(shù)據(jù)中的列分隔符和行分隔符,Hive就可以解析數(shù)據(jù)。Hive中所有的數(shù)據(jù)都存儲(chǔ)在HDFS中,Hive中包含以下數(shù)據(jù)模型:Table,ExternalTable,Partition,Bucket?!?〕普通表普通表的創(chuàng)立就是一個(gè)表對(duì)應(yīng)一個(gè)表名和表名對(duì)應(yīng)的文件?!?〕外部表建表的同時(shí)指定一個(gè)指向?qū)嶋H數(shù)據(jù)的路徑,創(chuàng)立內(nèi)部表時(shí)會(huì)將數(shù)據(jù)移動(dòng)到數(shù)據(jù)倉(cāng)庫(kù)指向的路徑;假設(shè)創(chuàng)立外部表,僅記錄數(shù)據(jù)所在的路徑,不對(duì)數(shù)據(jù)的位置做任何改變。刪除表時(shí),內(nèi)部表的元數(shù)據(jù)和數(shù)據(jù)一起被刪,而外部表只刪除元數(shù)據(jù),不刪除數(shù)據(jù)?!?〕分區(qū)表在Hive中,表中的一個(gè)Partition對(duì)應(yīng)于表下的一個(gè)目錄,所有的Partition的數(shù)據(jù)都存儲(chǔ)在對(duì)應(yīng)的目錄中。例如:pvs表中包含ds和city兩個(gè)Partition,那么對(duì)應(yīng)于ds=20230801,ctry=US的HDFS子目錄為:/wh/pvs/ds=20230801/ctry=US;對(duì)應(yīng)于ds=20230801,ctry=CA的HDFS子目錄為;/wh/pvs/ds=20230801/ctry=CA加載數(shù)據(jù)Hive不支持一條一條用insert語(yǔ)句進(jìn)行插入操作,也不支持update操作。數(shù)據(jù)以load的方式加載到建立好的表中,一旦導(dǎo)入,不可修改。LOADDATA[LOCAL]INPATH''[OVERWRITE]INTOTABLEtablename[PARTITION(partcol1=val1,partcol2=val2...)]Load操作只是單純的復(fù)制/移動(dòng)操作,將數(shù)據(jù)文件移動(dòng)到Hive表對(duì)應(yīng)的位置。
可以是:相對(duì)路徑,例如:project/data1絕對(duì)路徑,例如:/user/hive/project/data1包含模式的完整URI,例如:hdfs://namenode:9000/user/hive/project/data1加載的目標(biāo)可以是一個(gè)表或者分區(qū)。如果表包含分區(qū),必須指定每一個(gè)分區(qū)的分區(qū)名。
可以引用一個(gè)文件〔這種情況下,Hive會(huì)將文件移動(dòng)到表所對(duì)應(yīng)的目錄中〕或者是一個(gè)目錄〔在這種情況下,Hive會(huì)將目錄中的所有文件移動(dòng)至表所對(duì)應(yīng)的目錄中〕。如果指定了LOCAL,那么:load命令會(huì)去查找本地文件系統(tǒng)中的。如果發(fā)現(xiàn)是相對(duì)路徑,那么路徑會(huì)被解釋為相對(duì)于當(dāng)前用戶的當(dāng)前路徑。用戶也可以為本地文件指定一個(gè)完整的URI,比方:.load命令會(huì)將
中的文件復(fù)制到目標(biāo)文件系統(tǒng)中。目標(biāo)文件系統(tǒng)由表的位置屬性決定。被復(fù)制的數(shù)據(jù)文件移動(dòng)到表的數(shù)據(jù)對(duì)應(yīng)的位置。如果沒有指定LOCAL關(guān)鍵字,如果
指向的是一個(gè)完整的URI,hive會(huì)直接使用這個(gè)URI。否那么:如果沒有指定schema或者authority,Hive會(huì)使用在hadoop配置文件中定義的schema和authority,
指定了Namenode的URI。如果路徑不是絕對(duì)的,Hive相對(duì)于/user/進(jìn)行解釋。Hive會(huì)將
中指定的文件內(nèi)容移動(dòng)到table〔或者partition〕所指定的路徑中。如果使用了OVERWRITE關(guān)鍵字,那么目標(biāo)表〔或者分區(qū)〕中的內(nèi)容〔如果有〕會(huì)被刪除,然后再將
指向的文件/目錄中的內(nèi)容添加到表/分區(qū)中。如果目標(biāo)表〔分區(qū)〕已經(jīng)有一個(gè)文件,并且文件名和
中的文件名沖突,那么現(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語(yǔ)句可以是一個(gè)union查詢或一個(gè)子查詢的一局部table_reference是查詢的輸入,可以是一個(gè)普通表、一個(gè)視圖、一個(gè)join或一個(gè)子查詢簡(jiǎn)單查詢。例如,下面這一語(yǔ)句從t1表中查詢所有列的信息。SELECT*FROMt1WHEREClauseWHEREClause是一個(gè)布爾表達(dá)式,不支持where子句中的in,exit或子查詢使用ALL和DISTINCT選項(xiàng)區(qū)分對(duì)重復(fù)記錄的處理。默認(rèn)是ALL,表示查詢所有記錄。DISTINCT表示去掉重復(fù)的記錄。hive>SELECTcol1,col2FROMt113131425hive>SELECTDISTINCTcol1,col2FROMt1131425基于Partition的查詢一般SELECT查詢會(huì)掃描整個(gè)表〔除非是為了抽樣查詢〕。但是如果一個(gè)表使用PARTITIONEDBY子句建表,查詢就可以利用分區(qū)剪枝〔inputpruning〕的特性,只掃描一個(gè)表中它關(guān)心的那一局部。Hive當(dāng)前的實(shí)現(xiàn)是,只有分區(qū)斷言出現(xiàn)在離FROM子句最近的那個(gè)WHERE子句中,才會(huì)啟用分區(qū)剪枝。例如,如果page_views表使用date列分區(qū),以下語(yǔ)句只會(huì)讀取分區(qū)為‘2023-03-01’的數(shù)據(jù)。SELECTpage_views.*FROMpage_viewsWHEREpage_views.date>='2023-03-01'ANDpage_views.date<='2023-03-31';查詢
連接HiveQL的連接分為內(nèi)連接、左向外連接、右向外連接、全外連接和半連接5種。例如:Selectuserinfor.*,choice.*fromuserinforjoinchoiceon(userinfor.id=choice.userid);表連接
JDBC/ODBC接口
用戶可以像連接傳統(tǒng)關(guān)系數(shù)據(jù)庫(kù)一樣使用JDBC或ODBC連接Hive目前還不成熟JDBC的具體連接過程
1.使用jdbc的方式連接Hive,首先做的事情就是需要啟動(dòng)hive的ThriftServer,否那么連接hive的時(shí)候會(huì)報(bào)connectionrefused的錯(cuò)誤。啟動(dòng)命令如下:hive--servicehiveserver2.新建java工程,然后將hive/lib下的所有jar包和hadoop的核心jar包hadoop-0.20.2-core.jar添加到工程的類路徑上。
樣板代碼
publicstaticvoidmain(String[]args)throwsException{//TODOAuto-generatedmethodstubClass.forName("org.apach
溫馨提示
- 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年江西現(xiàn)代職業(yè)技術(shù)學(xué)院高職單招職業(yè)技能測(cè)試近5年??及鎱⒖碱}庫(kù)含答案解析
- 2025年梅河口康美職業(yè)技術(shù)學(xué)院高職單招高職單招英語(yǔ)2016-2024歷年頻考點(diǎn)試題含答案解析
- 2025年昆明衛(wèi)生職業(yè)學(xué)院高職單招語(yǔ)文2018-2024歷年參考題庫(kù)頻考點(diǎn)含答案解析
- 2025年注冊(cè)城鄉(xiāng)規(guī)劃師《城鄉(xiāng)規(guī)劃原理》真題及答案
- 幼兒園祖國(guó)主題活動(dòng)策劃方案模板五篇
- 零件買賣合同協(xié)議書
- 未來養(yǎng)老行業(yè)面臨的挑戰(zhàn)與機(jī)遇
- 全球民用航空運(yùn)輸市場(chǎng)現(xiàn)狀分析
- 物品運(yùn)輸合同協(xié)議書
- 建設(shè)工程基本建設(shè)貸款合同
- 2025福建新華發(fā)行(集團(tuán))限責(zé)任公司校園招聘30人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 山東鐵投集團(tuán)招聘筆試沖刺題2025
- 圖像敘事的跨學(xué)科視野-洞察分析
- 2025年中考英語(yǔ)總復(fù)習(xí):閱讀理解練習(xí)題30篇(含答案解析)
- 陜西省英語(yǔ)中考試卷與參考答案(2024年)
- 基于OBE理念的世界現(xiàn)代史教學(xué)與學(xué)生歷史思維培養(yǎng)探究
- 施工現(xiàn)場(chǎng)揚(yáng)塵污染治理巡查記錄
- 2024年列車員技能競(jìng)賽理論考試題庫(kù)500題(含答案)
- 《無人機(jī)測(cè)繪技術(shù)》項(xiàng)目3任務(wù)2無人機(jī)正射影像數(shù)據(jù)處理
- 《ISO 55013-2024 資產(chǎn)管理-數(shù)據(jù)資產(chǎn)管理指南》專業(yè)解讀和應(yīng)用指導(dǎo)材料(雷澤佳編制-2024B0)-121-240
- 小兒腹瀉課件
評(píng)論
0/150
提交評(píng)論