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

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

This is an introduction on incremental models, when to use them, and how they work in dbt.

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

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

Визуальное представление того, как работают инкрементальные модели. Источник: руководство по лучшим практикам материализаций (/best-practices/materializations/1-guide-overview)Визуальное представление того, как работают инкрементальные модели. Источник: руководство по лучшим практикам материализаций (/best-practices/materializations/1-guide-overview)
Учитесь с помощью видео!
Чтобы посмотреть видеоуроки по теме Incremental models, перейдите в dbt Learn и ознакомьтесь с курсом Incremental models.

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

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

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

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

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

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

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

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

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

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

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

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

  • Incremental models — чтобы узнать, как настраивать инкрементальные модели в dbt.
  • Incremental strategies — чтобы понять, как dbt реализует инкрементальные модели в разных базах данных.
  • Microbatch — чтобы разобраться в новой инкрементальной стратегии, предназначенной для эффективной и устойчивой обработки очень больших временных рядов данных.
  • Materializations best practices — чтобы ознакомиться с лучшими практиками использования материализаций в dbt.

Нашли ошибку?

0
Loading