1.表重命名
alter table old_table_name rename to new_table_name;
2.修改表属性值
ALTER TABLE table_name SET TBLPROPERTIES table_properties;
table_properties: (property_name = property_value, property_name = property_value, ... )
如: ALTER TABLE table_name SET TBLPROPERTIES("EXTERNAL"="TRUE"); 修改内外部表属性
如: ALTER TABLE table_name SET TBLPROPERTIES ('comment' = new_comment); 修改表注释
3.添加分区
ALTER TABLE tablename ADD PARTITION (month='201101');(新分区是空的没数据,需要手动添加或上传数据文件)
修改分区值:
ALTER TABLE tablename PARTITION (month='202005') RENAME TO PARTITION (month='201105');
删除分区:ALTER TABLE tablename DROP PARTITION (month='201105');
4.添加列
ALTER TABLE table_name ADD COLUMNS (v1 int, v2 string);
修改列名
ALTER TABLE test_change CHANGE v1 v1new int;
删除表
DROP TABLE tablename;
清空表
TRUNCATE TABLE tablename;
1.array类型:Hive 支持的数据类型很多,除了基本的: int 、 string 、 varchar 、 timestamp 等
还有一些复杂的数据类型如array
建表语句:create table myhive.test_array(name string, work_locations array<string>)
row format delimited fields terminated by '\t' COLLECTION ITEMS TERMINATED BY ',';
导入数据:load data local inpath '/home/wtk/data_for_array_type.txt' into table test_array;
常用 array 类型查询:
-- 查询所有数据
select * from myhive.test_array;
-- 查询 loction 数组中第二个元素
select name, work_locations[1] location from myhive.test_array;
-- 查询 location 数组中元素的个数
select name, size(work_locations) location from myhive.test_array;
-- 查询 location 数组中包含 tianjin 的信息
select * from myhive.test_array where array_contains(work_locations,'tianjin');