我想使用下面的代码更新分区。
msck repair table_name
(我不能使用其他选项,例如刷新语句)
但我不知道更新分区的最佳方法。
1)我每分钟运行一次该代码。
2)我使用 show 命令选择分区,然后如果分区不存在,则运行该代码。
show partitions table_name
哪个是更新分区的最佳方法(其他选项可以),所以搜索数据没有限制?
你能给我一个建议吗?
我想使用下面的代码更新分区。
msck repair table_name
(我不能使用其他选项,例如刷新语句)
但我不知道更新分区的最佳方法。
1)我每分钟运行一次该代码。
2)我使用 show 命令选择分区,然后如果分区不存在,则运行该代码。
show partitions table_name
哪个是更新分区的最佳方法(其他选项可以),所以搜索数据没有限制?
你能给我一个建议吗?
命令msck repair table_name
是昂贵的。您可以使用命令ADD PARTITION
。
例如
ALTER TABLE tblName ADD PARTITION (dt='2008-08-08', country='us') location '/path/to/us/part080808'
如果您不想检查分区是否存在,只需使用IF NOT EXISTS
. 如果不存在,它将创建分区。
ALTER TABLE tblName ADD IF NOT EXISTS PARTITION (dt='2008-08-08', country='us') location '/path/to/us/part080808'
另一种选择也是
ALTER TABLE tblName UPDATE PARTITIONS;