【发布时间】:2022-12-16 17:34:07
【问题描述】:
我使用的 ClickHouse 版本:22.11-alpine
我在我的项目中使用Null表引擎作为临时表,数据将从中发送到ReplicatedAggregatingMergeTree。
这个描述的测试用例表明问题:
CREATE TABLE default.data ON CLUSTER '{cluster}'
(
id Int8,
group_by String,
value Int8
)
ENGINE = Null;
CREATE TABLE default.data_agg ON CLUSTER '{cluster}'
(
group_by String,
value AggregateFunction(sum, Int8)
)
ENGINE = ReplicatedAggregatingMergeTree
ORDER BY group_by;
CREATE MATERIALIZED VIEW default.data_agg_mv ON CLUSTER '{cluster}'
TO default.data_agg AS
SELECT
group_by,
sumState(value) as value
FROM default.data
GROUP BY group_by;
CREATE TABLE default.data_agg_dis ON CLUSTER '{cluster}'
AS default.data_agg
ENGINE = Distributed('{cluster}', default, data_agg, rand());
所有这些模式都在集群 (ClickHouse Keeper) 上创建,具有 4 个节点、4 个分片和 2 个副本。
问题:
INSERT INTO default.data VALUES (1, 'group1', 1);
上面的第一次插入查询正确地增加了 data_agg_dis 中的值:
SELECT group_by, sumMerge(value) as value FROM default.data_agg_dis GROUP BY group_by;
Results:
group_by | value
group1 | 1
但是,当我尝试为 group_by: group1 重复提到的插入值时,value 达到了 value: 4。感觉就像所有分片接触所有其他聚合时被跳过。
但是,如果我将插入查询中的 group_by: group1 值从 1 更改为 2:
INSERT INTO default.data VALUES (1, 'group1', 2);
再次在 data_agg_dis 中,值递增 2、四次并停止。此行为仅在单节点 ClickHouse 服务器的集群上可重现,所有工作均按预期进行。
Does anybody aware of same issue? it is some limitation of ClickHouse cluster? or bug?
【问题讨论】:
标签: clickhouse