您好,登錄后才能下訂單哦!
這篇文章主要介紹了Hive基礎知識的示例分析,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
底層存儲用到的是HDFS分布式存儲系統。它的優點:1.?簡單易上手:提供了類SQL查詢語言HQL;2.可擴展:為超大數據集設計了計算/擴展能力(MR作為計算引擎,HDFS作為存儲系統);3.提供統一的元數據管理;4.Hive支持用戶自定義函數,用戶可以根據自己的需求來實現自己的函數:繼承hive的UDF類,重寫evaluate方法;5.容錯:良好的容錯性,節點出現問題SQL仍可完成執行;
缺點:1.Hive的HQL表達能力有限;2.效率比較低,自動生成的Mapreduce作業,通常情況下不夠智能化,且調優比較困難;
Hive用戶接口
1)HiveCLI(HiveCommandLine,Hive命令行),客戶端可以直接在命令行模式下進行操作
2)HWI(HiveWebInterface,HiveWeb接口),Hive提供了更直觀的Web界面
3)hiveserver,Hive提供了Thrift服務,Thrift客戶端目前支持C++/Java/PHP/Python/Ruby
Hive常用文件格式:
Textfile:默認格式,數據不做壓縮,磁盤開銷大,數據解析開銷大;
SEQUENCEFILE:SequenceFile是HadoopAPI提供的一種二進制文件支持,其具有使用方便、可分割、可壓縮的特點;
rcfile:RCFILE是一種行列存儲相結合的存儲方式。首先,其將數據按行分塊,保證同一個record在一個塊上,避免讀一個記錄需要讀取多個block。其次,塊數據列式存儲,有利于數據壓縮和快速的列存取;
parquet:ApacheParquet是Hadoop生態圈中一種新型列式存儲格式,它可以兼容Hadoop生態圈中大多數計算框架;
Hive數據導入導出
Hive表中的數據,同時支持從本地數據導入、從其他表導入數據、導出數據到本地文件系統、導出數據到HDFS中
Hive基本語句
Hive建表語句基本跟關系型數據庫建表語句相同,區別在于語句尾端指定了列分隔符:
ROWFORMATDELIMITEDFIELDSTERMINATEDBY‘,’
指定了列分隔符為“,”;
對于分區表,會有分區字段的說明:
PARTITIONEDBY(countrySTRING,stateSTRING)
用“country“、”state”兩個字段分區;
以及指定存儲文件的格式:
STOREDASTEXTFILE。
關于內連接、外連接和半連接:
幾種連接區別簡單概括為:內連接只顯示了倆張表都存在的數據,而外連接則是顯示出所有的數據,其中左連接是左外邊的表輸出完整數據。右外連接是右邊的表輸出完整數據,全外連接就是兩張表的所有行全部輸出。做半連接用來補充Hive相對于MySQL等語句缺失的in/exists這樣的子句,就用leftjoin代替,和leftjoin的區別在于右邊的表數據不會加載進結果;
orderby和sortby:
ORDERBY會對查詢結果集執行一個全局排序,所有的數據都通過一個reducer進行處理;SORTBY,其只會在每個reducer中對數據進行排序,也就是執行一個局部排序過程,生產中可以和DISTRIBUTEBY一起用,實現分區并排序。
感謝你能夠認真閱讀完這篇文章,希望小編分享的“Hive基礎知識的示例分析”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。