Использование потоков
Когда dbt выполняется, он создает ориентированный ациклический граф (DAG) связей между м оделями. Количество потоков представляет собой максимальное количество путей через граф, над которыми dbt может работать одновременно – увеличение количества потоков может минимизировать время выполнения вашего проекта.
Например, если вы укажете threads: 1
, dbt начнет строить только одну модель и завершит ее, прежде чем перейти к следующей. Указание threads: 8
означает, что dbt будет работать с до 8 моделями одновременно, не нарушая зависимостей – фактическое количество моделей, над которыми он может работать, вероятно, будет ограничено доступными путями через граф зависимостей.
Нет установленного предела максимального количества потоков, которые вы можете задать – хотя увеличение количества потоков обычно уменьшает время выполнения, есть несколько факторов, которые следует учитывать:
- Увеличение количества потоков увеличивает нагрузку на ваш склад данных, что может повлиять на другие инструменты в вашем стеке данных. Например, если ваш BI-инструмент использует те же вычислительные ресурсы, что и dbt, их запросы могут быть поставлены в очередь во время выполнения dbt.
- Количество одновременных запросов, которые ваша база данных позволит вам выполнять, может быть ограничивающим фактором в том, сколько моделей может активно строиться – некоторые модели могут ожидать в очереди, пока не освободится слот для запроса.
В общем, оптимальное количество потоков зависит от вашего хранилища данных и его конфигурации. Лучше всего протестировать разные значения, чтобы найти оптимальное количество потоков для вашего проекта. Мы рекомендуем начать с установки этого значения на 4.
Вы можете использовать другое количество потоков, чем значение, определенное в вашей цели, с помощью опции --threads
при выполнении команды dbt.
Вы определите количество потоков в вашем файле profiles.yml
(только для пользователей dbt Core), в определении задания dbt Cloud и в учетных данных разработки dbt Cloud в вашем профиле.