hive外部分区表?
0
刚开始接触hive,对其使用有个疑问:
我是想使用外部分区表,那么问题来了
如果是先建立分区表,再按规则放文件,那全部都是静态分区
如果hdfs上已经有了很多文件,先建立为未区外部表t_org指向文件,
再用insert overwrite table t_par... partition (c1) select ... from t_org,
这样倒是动态分区了,但需要两倍的空间(t_org、t_par分别对应的文件),
通常用哪种方式好呢?或是我理解的不对,有更好的方式呢?
我是想使用外部分区表,那么问题来了
如果是先建立分区表,再按规则放文件,那全部都是静态分区
如果hdfs上已经有了很多文件,先建立为未区外部表t_org指向文件,
再用insert overwrite table t_par... partition (c1) select ... from t_org,
这样倒是动态分区了,但需要两倍的空间(t_org、t_par分别对应的文件),
通常用哪种方式好呢?或是我理解的不对,有更好的方式呢?
没有找到相关结果
重要提示:提问者不能发表回复,可以通过评论与回答者沟通,沟通后可以通过编辑功能完善问题描述,以便后续其他人能够更容易理解问题.
1 个回复
Bob - 同程旅游大数据+BI 架构师 2015-10-28 回答
赞同来自: 梁勇 、my-csir
create table table_name (
id int,
dtDontQuery string,
name string
)
partitioned by (year int,month int,day int)
--动态新增分区
ALTER TABLE table_name ADD IF NOT EXISTS PARTITION (year=2015,month=10,day=20) LOCATION '/data/table_name/2015/10/20'
--动态删除分区
ALTER TABLE table_name DROP IF EXISTS PARTITION (year=2015,month=10,day=20);
在实际生产环节中,不建议直接删除。我们采用的做法是disable 分区。