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

Добрый день. Есть вопрос по materialized view. 1. Есть базовая

таблица stat_event, куда довольно нагруженно пишутся события (~20 млн/день).
2. Довольно часто требуется анализ этих событий за большой период в разрезе сессий.
3. Для сбора информации по сессии требуется группировка некоторого количества строк, в том числе есть события, по которым требуется не min/max/count, а конкретные значения (access_token)
3. Написанный запрос выбирает корректные данные, но упирается в память на больших объёмах
4. Для анализа сессий было создано MV с группировкой сессионных данных на основе того же запроса.
5. MV отображает корректные данные при вставке в тестовую таблицу значительного количества строк при помощи INSERT SELECT из "боевой" таблицы в консоли (TCP-соединение).
6. MV отображало некорректные данные при вставке в тестовую таблицу значительного количества строк при помощи INSERT SELECT из "боевой" таблицы в IDE (http соединение). После обновления сервера воспроизвести не получается.
7. Переписали боевое использование под TCP-соединение.
8. В настоящий момент MV всё равно отображает некорректные данные при реальном использовании:
- не все события учитываются в MV (видно по значению поля event_count)
- периодически появляется несколько строк с одним PK и всё равно суммарно меньшим, чем должно быть значением event_count.

Подозреваю, что проблема не в CH, а просто я создаю MV с неправильными параметрами или, возможно, неправильно понимаю что-то ещё. Что поправить, чтобы избежать этой ошибки? Ссылки приветствуются.
Спасибо!

5 ответов

35 просмотров

MV не работает с данными из таблицы. Указанный вами запрос получает только один блок данных, который вставляется в таблицу прямо сейчас. Вам нужно пройтись по архиву чата и найти бесчисленные ссылки на статью Денни и видео от Миловидова про работу MV.

Sergey-Svobodsky Автор вопроса
Boris
MV не работает с данными из таблицы. Указанный вам...

Миловидова смотрел, но видимо, не всё, буду искать, спасибо. А Дэнни - это Denis Zhuravlev?

Sergey-Svobodsky Автор вопроса
Boris
https://t.me/clickhouse_ru/251135

Да, ее и нашёл, еще раз спасибо, буду разбираться...

Sergey-Svobodsky Автор вопроса
Boris
https://t.me/clickhouse_ru/251135

Ещё раз спасибо! Очень помогло понять, в какую сторону думать и что искать. До нужного "прямща" уровня разобрался, лишний раз убедился, насколько интересный продукт!

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
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
Карта сайта