我们有一个 ClickHouse
带的表格 CollapsingMergeTree
引擎。我们希望在从源导入数据时更新记录(可能很频繁)。最初,所有记录都以+1符号列插入。我们要做的是更新一个记录,我们插入一个要更新的记录,用-1符号表示相同的值,然后插入一个更新的记录,用+1符号表示相同的带相反符号的记录将被折叠 ClickHouse
在后台合并数据部分时。
问题是“这永远不会发生”
我知道一个事实 ClickHouse
将以异步方式合并数据,但数据已过期数月,并且没有执行任何合并 ClickHouse
.
我问 SELECT * FROM system.merges
以了解是否有任何合并正在进行。查询结果为0。同时更新 ClickHouse
最新版本。但是运气不好!
如果有人能指出问题所在,会通知你的帮助吗?我是否缺少任何服务器级设置?什么时候 ClickHouse
合并这些记录?
或者我应该采取的其他方法来更新 ClickHouse
数据?
1条答案
按热度按时间kg7wmglp1#
最终——可能永远不会。您不应该依赖于合并过程。它有自己复杂的平衡零件数的算法。合并并没有最终合并的目标,因为它效率不高。
optimize does/forces unnplaned merge,例如,您将从22个优化最终does/forces unnplaned merges中得到4个部分,用于所有部分,直到分区中只有一个部分final的唯一问题是它甚至将1个部分重写为新的1个部分。因为有时它需要在单个零件上折叠行。所以对于一些表,我们运行optimize table x partition final(by crond),用于包含多个部分的分区。
https://stackoverflow.com/a/60154073/11644308