表的高级操作
Hive分区表
创建分区表
表在存储时,可以进行分区操作,将数据按分区键的列值存储在表目录的子目录中,子目录名=“分区键=键值”。
比如创建了一张表psn,它有两个字段name、level,这里对level这列进行分区,那么level就是表的分区键。当前level字段中,存放的值有A、B、C。于是会在表的存放目录下创建level=A,level=B,level=C这3个子目录,即以“分区键=键值”的方式命名。之后,便将数据根据level值的不同,分别存放到对应的子目录中。
这样将数据切分到不同目录存储后,可以加快对分区键(这里是level)字段的查询和过滤速度。比如在SQL中,指定了过滤条件where leve=A,在使用level字段进行分区之后,便可以只对level=A目录下的数据进行扫描,避免全表扫描,从而减少处理时间。
而在企业中,通常会使用时间作为分区键,以便加快对某个时间数据查询的效率。
分区表创建语法规则为:
代码语言:javascript复制CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.]table_name
[(col_name data_type [COMMENT col_comment], ... [constraint_specif