DETACH Dictionary dmp_log.ods_product;
由於同事錯誤了使用了命令,導致重新創建字典表不成功,錯誤的命令如下(當成表來操作了):
DETACH TABLE dmp_log.ods_product;
重新創建字典表報如下錯誤:
SQL 錯誤 [387]: ClickHouse exception, code: 387, host: 172.30.125.92, port: 8124; Code: 387, e.displayText() = DB::Exception: Dictionary dmp_log.ods_product already exists. (version 20.8.6.6 (official build))
由於把字典表當成表卸載了。然後再加載的時候,又報語法錯誤。
ATTACH TABLE dmp_log.ods_product;
解決的方法:
總體思路:既然當成表來DETACH了,那麽再當成表來ATTACH即可。
1、ClickHouse metadata的目錄
/data/clickhouse/metadata/dmp_log
找到誤操作的表信息ods_product。
2、由於ods_product是字典表,語法與建表語句不壹致。
所以需要將ods_product文件內容,修改為普通的建表語句,讓ClickHouse能加載進去。
3、重啟ClickHouse
3、執行刪表語句
drop table ods.ods_product
4、新建字典表
CREATE DICTIONARY dmp_log.ods_product...