Hive MSCK修复配置单元外部表
我每天都在HDFS中接收数据。 从数据到HDFS,我生成按日期分区的配置单元外部表。 我的问题如下:我是否应该在每次数据摄取后运行MSCK REPAIR TABLE tablename,在这种情况下,我必须每天运行该命令。 或者在创建表时只运行一次就足够了。 非常感谢你的回答Hive MSCK修复配置单元外部表,hive,Hive,我每天都在HDFS中接收数据。 从数据到HDFS,我生成按日期分区的配置单元外部表。 我的问题如下:我是否应该在每次数据摄取后运行MSCK REPAIR TABLE tablename,在这种情况下,我必须每天运行该命令。 或者在创建表时只运行一次就足够了。 非常感谢你的回答 致以最诚挚的问候当外部表的结构或分区更改时,您只运行MSCK修复表。此命令更新表的元数据 一个经常发生的例子,例如 您可以使用表示日期的字段dt,对表进行分区 昨天,您插入了一些数据,这些数据是dt=2018-06-12
致以最诚挚的问候当外部表的结构或分区更改时,您只运行
MSCK修复表
。此命令更新表的元数据
一个经常发生的例子,例如
您可以使用表示日期的字段dt
,对表进行分区
- 昨天,您插入了一些数据,这些数据是
,然后您应该运行dt=2018-06-12
来更新元数据,告诉hive注意一个新分区MSCK REPAIR TABLE
dt=2018-06-12
- 今天,您插入了一些数据,这些数据是
,然后您应该运行dt=2018-06-13
,以更新元数据,告诉hive注意一个新分区MSCK REPAIR TABLE
dt=2018-06-13
day
字段对表进行分区,您是否在语句中添加了PARTITIONED BY
?是的,我确实在创建表的hql文件中提到了PARTITIONED BY date,不,如果要在创建时只运行一次,我会犹豫在这个文件末尾的ton pout MSCK REPAIR TABLE,或者将它放在第二个hql文件中,因为它将在每天添加一个新分区后执行。只要有新分区,就应该运行它。i、 e.本案中的新日期。