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 ответов

12 просмотров

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

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

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

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

Anyone here suffers from unexplained aural migraines, who would be up for talking for a bit? Doesn't *have* to be aural, but I am not asking about headaches, I mean actual mi...
Martin Rys
55
Всем здравствуйте!) У меня такой вопрос. Есть два роута, роут1 и роут2. Они связаны с очередью some_queue. По задаче предполагается, что есть два паблиша. Паблиш1 отправляет...
Format
10
Вопрос по WIN32: Насколько я понимаю то все функции win32 привязаны к объектам операционной системы. Например консоль, файл, кисть, окна итд. Следовательно функции win32 упра...
Tommy Vercetti
6
Hello, can I install macOS and run flutter on a virtual machine? Is it possible to print for iphone?
Mazones
11
кто-то пользуется компонентами rx ? как их лучше ставить, через OPM? (lazarus)
Iluha Companets
15
подскажите пожалуйста, как мне освободить результат записанный в переменную result? в чем проблема подскажите если МОЖЕТЕ?
Михаил Helper
28
Дороу! У кого-нибудь есть в загашнике проверенная функция экранирования, аналог re.escape в Python? Из доки: » Escape all the characters in pattern except ASCII letters and n...
Daniil Smolyakov
9
В смысле более затратная? Общая стоимость владения лошадью меньше, чем автомобиля. В среднем.
Sergej R
10
есть тут кто-то , кто только начал изучать си? если проходите курс на степике или как-то сами изучаете, пишите, может, скооперируемся?..
Eule
25
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
Карта сайта