Hive學習之三 《Hive的表的詳解和應用案例詳解》

木子小僧發表於2016-03-24

一、Hive的表

  Hive的表分為內部表、外部表和分割槽表。

  1、內部表,為託管表。

  2、外部表,external。

  3、分割槽表。

  詳解:

  內部表,刪除表的時候,資料會跟著刪除。

  外部表,在刪除表的時候,資料不會跟著刪除。

      預設分隔符:列 為 \001         行分隔符為 \n

  分割槽表:  

  1、解決查詢效率,不全表查詢,只查對應的分割槽。

  2、避免資料重複的問題,即資料質量方面安全。

create table tablename (
欄位1   欄位型別 ,
欄位2   欄位型別 )  PARTITIONED BY (分割槽1 分割槽型別1,分割槽2 分割槽型別2)  
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t';

 

二、hive的配置檔案。  

  /etc/hive/conf  :

  hive-env.sh 設定環境變數相關

  hive-site.xml:屬性引數配置。

  Hadoop的配置檔案路徑:

  /etc/hadoop/conf

三、hive的核心操作語句。

  insert和select。

  insert資料的時候必須指定分割槽,不指定分割槽就報錯。

  查詢的時候帶分割槽範圍,比如:分割槽1=’’

 

  不懂建表,看步驟一。

  1、insert的兩種方式:

  ①append 是一種追加方式,基本不是特別常用。

  ②overwrite  是一種覆蓋方式,操作方式為先刪除,後插入。相對企業來說,安全級別高。

      Load檔案:載入檔案到hive表。

  ①我們先在本地建立一個資料夾,用來儲存需要載入的檔案,比如

     mkdir   /opt/muzi/test

     通過rz操作,上傳需要載入的檔案。

     load語法:

LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename [PARTITION (partcol1=val1, partcol2=val2 ...)]

    應用案例程式碼:

  推薦使用[OVERWRITE]

LOAD DATA LOCAL INPATH '/opt/muzi/text/檔案1' overwrite INTO TABLE  tablename PARTITION (分割槽1='分割槽的東東(比如時間什麼的)');

  2、查詢語句

  語法很簡單 

select 欄位名 from tablename where 分割槽1='分割槽資料' limit n行資料;

 

 

 

  

 

相關文章