美文网首页
hive中的partition

hive中的partition

作者: OakesYa | 来源:发表于2020-04-24 16:44 被阅读0次

需求背景

因项目中需要一张hive表存储多个数据来源的数据,为了区分不同来源的数据,所以增加了一个type字段,为了各自来源的数据互补干扰,所以增加了type的partition分区

什么是partition

hive其实是存储在hdfs的抽象,一个partition实际对应于hdfs的一个目录,所以各个partition在hdfs是独立操作互不干扰的。

如何使用partition

1 我们可以看下建表的语法:

CREATE [EXTERNAL] 
TABLE 
[IF NOT EXISTS] table_name 
[(col_name data_type [COMMENT col_comment], ...)] 
[COMMENT table_comment] 
[PARTITIONED BY (col_name data_type [COMMENT col_comment], ...)] [CLUSTERED BY (col_name, col_name, ...) 
[SORTED BY (col_name [ASC|DESC], ...)] INTO num_buckets BUCKETS] 
[ROW FORMAT row_format]
 [STORED AS file_format] 
[LOCATION hdfs_path]

我们可以看到可以通过partitioned by来增加分区,不过需要注意的是partitioned by后面的col_name也会成为一个字段,所以不用在前面的col_name重复定义

2 如何查看表的分区

 show partitions table_name;

上面命令会显示出表分区的具体内容

为什么使用partittion

1 使用下来partition最大的好处是可以互不干扰的操作自己的分区数据
2 查资料说partition可以缩小查询范围,加快数据的检索速度

相关文章

网友评论

      本文标题:hive中的partition

      本文链接:https://www.haomeiwen.com/subject/stlaihtx.html