更新変異
Update mutations refers to ALTER クエリがテーブルデータを更新することを指します。特に、ALTER TABLE UPDATE のようなクエリが該当します。このようなクエリを実行すると、データパーツの新しい変異バージョンが生成されます。つまり、このようなステートメントは、ミューテーションの前に挿入されたすべてのデータのために、全データパーツの再書き込みをトリガーし、大量の書き込みリクエストを引き起こします。
更新については、デフォルトの MergeTree テーブルエンジンの代わりに、ReplacingMergeTree や CollapsingMergeTree のような専門のテーブルエンジンを使用することで、これらの大量の書き込みリクエストを回避できます。
ALTER TABLE ... UPDATE Statements
指定されたフィルタリング式に一致するデータを操作します。これはミューテーションとして実装されています。
ALTER TABLE プレフィックスにより、この構文はSQLをサポートする他の多くのシステムとは異なります。これは、OLTPデータベースにおける類似のクエリとは異なり、頻繁な使用を意図していない重い操作であることを示すために設計されています。
filter_exprはUInt8型でなければなりません。このクエリは、filter_exprが非ゼロの値を持つ行の指定されたカラムの値を、対応する式の値に更新します。値はCAST演算子を使用してカラム型にキャストされます。主キーまたはパーティションキーの計算に使用されるカラムの更新はサポートされていません。
1つのクエリには、カンマで区切られた複数のコマンドを含むことができます。
クエリ処理の同期性は、mutations_sync設定によって定義されます。デフォルトでは、非同期です。
関連情報
Related content
- Blog: ClickHouse における更新と削除の処理