我有4年的数据。就像
'2011
2012
2013
2014'
我必须根据一个月的数据进行查询。因此,我创建如下分区。
'ALTER TABLE table1_2010Jan ADD PARTITION(year='2010', month='01', day='01')
LOCATION 'path';
ALTER TABLE table1_2010Jan ADD PARTITION(year='2010', month='01', day='02')
LOCATION 'path';
ALTER TABLE table1_2010Jan ADD PARTITION(year='2010', month='01', day='03')
LOCATION 'path';'
我正在为每个月的每一天创建如上所述的单独分区。
我想知道我们是否可以编写一个脚本(任何语言)并运行一次来为每年的一个月的所有日子创建这些分区?或者有没有一种方法可以在Hive里做到这一点。
有什么建议吗。。
1条答案
按热度按时间lpwwtiir1#
对于外部表,hive不能这样做。您可以创建shell/perl脚本来执行相同的操作(使用循环)。
对于配置单元管理的表,可以使用msck repair命令轻松完成。
https://cwiki.apache.org/confluence/display/hive/languagemanual+ddl#languagemanualddl-recoverpartitions%28msckrepairtable%29
唯一需要确保加载数据的是正确的分区。