hive 表操作
1. hive表常用操作
--建库
CREATE DATABASE IF NOT EXISTS test;
-- 建表
CREATE TABLE IF NOT EXISTS test.column_change_table (
column_1 string COMMENT '列1',
column_2 string COMMENT '列2',
column_3 string COMMENT '列3',
column_4 string COMMENT '列4',
column_5 string COMMENT '列5'
)
COMMENT '表注释'
PARTITIONED BY ( -- 分区字段设置
dt string COMMENT '分区说明'
)
STORED AS ORC -- 注意,orc格式的hive表不支持伪删除列
TBLPROPERTIES ( -- 表属性
'partition.retention.period'='90d' -- 保存天数
);
-- 插入数据:分区表的插入方式仅仅是多了个分区
INSERT INTO test.column_change_table partition(dt='20220520')
(column_1,column_2,column_3,column_4)
VALUES('1','1','1','1');
-- 查询数据
SELECt * FROM test.column_change_table where dt='20220520';
-- 添加列
ALTER TABLE test.column_change_table ADD COLUMNS(column_6 string comment '列6');
-- 查询数据
SELECt * FROM test.column_change_table where dt='20220520';
-- 修改列:重命名,并修改类型和注释说明
ALTER TABLE test.column_change_table CHANGE COLUMN column_5 column_7 string comment '更名列5';
-- 删除列:(伪删除,使用替换的方式屏蔽列,仅仅删除元数据,并未删除hdfs文件对应的列),还有可能不兼容
-- orc 格式的默认不支持删除
ALTER TABLE test.column_change_table REPLACE COLUMNS (
column_1 string COMMENT '列1',
column_2 string COMMENT '列2',
column_3 string COMMENT '列3',
column_4 string COMMENT '列4',
column_5 string COMMENT '列5'
);
-- 查看建表语句(表存储在hdfs的位置):伪删除列,删除元数据,不删除数据的情况下,文件大小应该是不变的
SHOW CREATE TABLE test.column_change_table;
-- 删除某一个分区(分区字段删除暂时未找到合适方法)
ALTER TABLE test.column_change_table DROP PARTITION(dt='20220520');
2. 扩展阅读
- hive插入数据的几种方式
- Hive修改表名,列名,列注释,表注释,增加列,调整列顺序,属性名等操作
- Hive添加列、修改列(调整位置)、删除列操作等
- hive sql 一次删除多个分区数据