更新 Mutations
更新 mutations 指的是 ALTER
查询,这些查询通过更新操作来操纵表数据。最值得注意的是,它们是诸如 ALTER TABLE UPDATE
等查询。执行此类查询将生成数据部件的新 mutated 版本。这意味着此类语句将触发对 mutation 之前插入的所有数据的数据部件的重写,从而转化为大量的写入请求。
信息
对于更新,您可以通过使用专门的表引擎(如 ReplacingMergeTree 或 CollapsingMergeTree)而不是默认的 MergeTree 表引擎来避免这些大量的写入请求。
ALTER TABLE ... UPDATE 语句
ALTER TABLE [db.]table [ON CLUSTER cluster] UPDATE column1 = expr1 [, ...] [IN PARTITION partition_id] WHERE filter_expr
操作匹配指定过滤表达式的数据。实现为 mutation。
注意
ALTER TABLE
前缀使此语法与大多数其他支持 SQL 的系统不同。它旨在表明,与 OLTP 数据库中的类似查询不同,这是一个不适合频繁使用的繁重操作。
filter_expr
必须是 UInt8
类型。此查询将指定列的值更新为 filter_expr
为非零值的行中相应表达式的值。值使用 CAST
运算符强制转换为列类型。不支持更新用于计算主键或分区键的列。
一个查询可以包含多个以逗号分隔的命令。
查询处理的同步性由 mutations_sync 设置定义。默认情况下,它是异步的。
另请参阅