184 похожих чатов

А по поводу FINAL'а. Я провел тесты на своих данных

(600 миллионов строк) и пришел к выводу что ни FINAL ни argMax ни другие варианты не дают адекватную скорость, ожидание по 4-8 секунды каждого запроса. На меньших объемах (<1кк строк) FINAL реально летает, а вот ближе к полу миллиарду все становится грустно.

Правильно ли я понимаю что это нормально, что с 600кк строк ни длинна order by ни настройки кх не помогут и надо менять бизнес логику?

10 ответов

8 просмотров

Почему у вас запросы с final работают против 600млн? Так и задумано?

Stranger- Автор вопроса
Denny [Altinity]
Почему у вас запросы с final работают против 600мл...

На 1кк строках FINAL практически не влияет на скорость. На 600кк строках - очень влияет

Stranger
На 1кк строках FINAL практически не влияет на скор...

Прям вот же: https://clickhouse.com/docs/ru/sql-reference/statements/select/from#select-from-final

Обычно делают более интеллектуальное что-нибудь. Типа дневные партии. По ночам принудительно финализируют optimize. Запросы против старых данных гоняются без final. Против свежих сегодняшних с final. Но серьезные приложения типа метрики конечно не используют final для таблиц с ивентами. Все подобное делается в etl.

Stranger- Автор вопроса

Благодарю 🙏

Stranger
Благодарю 🙏

Где то был доклад как в метрики делали дедубликацию на YDB :)

Stranger- Автор вопроса
Denny [Altinity]
Обычно делают более интеллектуальное что-нибудь. Т...

а с обновлением данных? Похоже что ждать асинхронные мутации это лучшее решение на текущий момент, если FINAL отметаем, и argMax и тому подобные тоже

Нельзя делать UPDATE для одной строки

Stranger- Автор вопроса
Константин
Нельзя делать UPDATE для одной строки

А ведь для N строк UPDATE нельзя сделать? Допустим мне надо поменять значения колонок в 10-20 колонках за раз... попробую посмотреть в сторону CollapsingMT, если не поможет похоже надо будет смотреть в сторону DELETE+INSERT

Stranger
А ведь для N строк UPDATE нельзя сделать? Допустим...

Можно, если предварительно запихнуть данные в словарь в памяти. Однако в ETL не нужно делать никаких мутаций. Только руками. Смотрите в сторону CollapsingMT и разных интересных схем сортировки и партиционирования таблицы, вместе с преобразованиями из одной таблицы в другую. Правильный путь где-то там. Но точно не в мутациях.

Похожие вопросы

Обсуждают сегодня

Кстати, а я вот тут подумал. Допустим, у нас имеется цикл который выполняет огромное количество итераций, но мы хотим, чтобы какие-то действия исполнилось только один раз. В Я...
The Bird of Hermes
23
Доброй ночи. Вопрос знатокам. Имеется некая таблица, результат которой выведен в DBGrid на форме. И есть форма, с помощью которой можно как добавить запись, так и отредактиров...
Евгений
28
а всё почему? потому что ассемблер в отличии от яву порождает множество пагубных привычек, среди которых например можно отметить использование глобальных переменных для всего ...
Mixail Frolov
35
анрей С какой целью зашёл?
КТ315
42
Всем привет 👋 Подскажите пожалуйста, а чего тут не хватает permission или образ битый? Running with gitlab-runner 17.0.0 (44feccdf) on gitlab-runner-c58775949-d7znz YxYz2zp...
Max
2
я часов 15 назад начал пытаться написать хоть что-то напоминающее ос и у меня есть проблема, которую я пытаюсь решить последние часов 5: есть крч 2 исходника с минимальным код...
Al1to
17
@not_fajox С какой целью зашёл?
КТ315
9
Короче получается только кнопки не поменять А кнопки вроде тоже слетают при редактировании не?
inc.
10
Кто нибудь из участников чата пишет на ассемблере под GNU/Linux?
Spiker01
24
коллеги, добрый вечер! А никто не знает как модальная форма может себя закрыть? Ну допустим модальная форма определила, что смысла ей работать нет и хочет вернуть modalResult...
Михаил
83
Карта сайта