в CH считается тяжелой (и понятно, почему). Но тяжелой она считается на каком объеме данных? Ведь если сделать таблицу из 10 строк 10 столбцов и UPDATE чего угодно - сделает моментально. А если миллион? миллиард? триллион?
Есть ли какие то расчеты, позволяющие оценить, когда UPDATE станет убийственным? Понятно, что много зависит от партиционирования и количества изменяемых столбцов/строк, но тем не менее?
Для простоты можно принять, что только 1 stand-alone сервер.
update для чего? я иногда заполняю поля задним числом, апдейчу больше триллиона строк, ну за сутки выполняется
Ну у меня есть таблица (150 млн записей, около 80 столбцов), в которой иногда надо поменять значения, скажем в 50 000 строк и в 5 столбцах.... Ну прям очень надо ) Поэтому и интересует, есть ли какие нибудь синтетические тесты для предварительного анализа расчета времени выполнения подобных запросов...
ну 50 млн строк это моментально выполнится, если поля не хранят строки по огромной длины, и сгенерить такую таблицу (вам для проверки не надо 80 столбцов, достаточно orderby полей и тех которые надо проапдейтить) и проверить можно на ноутбуке в докере с 2 гигами, я уверен даже fiddle это выдержит.
используйте движок ReplacingMergeTree. Там без update можно решить
Я так и сделал. В конечном итоге. Но можно вместо join использовать sum( union). Теоретически получим тоже самое
Нельзя. У меня по задаче нужно считать обязательно количество записей в таблице. Если делать replacing, то пока данные схлопываются, будут дубли и конечное количество будет неверным. А вечно FINAL пихать в запросы, мне кажется, не самый лучший вариант....
Спасибо, проверю обязательно!
А над replacing повесить argMaxState. Собственно, из похожей задачи у меня вопрос вылез
можно по другому. версионность завести (например date или version) select будете делать по max( version или date)
Само собой. А как ещё ReplacingMergeTree запустить
Тогда частые группировки будут в каждом запросе.. Мне кажется, это сильно напряжет и так не слишком серьезный сервер, особенно если запросов будет довольно много одномоментно...
Обсуждают сегодня