hive內部表 外部表 分割槽

2021-09-07 15:24:27 字數 1761 閱讀 3273

hive內部表、外部表、分割槽

內部表(managed table)

外部表(external table)

表分割槽(partitioned table)

create table table_name (

id int,

dtdontquery string,

name string

)partitioned by (date string)

create table table_name (

id int,

date string,

name string

)partitioned by (date string)

例子
create table test(name string);

load data inpath '/hdfs_home/20170808' into table test partition(date='20170808');

或create table test_3 (name string, age int) partitioned by (date string) row format delimited fields terminated by ',' lines terminated by '\n';

load data inpath '/hdfs_home/20170808' into table test partition(date='20170808'); # 指向資料夾即可

# 執行後原hdfs路徑下20170808資料夾已經不存在(被移動走了)

hive> create external table test_4 (name string, age int) partitioned by (date string) row format delimited fields terminated by ',' lines terminated by '\n';

oktime taken: 0.121 seconds

hive> alter table test_4 add partition (date='20170809') location '/hdfs_home/20170809/';

okhive> select * from test_4 where date = '20170809';

okzhao 14 20170809

# 此時/hdfs_home/20170809還在原路徑下

# 若使用以下命令進行操作,則相當於內部表的操作了,即原路徑檔案消失

alter table test_4 add partition (date='20170809');

load data inpath ('/hdfs_home/20170809/') into table test_4 partition (date='20170809')

show partitions table_name;
describe extended tablename;

ordesc formatted tablename;

alter table  table_name drop partition (day='20140722');
參考

Hive內部表 外部表

內部表 外部表 未被external修飾的是內部表 managed table 被external修飾的為外部表 external table 區別 內部表資料由hive自身管理,外部表資料由hdfs管理 內部表資料儲存的位置是hive.metastore.warehouse.dir 預設 user...

Hive 內部表 外部表 分割槽表 擴充套件命令

create external table if not exists 表名 列名資料型別 comment 本列注釋 comment 表注釋 partitioned by 列名資料型別 comment 本列注釋 clustered by 列名,列名,sorted by 列名 asc desc inf...

Hive內部表,外部表,分割槽表的建立

建立內部表 預設儲存在 user hive warehouse下 也可以通過location指定 刪除表時,會刪除表資料及元資料 create table if not exists db study.student id string name string row format delimite...