用途:面向 ClickHouse 集群的运维管理,覆盖分布式表、集群级 DDL、节点生命周期、重分片、负载均衡与 Keeper 迁移等主题。
主要能力:分布式表使用 CREATE TABLE dist ENGINE = Distributed(cluster, db, local_table, sharding_key);分片键可用 rand() 均匀分布或 cityHash64(user_id) 保持用户亲和;读并行查询所有分片,写路由到对应分片或本地写入。ON CLUSTER DDL 可将 schema 变更传播到所有副本,如 ALTER TABLE t ON CLUSTER '{cluster}' ADD COLUMN col Type,或用 CREATE TABLE ... ON CLUSTER 克隆模板表;distributed_ddl_output_mode 可取 throw、null、none、active,状态可查 system.distributed_ddl_queue。负载均衡与读路由涉及 load_balancing(random、in_order、first_or_random、nearest_hostname)、max_replica_delay_for_distributed_queries 跳过滞后副本、fallback_to_stale_replicas_for_distributed_queries=1 在全部延迟时使用陈旧副本。
使用方式:新增节点需安装 ClickHouse、配置 Keeper/ZooKeeper 连接、在所有节点更新 remote_servers 集群配置、在新节点创建本地表;ReplicatedMergeTree 自动同步数据,非复制表需复制或重新插入。移除节点需停止写入、等待复制队列排空、对复制表执行 SYSTEM DROP REPLICA、从集群配置移除并重启其余节点。重分片无原生在线方案,需按新分片方案新建分布式表,用 INSERT INTO new_dist SELECT * FROM old_dist 或 clickhouse-copier 迁移。集群恢复可用 SYSTEM RESTART REPLICA、SYSTEM SYNC REPLICA、SYSTEM FETCH PARTS 的 ON CLUSTER 形式。监控依赖 system.clusters、system.distributed_ddl_queue、system.replicas,跨分片查询用 Distributed 表或 remote() 函数。Keeper 迁移需并行部署 ClickHouse Keeper、用 clickhouse-keeper-converter 或 zk-dump.sh 快照数据、配置转换后的快照、更新 zookeeper 配置并逐节点重启,验证复制恢复后再移除 ZooKeeper。
限制:资料未提供具体版本要求、性能数据、收费信息及完整操作步骤,实际执行前需结合官方文档验证。