실패 시 즉시 종료
실패 시 즉시 종료 (Failing fast)
dbt run, dbt build, dbt test에 -x 또는 --fail-fast 플래그를 주면 첫 실패가 발생했을 때 dbt가 즉시 종료돼요. 이 설정이 어떤 동작을 만드는지, 그리고 실행 로그로 어떻게 확인하는지 보여 드릴게요.
출처: 문서
본문
dbt run, dbt build, dbt test에 -x 또는 --fail-fast 플래그를 주면 첫 실패에서 dbt가 즉시 종료돼요. fail_fast는 글로벌 플래그라서 run 오류와 test 오류 모두에서 멈춰요(단순히 run 오류만이 아니라요). 첫 실패가 발생했을 때 다른 모델이 진행 중이라면, dbt는 아직 실행 중인 모델들의 연결을 종료해요.
전체 우선순위 규칙과 환경 변수(DBT_FAIL_FAST)는 global configs 문서의 fail_fast 행을 참고해 주세요.
예를 들어 네 개의 모델을 실행하도록 선택했는데 첫 번째 모델에서 실패가 발생하면, 그 실패 때문에 다른 모델 실행이 막혀요:
$ dbt run -x --threads 1
Running with dbt=1.0.0
Found 4 models, 1 test, 1 snapshot, 2 analyses, 143 macros, 0 operations, 1 seed file, 0 sources
14:47:39 | Concurrency: 1 threads (target='dev')
14:47:39 |
14:47:39 | 1 of 4 START table model test_schema.model_1........... [RUN]
14:47:40 | 1 of 4 ERROR creating table model test_schema.model_1.. [ERROR in 0.06s]
14:47:40 | 2 of 4 START view model test_schema.model_2............ [RUN]
14:47:40 | CANCEL query model.debug.model_2....................... [CANCEL]
14:47:40 | 2 of 4 ERROR creating view model test_schema.model_2... [ERROR in 0.05s]
Database Error in model model_1 (models/model_1.sql)
division by zero
compiled SQL at target/run/debug/models/model_1.sql
Encountered an error:
FailFast Error in model model_1 (models/model_1.sql)
Failing early due to test failure or runtime error
더 알아보기 (Learn more)
- About global configs —
fail_fast플래그의 전체 우선순위 규칙과 환경 변수 - dbt run — 실행 명령