Clickhouse之集群操作
查看集群:
在任意一台机上,使用 /usr/bin/clickhouse-client --host localhost --port 9000 连接本地服务器 select * from `system`.clusters;
建库:
建库 create database <数据库名> on cluster <集群名>
在另一台服务器上使用SHOW DATABASES
查看当前数据库,可以发现数据库已经同步过来了
使用SHOW CREATE DATABASE <数据库名>
可以看到建库语句 (但这里不是实际的建库语句)
建表:
create table test2.test on cluster default(id UInt8, name String, date DateTime) ENGINE =ReplicatedMergeTree('/clickhouse/tables/{shard}/test2/test', '{replica}') partition by toYYYYMM(date) ORDER BY id;
建表后,同样会打印出所有受影响主机信息
注意:只有 DDL 语句需要申明集群,后续插入、查询等语句均不需要
插入数据:
INSERT INTO test.test_1s1r (1, 'bob', now())
修改数据:
ALTER TABLE test_1s1r UPDATE name = 'unknown' WHERE name = 'bob'
添加字段:
ALTER TABLE <数据库>.<表> ADD/MODIFY/DELETE COLUMN <字段> COMMENT <注释内容>
删除行:
ALTER TABLE <数据库名>.<表名> DELETE WHERE <筛选条件>
删除表:
删除表和创建表一样,必须使用集群的方法。不然,只会删除本机的表,而副本中的表依然存在,这样会造成数据分裂
DROP TABLE <数据库名>.<表名> ON CLUSTER <集群名>