我每天都会将数据输入HDFS。 从数据到HDFS我生成按日期分区的Hive外部表。 我的问题如下,我应该在每次数据摄取后运行MSCK REPAIR TABLE tablename,在这种情况下我必须每天运行命令。 或者在创建表格时只运行一次就足够了。 非常感谢您的回答
祝你好运
答案 0 :(得分:2)
只有在更改外部表的结构或分区时才会运行MSCK REPAIR TABLE
。此命令更新表的元数据。
通常会发生的一个例子,例如
您使用字段dt
表示分区表的日期。
dt=2018-06-12
的数据,然后您应该运行MSCK REPAIR TABLE
来更新元数据,以告知配置单元了解新分区dt=2018-06-12
。dt=2018-06-13
的数据,然后您应该运行MSCK REPAIR TABLE
来更新元数据,以告知配置单元知道新的分区dt=2018-06-13
。