大數據學習:hive篇,入門學習大數據開發

大數據開發之路漫漫其修遠兮,吾將上下而求索。對於很多入門學習大數據開發的小夥伴,可能第一個接觸到的,是我們的大數據領域的數據倉庫工具hive。
在大數據生態中,hive一般作爲數據倉庫來使用。 Hive本身是不做數據存儲的,它是構建在分佈式存儲系統HDFS之上,我們平常看到的表數據其實本質上來說還是HDFS的文件。 Hive把這些HDFS數據文件,通過元數據規則映射爲數據庫的表,並且可以提供SQL操作的功能。Hive總體結構比較簡單,總體有三個組件:用戶接口、元數據系統、驅動器。
大數據學習:hive篇,入門學習大數據開發
用戶通過用戶接口來輸入操作指令。一般接口有三種形式:
CLI端:一般在Linux服務器直接輸入hive即可進入; WEB模式:通過命令bin/hive --service hwi啓動,默認訪問9999端口; 遠程模式:一般是JDBC之類的編程接口;
Hive的核心在於驅動器,一般驅動器接收到用戶接口傳遞的一條SQL之後,會進行下面的一系列操作:
• 驅動器開始進行語法和語義分析
• 生成邏輯計劃並且邏輯優化
• 生成物理計劃
• 發送計劃到執行引擎(常用有mapredue和sprk)執行
• 結果返回
常用hive語法:
 分組統計
一般常用的分組就是group by了,然後配合上一些窗口函數, SUM、AVG、MIN、MAX、COUNT等,就可以實現我們很多統計需求了。
大數據學習:hive篇,入門學習大數據開發
• 關聯查詢
有時候我們查詢的數據存放在不同的表中,那關聯查詢就派上用場了。所謂關聯查詢,一般就是通過兩張表相同的字段值關聯起來,同時查詢兩張表的記錄。Hive中常用關聯分內外關聯。
我們先建立兩張簡單的表tab_a和tab_b,用實例來說明關聯機制。表結構和表數據如下圖所示:
大數據學習:hive篇,入門學習大數據開發
內關聯一般使用關鍵字Join或inner join,內關聯只返回關聯上的結果。
外關聯的形式就比較多樣化了,又分爲:
左外關聯:關鍵字爲left [outer] join,以前邊的表爲主表,返回記錄數和主表記錄一致,關聯不上的字段爲null;
右外關聯:關鍵字爲right [outer] join,和左外關聯相反,則是以後邊的表爲主表;
全外關聯:full [outer] join,返回兩個表的去重之和,關聯不上的字段爲null。
 行列轉換
有時候我們會需要把多列的數據平鋪到一行上輸出。比如查詢用戶的訪問軌跡,這時候有兩個函數就起上作用了。
大數據學習:hive篇,入門學習大數據開發
這兩個sql的作用都是把每個用戶的點擊軌跡拼接暫展示出來,其中collect_set和collect_set能夠把列數據合併,轉爲一行。而兩個的唯一區別就是collect_set會進行去重。
優勢和不足:
Hive目前作爲業內使用最爲廣泛的數據倉庫工具,有着很多優點: 高可靠、容錯性高、擴展性強。
HQL語法和傳統SQL類似,且內置大量處理函數支持的存儲格式種類多,兼容性強。用戶接口多,支持各種形式的調用。但是hive也有它自身的一些不足,比如:
OLTP支持不足,不支持事務,目前只有比較新的版本纔可以實現行列級別更新且對格式要求嚴格。
完成加米穀大數據培訓的相關課程,可以在加米穀大數據申請考取[大數據專業人才技能證書](大數據工程師證書,數據分析師證書),證書由中國管理科學研究院學術委員會簽發。證書詳情及相關內容可聯繫加米穀大數據張老師進行了解。
學習大數據可以參考下加米穀!加米穀大數據零基礎開發班六月開課,現在諮詢還有機會獲得免費試聽名額+學費優惠+大數據內部資料!名額有限,先到先得,送完即止。趕緊來諮詢吧!
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章