メインコンテンツまでスキップ
メインコンテンツまでスキップ

更新ミューテーション

更新ミューテーションは、テーブルデータを更新を通じて操作する ALTER クエリを指します。特に、ALTER TABLE UPDATE などのクエリがこのカテゴリに該当します。このようなクエリを実行すると、データパーツの新しいミューテatedバージョンが生成されます。つまり、これらのステートメントは、ミューテーションが行われる前に挿入されたすべてのデータに対して、全データパーツの書き換えを引き起こすことになり、大量の書き込みリクエストを伴うことになります。

参考

更新の際には、デフォルトの MergeTree テーブルエンジンの代わりに、ReplacingMergeTreeCollapsingMergeTree のような専門的なテーブルエンジンを使用することで、これらの大量の書き込みリクエストを回避できます。

ALTER TABLE ... UPDATE ステートメント

指定されたフィルタリング式に一致するデータを操作します。これは mutation として実装されています。

注記

ALTER TABLE プレフィックスは、この構文が SQL をサポートする他のシステムとは異なることを示しています。これは、OLTP データベースの類似のクエリとは異なり、頻繁に使用することを目的とした重い操作であることを示すためにあります。

filter_exprUInt8 型でなければなりません。このクエリは、filter_expr がゼロ以外の値を取る行の指定されたカラムの値を対応する式の値に更新します。値は CAST 演算子を使用してカラム型にキャストされます。主キーまたはパーティションキーの計算に使用されるカラムの更新はサポートされていません。

1 つのクエリには、カンマで区切られた複数のコマンドを含めることができます。

クエリ処理の同期性は、mutations_sync 設定によって定義されます。デフォルトでは非同期です。

関連情報