clickhouse - 在开始插入之前我应该等待 ClickHouse 中的异步删除吗?
问题描述
我需要在 ClickHouse 中重新加载最后一天的数据。我的想法是使用 ALTER TABLE DELETE 语句删除最后一天的行,然后插入更新的行。
我已经在文档中找到:“突变也使用 INSERT INTO 查询进行部分排序:在提交突变之前插入到表中的数据将被突变,之后插入的数据不会被突变。” 但是我不明白这句话。那么我应该在开始插入之前等待异步删除过程结束,还是可以立即开始插入?知道复制和不复制两种情况的答案很有趣。
解决方案
你不需要等待。
当提交变异时,CH 服务器创建并保存应该变异的部分列表。您可以在system.mutations
block_numbers.partition_id
列中看到此列表。之后Alter
将控件返回给客户端。
新插件(零件)不在此列表中,因为它们尚未创建。
突变本身稍后开始,异步并处理存储列表中的部分。
推荐阅读
- python - 我在 python 中使用了 os.system("start audio.mp3") 并且它有效。但它不会自行关闭,音频会在其他屏幕上打开
- postgresql - Postgres 使用 if 语句或 case 更新(不知道如何调用它)
- laravel - 是否可以通过子表更新父表
- mysql - Android开发:应用程序崩溃只要调用游标在我的表中搜索一行
- python - 在使用 rabbitmq 服务器在 django 频道层中添加一个组时?rabbitmq服务器连接不上
- javascript - 加载页面以禁用复选框(使用jquery)后,如何使javascript文件在mvc中工作?
- portforwarding - 为什么端口转发在华为路由器中不起作用
- objective-c - NSURLSession dataTaskWithRequest 返回 nil 数据
- c - 为什么 strlen() 函数给出错误的值
- c# - 尝试为用户“chuacw”查找角色时出错。可能的原因是无效的客户端 cookie 或用户重命名