Вступить в клуб →
лёгкаявопросСлои DWH и моделирование витрин

Что нужно от источника, чтобы уйти от полной перезагрузки таблицы

Таблица заказов в источнике — около 1.5 млрд строк. Сейчас она каждую ночь перезаливается целиком, загрузка идёт 3 часа и не укладывается в окно до утреннего SLA. Заказы не только создаются, но и меняют статус в течение месяца.

Что в первую очередь нужно от источника, чтобы перейти на инкрементальную загрузку?

  • Достаточно фильтра по дате создания заказа created_at: новые строки будут доезжать каждую ночь, а объём загрузки станет в сотни раз меньше полной перезаливки.
  • Надёжный признак изменения строки (updated_at, номер транзакции или журнал CDC) плюс ключ, по которому изменившуюся строку можно обновить в приёмнике.
  • Индексы по всем колонкам таблицы источника: тогда любой инкрементальный запрос отработает быстро и трёхчасовое окно загрузки перестанет быть проблемой.
  • Достаточно читать источник порциями через ORDER BY id LIMIT, запоминая последний прочитанный id, — это и есть инкрементальная загрузка.

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела