Перейти к основному содержимому

Введение в модели с инкрементальной загрузкой

Модели с инкрементальной загрузкой в dbt — это стратегия материализации, разработанная для эффективного обновления таблиц в вашем хранилище данных путем трансформации и загрузки только новых или измененных данных с момента последнего запуска. Вместо обработки всего набора данных каждый раз, модели с инкрементальной загрузкой добавляют или обновляют только новые строки, что значительно сокращает время и ресурсы, необходимые для ваших преобразований данных.

Эта страница предоставит вам краткий обзор моделей с инкрементальной загрузкой, их важности в преобразованиях данных и основных концепций инкрементальной материализации в dbt.

Визуальное представление работы моделей с инкрементальной загрузкой. Источник: Руководство по лучшим практикам материализации (https://docs.getdbt.com/best-practices/materializations/1-guide-overview)Визуальное представление работы моделей с инкрементальной загрузкой. Источник: Руководство по лучшим практикам материализации (https://docs.getdbt.com/best-practices/materializations/1-guide-overview)

Понимание моделей с инкрементальной загрузкой

Модели с инкрементальной загрузкой позволяют значительно сократить время сборки, преобразуя только новые записи. Это особенно полезно для больших наборов данных, где стоимость обработки всего набора данных высока.

Модели с инкрементальной загрузкой требуют дополнительной настройки и являются продвинутым использованием dbt. Мы рекомендуем использовать их, когда ваши запуски dbt становятся слишком медленными.

Когда использовать модель с инкрементальной загрузкой

Создание моделей в виде таблиц в вашем хранилище данных часто предпочтительнее для лучшей производительности запросов. Однако использование материализации table может быть вычислительно затратным, особенно когда:

  • Исходные данные содержат миллионы или миллиарды строк.
  • Преобразования данных на основе исходных данных являются вычислительно затратными (занимают много времени на выполнение) и сложными, например, при использовании Regex или UDF.

Модели с инкрементальной загрузкой предлагают баланс между сложностью и улучшенной производительностью по сравнению с материализациями view и table, а также обеспечивают лучшую производительность ваших запусков dbt.

В дополнение к этим соображениям для моделей с инкрементальной загрузкой важно понимать их ограничения и вызовы, особенно с большими наборами данных. Для получения дополнительной информации об эффективных стратегиях, соображениях производительности и обработке данных, поступающих с задержкой, в моделях с инкрементальной загрузкой, обратитесь к обсуждению Ограничения инкрементальности или к нашей странице Лучшие практики материализации.

Как работают модели с инкрементальной загрузкой в dbt

Стратегия инкрементальной материализации в dbt работает по-разному на разных базах данных. Там, где это поддерживается, используется оператор merge для вставки новых записей и обновления существующих.

На хранилищах, которые не поддерживают операторы merge, слияние реализуется сначала с помощью оператора delete для удаления записей в целевой таблице, которые должны быть обновлены, а затем оператора insert.

Управление транзакциями, процесс, используемый на некоторых платформах данных, гарантирует, что набор действий рассматривается как единое целое (или задача). Если какая-либо часть работы не удается, dbt откатит открытые транзакции и восстановит базу данных в хорошем состоянии.

Связанные документы

0