當前位置:成語大全網 - 新華字典 - ClickHouse外部字典表異常排查

ClickHouse外部字典表異常排查

刪除字典表的時候,使用的語句應該是:

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...