HIVE基础操作
2023-03-06 21:02:06 14 举报
AI智能生成
hive建表基础语句
作者其他创作
大纲/内容
hive表创建
CREATE [EXTERNAL] TABLE [IF NOT EXISTS] table_name <br> [(col_name data_type [COMMENT col_comment], ...)] <br> [COMMENT table_comment] <br> [PARTITIONED BY(col_name data_type [COMMENT col_comment], ...)]<br> [CLUSTERED BY (col_name, col_name, ...)<br> [SORTED BY(col_name [ASC|DESC], ...)] INTO num_buckets BUCKETS]<br> [ROW FORMAT row_format] <br> [STORED AS file_format]<br> [LOCATION hdfs_path] <br>
[COMMENT table_comment] :表的注释<br>
[PARTITIONED BY(col_name data_type [COMMENT col_comment], ...)]:创建分区表关键字,后面的字段可以是一个或多个。<br>
[CLUSTERED BY (col_name, col_name, ...) :创建分桶关键字。分桶字段可以是一个或多个。(分区字段不可以出现在建表字段中)<br>
[SORTED BY(col_name [ASC|DESC], ...)] INTO num_buckets BUCKETS] :指定桶中排序规则、分桶个数。<br>
[ROW FORMAT row_format] :指定分隔符<br>
列分隔符: fields terminated by ','
行分隔符:lines terminated by '\n' (一般不需指定)
元素分隔符: items terminated by '\t'
[STORED AS file_format]:表中的数据要以哪种文件格式来存储,默认为TEXTFILE<br>
[LOCATION hdfs_path]:指定hive当前所建表的数据在hdfs上的存储路径
CTS <br>将另一个表中查询的数据保存到新建表中<br>create table tname as select .... from ....
like 复制表,只复制表结构,不复制表中的数据<br>create table tname like old_name;
查看
查看表列表
show tables;<br>show tables in db;<br>show table like '*';
查看建表语句
show create talbe tname;
查看表详细信息
desc [extended/formatted]tname;
查看表分区信息
show partitions tname;
修改
修改表名称
alter table tname rename to new_name
修改表字段
添加列
alter table tname add columns (col_name,col_type);
修改列
alter table tname change col_name new_col_name col_type;
修改分区
删除分区
alter table tname drop partition(p='aa)
添加分区
alter table tname add partition(p='aa') partition(p='bb) ... [location 'usr/hive/ptn']
删除
清空表
truncate table tname;
删除表
drop table tname[cascade]
视图
创建视图
create view view_name as select ....;
查看视图
show tables; desc view_name;
删除视图
drop view view_name;
文件存储格式
(1)TEXTFILE<br>
默认格式;<br>存储方式为行存储;<br>磁盘开销大 数据解析开销大;<br>使用这种方式,hive不会对数据进行切分,从而无法对数据进行并行操作。
(2)SEQUENCEFILE<br>
二进制文件,以<key,value>的形式序列化到文件中;<br>存储方式:行存储;<br>可分割 压缩;<br>一般选择block压缩;<br>优势是文件和Hadoop api中的mapfile是相互兼容的
(3)RCFILE<br>
存储方式:数据按行分块,每块按照列存储;<br>压缩快 快速列存取;<br>读记录尽量涉及到的block最少;<br>读取需要的列只需要读取每个row group 的头部定义;<br>读取全量数据的操作 性能可能比sequencefile没有明显的优势。
(4)ORCFILE(0.11以后出现)<br>
存储方式:数据按行分块,每块按照列存储;<br>压缩快 快速列存取;<br>效率比rcfile高,是rcfile的改良版本。
(5)PARQUET
类似于orc,相对于orc文件格式,hadoop生态系统中大部分工程都支持parquet文件。<br>
0 条评论
下一页