【发布时间】:2020-06-09 11:38:32
【问题描述】:
我阅读了https://clickhouse.tech/docs/en/sql-reference/statements/misc/#misc_operations-rename 并知道所有表都在全局锁定下重命名。
我的重命名案例是
rename table t_real_table to t_archive, t_new_data to t_real_table
为了归档旧的t_real_table 并使新生成的表t_new_data 用作t_real_table。
我有时会在重命名期间发现一些查询 (select * from t_real_table) 失败 (Table t_real_table doesn't exist)。重命名似乎不是一个非常短暂的过程。我想知道重命名表时究竟会发生什么,以便找到避免此类失败的方法。
是不是把metadata/t_real_table.sql改成metadata/t_archive.sql,把data/default/t_real_table/的路径名改成data/default/t_archive/,然后把metadata/t_new_data.sql改成metadata/t_real_table.sql,把data/default/t_new_data/的路径名改成data/default/t_real_table/?
如果是这样,我认为重命名不会持续这么久。但是如何避免重命名过程中的失败呢? Atomic Engine靠谱吗?
【问题讨论】:
标签: rename clickhouse