concurrent_batches
concurrent_batches
concurrent_batches는 마이크로배치(microbatch) 모델의 배치를 병렬로 실행할지, 순차로(하나씩) 실행할지 정하는 오버라이드 설정이에요. 기본적으로 dbt가 병렬 실행 가능 여부를 자동 감지하지만, 이 설정으로 직접 제어할 수도 있어요.
출처: 문서
본문
알아두세요: dbt v1.9부터 또는 dbt "v1 Latest" 릴리스 트랙에서 사용할 수 있어요.
dbt_project.yml
models:
+concurrent_batches: true
models/my_model.sql
{{
config(
materialized='incremental',
concurrent_batches=true,
incremental_strategy='microbatch'
...
)
}}
select ...
Definition
concurrent_batches는 배치를 병렬로 실행할지 순차로(한 번에 하나씩) 실행할지 결정할 수 있는 오버라이드예요.
자세한 내용은 배치 실행이 어떻게 동작하는지를 참고하세요.
Example
기본적으로 dbt는 마이크로배치 모델의 배치를 병렬로 실행할 수 있는지 자동 감지해요. 하지만 dbt_project.yml이나 모델 .sql 파일에서 concurrent_batches config를 false로 설정하면 dbt의 감지를 무시하고 병렬/순차 실행을 지정할 수 있어요. 이때 다음 조건을 충족해야 해요.
- 마이크로배치 incremental 전략을 구성했어요.
- 누적 메트릭(cumulative metrics)이나 배치 순서에 의존하는 로직을 쓰고 있어요.
배치가 순차 처리되도록 하려면 concurrent_batches config를 false로 설정하세요. 예:
dbt_project.yml
models:
my_project:
cumulative_metrics_model:
+concurrent_batches: false
models/my_model.sql
{{
config(
materialized='incremental',
incremental_strategy='microbatch'
concurrent_batches=false
)
}}
select ...
더 알아보기 (Learn more)
- Incremental strategies — 마이크로배치 전략과 배치 실행 방식.
- incremental_strategy — incremental 모델의 전략 설정.