问题:
在TABIX中执行 删除语句的SQL
alter table test.user on cluster my_cluster delete where gender = '1' and age < '18'
执行之后返回 并不是OK,而是如下的内容
172.200.21.12 9000 3 0
172.200.21.11 9000 2 0
之后使用 select 语句查询发现数据还在 奇怪的是 使用 这个 SQL 在 TABIX 中查询并未返回任何记录
select * from system.mutations where is_done = 0
解决
执行删除语句返回的ip地址 正是 clickhouse 节点的地址,使用
clickhouse-client -h 172.200.21.12 --port 9000
链接到 clickhouse 逐个节点查询节点上本地表的数据。 定位到 某个节点上的数据还存在。 再次使用
select * from system.mutations where is_done = 0 order by create_time desc limit 1
查询到提交的更新操作并未成功执行,确定没有其他用户正在更新clickhouse数据的情况下, 使用
kill mutation where table = 'user' and is_done = '0'
结束掉因为错误被阻塞,及之后提交的所有未执行的冲突,继续执行删除数据SQL,数据成功删除。
|