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

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

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

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

10 ответов

17 просмотров

Почему у вас запросы с 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 и разных интересных схем сортировки и партиционирования таблицы, вместе с преобразованиями из одной таблицы в другую. Правильный путь где-то там. Но точно не в мутациях.

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта