могут быть. Движок CollapsingMergeTree, первичный ключ - (date, hash), поля для обновления (value1, value2).
Предыдущие состояния не хранятся где либо кроме CH и есть необходимость обновлять сразу пачку записей по одному условию.
Эмпирически пришел к выводу, что пример вставки через INSERT INTO SELECT с изменниями полей через повторой SELECT + UNION ALL и правильной сортировкой данных(по первичному ключу и sign) работает как и ожидается. Кто нибудь соершал массовые обновления таким образом, были ли проблемы? Спасибо
INSERT INTO events (date, hash, value1, value2, sign)
SELECT date, hash, value1, value2, sign FROM (
SELECT date, hash , value1, value2, -1 as sign FROM events FINAL WHERE date=today()-1
UNION ALL
SELECT date, hash, 'newValue1' as value1, 'newValue2' as value2, 1 as sign FROM events FINAL WHERE date=today()-1
) ORDER date, hash , sign
А не пробовали воспользоваться update?
Обсуждают сегодня