微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

向 Clickhouse 集群添加新节点的正确方法是什么?

如何解决向 Clickhouse 集群添加新节点的正确方法是什么?

目前我们运行的 CH 版本为 20.4.8.99。 我们有 3 个节点填充了 ReplicatedReplacingMergeTree 表。

添加额外节点的正确步骤是什么?互联网上充斥着关于设置集群的信息,但没有太多关于扩展它的信息(也未能在文档中找到任何信息)。

我曾尝试从现有节点简单地使用 DDL 创建新表,但只遇到了一些错误。主要是关于具有表的现有数据目录的节点(就像表在某个时候被分离一样)。

ATTACH 也会导致语法警告:

ATTACH TABLE table FROM 'path' (columns types) engine = ReplicatedReplacingMergeTree(...)

结果:

Syntax error: Failed at position 34 ... Expected one of: storage deFinition,ENGINE (version 20.4.8.99 (official build))

解决方法

您应该在每个新节点上执行相同的 CREATE TABLE。 CREATE TABLE -- 创建一个新的副本/分片。

您可以从现有节点获取 ATTACH TABLE 并将 ATTACH 替换为 CREATE 并执行 CREATE TABLE 命令。

有一个新的 DATABASE 引擎 -- Replicated 可以缓解这种情况。使用 ReplicatedDatabase,您只需将新节点添加到集群即可。而 ReplicatedDatabase 将自动创建表。 Altinity Operator(如果您使用 K8s)也有同样的作用。

20.4 -- 不再支持。尝试至少升级到 20.8(虽然它也差不多 EOL)。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。