배치 테스트
배치 테스트 (Batch tests)
--batch-tests 플래그는 같은 모델을 대상으로 하는 호환 가능한 데이터 테스트를 테스트 타입별로 단일 쿼리로 묶어서, 테스트마다 쿼리 하나씩 실행하는 대신 처리해요. 데이터 테스트가 많은 프로젝트에서 성능을 높일 수 있어요.
출처: 문서
본문
v2에서 사용 가능 ⓘ
--batch-tests 플래그는 같은 모델을 대상으로 하는 호환 가능한 데이터 테스트를, 테스트당 하나의 쿼리를 실행하는 대신 테스트 타입별 단일 쿼리로 결합해요. 이렇게 하면 dbt가 테스트에 실행하는 쿼리 수가 줄어들어 데이터 테스트가 많은 프로젝트에서 성능이 개선될 수 있어요.
테스트 배치하기
배치는 dbt build와 dbt test에 적용돼요. 다음 조건이 모두 참일 때 dbt가 테스트 그룹을 배치해요:
- 테스트가
unique또는not_null인 경우 - 같은 모델에 연결된 경우
- 기본 구성을 사용하는 경우
- 그중 두 개 이상이 같은 타입인 경우
다음 중 하나라도 설정되면 dbt는 배치에서 테스트를 제외해요:
severityerror_ifwarn_iffail_calclimitwherestore_failuresstore_failures_as
제외된 테스트는 배치 없이 그대로 각자 실행돼요.
플래그 설정
dbt는 우선순위 순서대로 다음 세 곳에서 batch_tests를 해결해요:
--batch-tests커맨드라인 플래그DBT_ENGINE_BATCH_TESTS환경 변수- 루트 프로젝트
dbt_project.yml의flags블록
예를 들어 커맨드라인에서:
CLI
dbt build --batch-tests
환경 변수로:
Env var
export DBT_ENGINE_BATCH_TESTS=true
dbt build
dbt_project.yml에서:
dbt_project.yml
flags:
batch_tests: true
더 알아보기 (Learn more)
- dbt test — 테스트 실행 명령
- 데이터 테스트 구성 — 데이터 테스트의 구체적 구성