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)