Выбор ответа Senior SQL дата-инженера обновлено
Опоздавшие события и инкрементальный пересчёт
Вопрос
События приходят с опозданием до 3 суток. Ежедневная агрегация пересчитывает только вчерашний день. Что произойдёт и как исправить?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Опоздавшие события не попадут в агрегаты своих дней; пересчитывать окно последних 3-4 дней. Если считать по времени события, опоздавшее событие относится к своему дню, а этот день уже посчитан.
Варианты ответа
- Опоздавшие события не попадут в агрегаты своих дней; пересчитывать окно последних 3-4 днейправильный ответ
- Ничего страшного: опоздавшие события попадут во вчерашний день, и сумма за период сойдётся
- Нужно отбрасывать опоздавшие события на входе, чтобы не менять уже опубликованные цифры
- Нужно каждую ночь пересчитывать всю историю агрегатов, это единственный надёжный способ
Разбор
Если считать по времени события, опоздавшее событие относится к своему дню, а этот день уже посчитан. Окно пересчёта с запасом на максимальное опоздание исправляет это при умеренной цене. Относить опоздания к вчерашнему дню значит искажать метрику. Удалять данные нельзя. Полный пересчёт решает, но дорог на больших объёмах.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.