Введение в модели с инкрементальной загрузкой
Модели с инкрементальной загрузкой в dbt — это стратегия материализации, разработанная для эффективного обновления таблиц в вашем хранилище данных путем трансформации и загрузки только новых или измененных данных с момента последнего запуска. Вместо обработки всего набора данных каждый раз, модели с инкрементальной загрузкой добавляют или обновляют только новые строки, что зн ачительно сокращает время и ресурсы, необходимые для ваших преобразований данных.
Эта страница предоставит вам краткий обзор моделей с инкрементальной загрузкой, их важности в преобразованиях данных и основных концепций инкрементальной материализации в dbt.
Понимание моделей с инкрементальной загрузкой
Модели с инкрементальной загрузкой позволяют значительно сократить время сборки, преобразуя только новые записи. Это особенно полезно для больших наборов данных, где стоимость обработки всего набора данных высока.
Модели с инкрементальной загрузкой требуют дополнительной настройки и являются продвинутым использованием dbt. Мы рекомендуем использовать их, когда ваши запуски dbt становятся слишком медленными.
Когда использовать модель с инкрементальной загрузкой
Создание моделей в виде таблиц в вашем хранилище данных часто предпочтительнее для лучшей производительности запросов. Однако использование материализации table
может быть вычислительно затратным, особенно когда:
- Исходные данные содержат миллионы или миллиарды строк.
- Преобразования данных на основе исходных данных являются вычислительно затратными (занимают много времени на выполнение) и сложными, например, при использовании Regex или UDF.
Модели с инкрементальной загрузкой предлагают баланс между сложностью и улучшенной производительностью по сравнению с материализациями view
и table
, а также обеспечивают лучшую производительность ваших запусков dbt.
В дополнение к этим соображениям для моделей с инкрементальной загрузкой важно понимать их ограничения и вызовы, особенно с большими наборами данных. Для получения дополнительной информации об эффективных стратегиях, соображениях производительности и обработке данных, поступающих с задержкой, в моделях с инкрементальной загрузкой, обратитесь к обсуждению Ограничения инкрементальности или к нашей странице Лучшие практики материализации.
Как работают модели с инкрементальной загрузкой в dbt
Стратегия инкрементальной материализации в dbt работает по-разному на разных базах данных. Там, где это поддерживается, используется оператор merge
для вставки новых записей и обновления существующих.
На хранилищах, которые не поддерживают операторы merge
, слияние реализуется сначала с помощью оператора delete
для удаления записей в целевой таблице, которые должны быть обновлены, а затем оператора insert
.
Управление транзакциями, процесс, используемый на некоторых платформах данных, гарантирует, что набор действий рассматривается как единое целое (или задача). Если какая-либо часть работы не удается, dbt откатит открытые транзакции и восстановит базу данных в хорошем состоянии.
Связанные документы
- Модели с инкрементальной загрузкой, чтобы узнать, как настроить модели с инкрементальной загрузкой в dbt.
- Инкрементальные стратегии, чтобы понять, как dbt реализует модели с инкрементальной загрузкой на разных базах данных.
- Микропакеты beta, чтобы понять новую инкрементальную стратегию, предназначенную для эффективной и устойчивой обработки очень больших временных рядов данных.
- Лучшие практики материализации, чтобы узнать о лучших практиках использования материализаций в dbt.