一、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行資料;