Пользовательская стратегия микропакетной обработки
Этот флаг удалён в v2. Новое поведение включено всегда. При обновлении удалите этот флаг из dbt_project.yml.
| require_batched_execution_for_custom_microbatch_strategy | dbt Последняя версия v1 | dbt v1 |
|---|---|---|
| Введён | 2024.11 | 1.9.0 |
Стал стандартным (по умолчанию → true) | 2026.09 | 1.12.0 |
| Удалён | — | v2.0 |
Флаг require_batched_execution_for_custom_microbatch_strategy имеет значение только в том случае, если в вашем проекте уже есть пользовательский макрос get_incremental_microbatch_sql. Если пользовательского макроса микропакетной обработки нет, задавать этот флаг не нужно — dbt автоматически выполняет микропакетную обработку для любой модели, использующей стратегию микропакетной обработки.
Начиная с dbt v1.12, значение этого флага по умолчанию — true: dbt выполняет пользовательские стратегии микропакетной обработки пакетами. Если у вас есть пользовательский макрос микропакетной обработки и флаг установлен в false, dbt выдаёт предупреждение об устаревшем поведении.
Ранее пользователям требовалось устанавливать переменную окружения DBT_EXPERIMENTAL_MICROBATCH в true, чтобы предотвратить нежелательное взаимодействие с существующими пользовательскими инкрементальными стратегиями. Теперь значение DBT_EXPERIMENTAL_MICROBATCH никак не влияет на поведение во время выполнения.
Влияние
Этот флаг имеет значение только в том случае, если в вашем проекте есть пользовательский макрос get_incremental_microbatch_sql. На проекты без пользовательского макроса микропакетной обработки он не влияет — встроенный макрос уже выполняется пакетами.
Если вы переопределили get_incremental_microbatch_sql — обычно для обхода ограничений адаптера или реализации пользовательской стратегии партиционирования, — ваш макрос вызывается в режиме пакетного выполнения, на который он изначально не был рассчитан. Возможные последствия:
- Макрос игнорирует более узкое окно
event_time_start/event_time_endи повторно обрабатывает весь диапазон для каждого пакета, что приводит к лишним вычислениям, дублированию строк или конфликтамMERGE/INSERT. - Макрос завершается с ошибкой, поскольку рассчитан на однократный вызов за запуск.
- Количество строк в целевой таблице различается в зависимости от значения флага.