我需要从一些分布式和本地表中选择数据,插入到另一个独立的本地表中。我像这样使用sql:INSERT into local_table SELECT FROM Distributed_table WHERE ... 。 SELECT 子句可以成功执行。但是在本地表节点执行的整个sql会导致错误:clickhouse异常代码:1002,host = 12.27.6.124,port = 8123;code = 60,Exception:从12.27.6.123接收:9000,异常:table default.local_able doest存在。本地表已在 12.27.6.124 上创建。
12.27.6.124是我的本地表节点,12.27.6.123和12.27.6.124是我的集群节点。
为什么集群节点12.27.6.123会涉及执行插入操作? 我该如何解决这个问题?
clickhouse服务器版本:22.8.5.29
可以通过将local_table更改为分布式表来解决该问题。但可能会导致大量的sql重写。
始终使用
db.table
子句或 db.table AS alias
INSERT INTO database.local_table SELECT FROM database.distributed_table WHERE ...
看起来您的
这意味着您使用不同的用户和安全上下文在启动器节点中执行查询,该用户用于从分布在具有不同默认数据库值的远程服务器上的基础表中执行选择