Перейти к основному содержимому
Перейти к основному содержимому

Мутации обновления

Мутации обновления относятся к запросам ALTER, которые манипулируют данными таблицы через обновления. Наиболее примечательны такие запросы, как ALTER TABLE UPDATE и т. д. Выполнение таких запросов приведет к созданию новых измененных версий частей данных. Это означает, что такие операторы вызовут переписывание целых частей данных для всех данных, которые были вставлены до мутации, что приведет к большому количеству запросов на запись.

к сведению

Для обновлений вы можете избежать больших объемов запросов на запись, используя специализированные движки таблиц, такие как ReplacingMergeTree или CollapsingMergeTree вместо стандартного движка таблиц MergeTree.

ALTER TABLE ... UPDATE Заявления

ALTER TABLE [db.]table [ON CLUSTER cluster] UPDATE column1 = expr1 [, ...] [IN PARTITION partition_id] WHERE filter_expr

Управляет данными, соответствующими заданному фильтрующему выражению. Реализовано как мутация.

примечание

Префикс ALTER TABLE делает этот синтаксис отличным от большинства других систем, поддерживающих SQL. Это предназначено для обозначения того, что, в отличие от аналогичных запросов в OLTP базах данных, это тяжелая операция, не предназначенная для частого использования.

filter_expr должен быть типа UInt8. Этот запрос обновляет значения указанных колонок до значений соответствующих выражений в строках, для которых filter_expr принимает ненулевое значение. Значения преобразуются к типу колонки с помощью оператора CAST. Обновление колонок, которые используются в расчете первичного или ключа партиционирования, не поддерживается.

Один запрос может содержать несколько команд, разделенных запятыми.

Синхронность обработки запроса определяется настройкой mutations_sync. По умолчанию она асинхронная.

Смотрите также