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