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