美文网首页
ClickHouse DELETE/UPDATE mutatio

ClickHouse DELETE/UPDATE mutatio

作者: 白奕新 | 来源:发表于2019-12-10 22:17 被阅读0次
1、background

相信大家在看过ClickHouse介绍的时候都看过这么一句话『ClickHouse不支持or支持部分的UPDATE/DELETE操作』,那么究竟是怎么回事呢?Let's go

2、

Syntax official document

ClickHouse在2018-06-28的v1.1.54388支持了"DELETE"操作

ALTER TABLE [db.]table DELETE WHERE filter_expr

在2018-09-13的v18.12.14支持了"UPDATE"操作

ALTER TABLE [db.]table UPDATE column1 = expr1 [, ...] WHERE filter_expr

所以说ClickHouse现在已经支持了U/D的操作,那么为什么会说『支持部分』呢?
ClickHouse的U/D操作,只支持条件(范围)删除。所以,像MySQL中直接删除某一条数据的这种操作ClickHouse是没有办法支持的(当然你也可以把每条数据都添加唯一的ID列,按照ID来删除也是可以的)

3、How D/U operation works?

话不多说,直接贴图
https://github.com/ClickHouse/ClickHouse/issues/8017

mutation.png

简单来说,ClickHouse接收到mutation请求后,background线程就开始执行操作:把旧的数据的bin文件检索出来,再根据检索条件过滤/修改旧文件,再用新文件replace旧文件重新写入磁盘。所以可见mutations操作是一项很吃性能的操作,而且不保证什么时候能够完成。

相关文章

网友评论

      本文标题:ClickHouse DELETE/UPDATE mutatio

      本文链接:https://www.haomeiwen.com/subject/lurngctx.html