Как эффективно реализовать отчёт со средним значением за период, если в таблицу ежедневно поступает около миллиарда записей, а всего записей сотни миллиардов?

Для таких объёмов среднее обычно считают по предварительным агрегатам: храните сумму и количество по временным корзинам и нужным измерениям. Итоговое среднее — общая сумма, делённая на общее количество.

Короткий ответ

Что ответить на собеседовании

Для таких объёмов среднее обычно считают по предварительным агрегатам: храните сумму и количество по временным корзинам и нужным измерениям. Итоговое среднее — общая сумма, делённая на общее количество.

Подробный разбор

Ответ с пояснениями

Для таких объёмов среднее обычно считают по предварительным агрегатам: храните сумму и количество по временным корзинам и нужным измерениям. Итоговое среднее — общая сумма, делённая на общее количество.

Нельзя просто усреднять средние корзин с разным числом событий. Для границ произвольного периода можно объединять полные агрегированные интервалы с сырыми пограничными данными.

Нужны правила поздних событий, повторов, часовых поясов, retention и обновления агрегатов. Партиции и колоночное хранение помогают чтению, но схему выбирают по запросам; один индекс не делает дешёвым полный обход сотен миллиардов строк.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее