Выбор ответа Junior dbt спрашивают часто обновлено

Выбор материализации

Вопрос

Модель факта на 2 млрд строк, ежедневно добавляются 5 млн новых строк, иногда меняются строки последних дней. Какая материализация подходит?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: incremental с uniquekey и окном пересчёта последних дней. Инкрементальная модель обрабатывает только новые и изменённые строки, а uniquekey позволяет обновить изменённые.

Варианты ответа

  1. view: данные свежие, а хранилище само кеширует результат
  2. incremental с unique_key и окном пересчёта последних днейправильный ответ
  3. table: пересоздавать все 2 млрд строк каждый день, зато просто
  4. ephemeral: модель не хранится в базе и не занимает места

Разбор

Инкрементальная модель обрабатывает только новые и изменённые строки, а unique_key позволяет обновить изменённые. View пересчитывала бы 2 млрд строк при каждом запросе дашборда. Table работает, но пересоздаёт всё ежедневно, это долго и дорого. Ephemeral встраивается как CTE и для тяжёлого факта не годится.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.