## 建表
### 內錶
```create table test_user_base(
name string comment 'name value',
workid string comment 'workid value',
age string comment 'age value',
*** string comment '*** value',
phone string comment 'phone value',
addr string comment 'addr value',
flag string comment 'flag value',
)row format delimited fields terminated by ',';
```### 外表
create external table test_user_base(
name string comment 'name value',
workid string comment 'workid value',
age string comment 'age value',
*** string comment '*** value',
phone string comment 'phone value',
addr string comment 'addr value',
flag string comment 'flag value',
)row format delimited fields terminated by ',';
```> 內部表和外部表不一樣,內部表儲存的是真實的資料,外部表的資料儲存在檔案系統上,hive內部僅僅儲存資料元路徑;刪除的時候,內部表會刪除元資料和真實資料全部刪除,且不可恢復;內部表僅僅刪除元資料。
## 導數
### 匯入
1. 從本地匯入資料
```load data local inpath '/opt/custorm' into table customer;
```2. 從hdfs匯入資料(會將hdfs上的檔案mv到建表時指定的目錄下,而不是copy)
```load data inpath '/user/root/employees.txt' overwrite into table employees;
```> into是加上,而overwrite是覆蓋。
### 匯出
1. 匯出到本地
```insert overwrite local directory '/opt/customer_exp'
row format delimited fields terminated by ','
select * from employees limit 5;
```2. 匯出到hdfs
```insert overwrite directory '/user/root/customer_exp'
row format delimited fields terminated by ','
select * from employees limit 5;
```tips:
- 建表和載入分割槽時加上 if not exists
- 刪除表時加上 drop table if exists
- 強制刪除資料庫:drop database if exists test cascate;
hive建立外部表,匯入資料
在hdfs建立分割槽,並存有檔案 手工建立或者由程式在hdfs上生成了分割槽目錄,每個分割槽目錄下有相應的檔案。vi test.txt 2 lily 1991 shanghai 3 jack 1992 guangxi 4 jenny 1999 xinjiang 5 jay 1995 xizang 6...
hive 表插入 匯入資料
1 覆蓋現有分割槽資料,如果沒有該指定分割槽,新建該分割槽,並且插入資料 insert overwrite table 庫名.表名 partition dt 2018 09 12 name tom select from 庫名.表名 where.2 向現有的分割槽插入資料 之前的資料不會被覆蓋 in...
Hive 建立表方式以及表的型別
1 常規方式 create table table name 字段 2 通過子查詢方式 類似於mysql中檢視的建立方式 create table table name as select 3 建立類似表 只有表結構,沒有資料 create table new table name like old...