使用一个脚本创建多个月的配置单元分区

时间:2014-05-20 17:36:31

标签: hadoop hive hiveql hdinsight

我有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';'

我正在为每个月的每一天创建像上面这样的单独分区。

我想知道我们是否可以编写一个脚本(任何语言),一次运行它来为每年的一个月的所有日子创建这些分区?或者有没有办法在蜂巢本身做到这一点。

请提出任何建议..

1 个答案:

答案 0 :(得分:1)

对于外部表,配置单元不能这样做。您可以创建shell / perl脚本来执行相同的操作(使用循环)。

对于hive托管表,您可以使用MSCK REPAIR命令轻松完成。

https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL#LanguageManualDDL-RecoverPartitions%28MSCKREPAIRTABLE%29

只有确保加载数据才能正确分区。