Hive动态分区表问题与更改分区

时间:2011-09-30 11:49:06

标签: hive alter-table database-partitioning

我有动态分区“广告系列”和静态分区年份和月份的表格(这意味着我在插入/创建分区时给予了价值)。

'ABC'分区(年='2011',月='08',广告系列)

仅支持动态分区,后面跟静态分区名称为year和month。但我的用例正好相反

我想要这样的东西 - >   'ABC'分区(广告系列,年='2011',月='08')

这样我就能看到每年和每月的广告系列结果。

任何机会,或任何其他选择,我可以做到这一点?这样的事情??

ALTER TABLE ABC PARTITION(y ='2011',m ='08',广告系列)RENAME / ALTER PARTITIONs(广告系列,y ='2011',m ='08');

2 个答案:

答案 0 :(得分:2)

分区中未将分区定义为静态或动态;只是INSERT / LOAD查询将分区定义为静态或动态。您可以使用SET hive.exec.dynamic.partition=nonstrict运行使用全动态分区的插入。

请参阅:https://cwiki.apache.org/confluence/display/Hive/Tutorial

答案 1 :(得分:1)

如果您将分区设置为strict模式,则可以执行

SET hive.exec.dynamic.partition=strict

但如果设置为非严格模式并动态执行,则

SET hive.exec.dynamic.partition=nonstrict

我们无法在动态分区上执行ALTER