Hive簡介

  • Hive的產生

                非java編程者對hdfs的數據做mapreduce操作

  • Hive簡介
  1.  數據倉庫(數據倉庫是對過去的數據進行歷史分析,數據庫支持業務系統交互式訪問)   
  2. 解釋器,編譯器,優化器等
  3. 運行時,元數據存儲在關係型數據庫裏面(原因:hdfs存儲文件無格式)
  • Hive系統架構

--編譯器將一個Hive SQL轉換操作符

--操作符是Hive的最小的處理單元

--每個操作符代表HDFS的一個操作或者以到

  • Hive搭建模式
  1. local模式----此模式連接到一個In-memory的數據庫Derby,一般用於Unit Test;
  2. 單用戶模式---通過網絡鏈接到一個數據庫中,最常用的模式;
  3. 遠程服務器模式/多用戶模式---用於非java客戶端訪問原數據庫,在服務器端啓動MetaStoreServer,客戶端利用Thrift協議通過MetaStoreServer訪問原數據庫。
  • 內/外部表區別
  1. Hive創建內部表時(默認創建內部表),會將數據移動到數據倉庫指向的路徑;創建外部表(需要加關鍵字external),僅記錄數據所在的路徑,不對數據的位置做任何改變;
  2. 刪除時內部表會將表結構和元數據全部刪除,外部表只刪除表結構,不刪除元數據
  • ​​​​​​​Hive分區

分區字段不能在表的列中 

CREAT TABLE psn3(
id int,
name string,
age int,
likes array<string>,
address map<string,string>)
partitioned by (age int,sex string)
ROW FORMAT DELIMTIED
FIELDS TERMINATED BY ','
COLLECTION ITEMS TERMINATED BY '-'
MAP KEYS TERMINATED BY ';'
LINES TERMINATED BY '\n';

添加分區

ALTER TABLE psn2 ADD PARTITION(age=10,sex=boy);

添加分區的時候,必須在現有分區的基礎之上

刪除分區的時候,會將所有存在的分區都刪除

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章