环境配置:
clickhouse 集群,
集群有三个主节点
集群有三个slave节点
建表语句:
CREATE TABLE IF NOT EXISTS schematest.test_lq ON CLUSTER clustername
( id UInt64, column1 String)
ENGINE = ReplicatedMergeTree('/clickhouse/tables/{uuid}/{shard}','{replica}')
ORDER BY id;
create table schematest.test_lq_all on cluster clustername
( id UInt64, column1 String)
engine = Distributed(clustername ,schematest, test_lq,hiveHash(id))
SETTINGS fsync_after_insert=1,fsync_directories=1;
insert into schematest.test_lq_all values(1,'xsssssss')(2,'xxxxxx')(3,'yyyxxx');
insert into schematest.test_lq_all values(4,'xsssssss')(5,'xxxxxx')(6,'yyyxxx');
insert into schematest.test_lq_all values(7,'xsssssss')(8,'xxxxxx')(9,'yyyxxx');
删除语句,删除物理表:
ALTER TABLE test_lq ON CLUSTER clustername DELETE WHERE id='dd'
在master1 插入数据后,在master1和master2 都能在test_lq_all 中查询到数据。但是在master2的test_lq 表中查看不到。这种现象我觉得是正常的。
然而在master2 删除数据,在master1 中查询不到数据了,这个是为什么,按照我的理解不会删除master1中的数据,但是实际情况缺删除了。