插入后,select一次从ReplicatedMergeTree引擎table计数(1),多次得到差异结果
After insert, select count(1) from ReplicatedMergeTree engine table at once, get difference result for many times
情况是:我将一些数据插入 ReplicatedMergeTree
引擎 table,然后立即执行此查询 select count(1) from table
,但得到了不同的结果。据我所知,这是由Replicated机制引起的,它会花费一些时间用于Replicated shard复制数据,所以如果查询路由到Replicated shard并且会响应不同的结果。
如果我想使用一次性插入的数据,如何避免这个问题?
要从分布式读取 table,您可以使用以下设置:
- insert_quorum 设置 INSERT 查询。例如,对于 3 个副本,您指定
insert_quorum = 3
,因此客户端将等待数据复制到所有 3 个副本。 https://clickhouse.com/docs/en/operations/settings/settings/#settings-insert_quorum
- select_sequential_consistency。 SELECT 查询的设置。 Select将包含用insert_quorum写入的数据。 https://clickhouse.com/docs/en/operations/settings/settings/#settings-select_sequential_consistency
情况是:我将一些数据插入 ReplicatedMergeTree
引擎 table,然后立即执行此查询 select count(1) from table
,但得到了不同的结果。据我所知,这是由Replicated机制引起的,它会花费一些时间用于Replicated shard复制数据,所以如果查询路由到Replicated shard并且会响应不同的结果。
如果我想使用一次性插入的数据,如何避免这个问题?
要从分布式读取 table,您可以使用以下设置:
- insert_quorum 设置 INSERT 查询。例如,对于 3 个副本,您指定
insert_quorum = 3
,因此客户端将等待数据复制到所有 3 个副本。 https://clickhouse.com/docs/en/operations/settings/settings/#settings-insert_quorum - select_sequential_consistency。 SELECT 查询的设置。 Select将包含用insert_quorum写入的数据。 https://clickhouse.com/docs/en/operations/settings/settings/#settings-select_sequential_consistency