为什么只获取本地数据而不是集群的所有数据?

Why get only local data instead of all data of the cluster?

我的 Clickhouse 集群(3 个节点)有 3 个分片 1 个副本。我在 node1 上使用 follow ddl 创建了一个 table:

CREATE TABLE partition_v3_cluster ON CLUSTER perftest_3shards_3replicas(
ID String,
URL String,
EventTime Date
) ENGINE = MergeTree()
PARTITION BY toYYYYMM(EventTime)
ORDER BY ID;

然后我对一个节点执行以下 sqls:

INSERT INTO partition_v3_cluster VALUES ('A0001','www.nauu.com', '2019-10-01');
INSERT INTO partition_v3_cluster VALUES ('A0002','www.nauu.com', '2019-10-02');
INSERT INTO partition_v3_cluster VALUES ('A0003','www.nauu.com', '2019-10-03');

分别查询所有3个节点时:

select * from partition_v3_cluster;

每个节点只获取在每个节点上执行之前的记录插入:
例如节点 1:

┌─ID────┬─URL──────────┬──EventTime─┐
│ A0001 │ www.nauu.com │ 2019-10-01 │
└───────┴──────────────┴────────────┘

不应该获取所有数据吗?

您需要创建 DISTRIBUTED 表。

https://kb.altinity.com/engines

https://www.youtube.com/watch?v=4DlQ6sVKQaA&t=17s