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