根据官方文档和版本变更记录,ClickHouse在25.8版本中引入了基于补丁部分(Patch Parts) 的轻量级更新机制,但该功能依赖于两个系统列的物化:
ALTER TABLE raw_payment_logs_2025
MODIFY SETTING
enable_block_number_column = 1, -- 启用块编号列
enable_block_offset_column = 1; -- 启用块内偏移列
SET allow_experimental_lightweight_update = 1;
UPDATE raw_payment_logs_2025
SET column1 = value1, column2 = value2
WHERE condition;
| 参数 | 作用 | 注意事项 |
|---|---|---|
| enable_block_number_column | 存储数据块编号,用于定位更新行 | 启用后无法禁用,会增加存储开销 |
| enable_block_offset_column | 存储块内偏移量,精确标识行位置 | 与上一参数必须同时启用 |
| allow_experimental_lightweight_update | 允许使用实验性轻量级更新功能 | 需在每次会话中设置或写入配置文件 |
轻量级更新类似于Git的差异补丁(diff)机制:
这种方式显著降低了小批量更新的I/O开销,但会增加查询时的计算开销(需实时应用补丁)。
本文为Larwas原创文章,转载无需和我联系,但请注明来自larwas博客 https://larwas.com
最新评论