Раздел 26 · Data Engineering

Инкрементальная загрузка

junior~10 мин

без входаВойди, чтобы отмечать прогресс, вести заметки и решать задачи в редакторе. войти

Ночной пайплайн «Гонца» работает. Но при каждом запуске он читает выгрузку целиком, а берёт из неё один день. Сейчас в таблице заказов 41 тысяча строк, через год будет сто тысяч, через три года полмиллиона. Ночь, когда пайплайн перестанет укладываться в отведённое время, наступит незаметно. А ещё Отто хочет видеть статусы заказов не раз в сутки, а каждый час, и перезаливать каждый час всю таблицу совсем расточительно.

Закладка в книге

Ты читаешь толстую книгу по вечерам. Можно каждый вечер начинать с первой страницы и листать до того места, где остановился вчера. А можно положить закладку: открыл, продолжил, в конце переложил закладку на новое место.

Закладка и есть главная идея инкрементальной загрузки. Пайплайн помнит, докуда дочитал, и в следующий раз забирает только то, что появилось после.

Полная и инкрементальная загрузка

Полная загрузка каждый раз забирает всё. Это просто и надёжно: что бы ни случилось вчера, сегодня таблица снова точная копия источника. Для маленьких справочников, вроде двенадцати зон «Гонца», так и делают.

Инкрементальная загрузка забирает только новое. Посмотри, насколько меньше читает инкремент за последний день июня:

Сколько строк читает каждый способ

База · courier

Загружаю редактор…

База загрузится, когда ты выполнишь запрос или откроешь таблицы.

Выполни запрос, чтобы увидеть результат.

Выполни весь запрос кнопкой или Ctrl/Cmd+Enter. Ctrl+Space открывает подсказки. Можно писать несколько команд через точку с запятой, менять данные и открывать транзакции. У каждой песочницы своя база, изменения живут до ухода со страницы. «Сбросить базу» возвращает учебные данные, но не меняет SQL.

Полная загрузка читает 41 242 строки, инкремент 408. Разница растёт каждый день: полная загрузка становится всё дольше, а инкремент остаётся размером в один день. Третья колонка пригодится чуть ниже.

урок из курса

Урок из курса «Data Engineering». Курс покупается один раз и остаётся навсегда: 500 ₽.

Оплата пока не подключена: премиум и курсы открываются промокодом.