Creating singular tests

우상욱·2024년 3월 2일
0

DBT

목록 보기
8/16

What is a singular test?


  • Custom data test
  • Written as an SQL query
    • Must return failing rows
  • Defined as .sql file in tests directories

Example singular test


  • Create a test to verify the order_total is greater than or equal to thesubtotal
SELECT *
FROM order
WHERE order_total < subtotal
  • Remember, we're looking for the rows that fail the test. If the test returns rows, then the test is marked as failed.
  • Save file as assert_order_total_gte_subtotal.sql
    관례적으로 이 파일의 이름은 assert로 시작합니다. test 디렉토리에 넣습니다.

Singular test with Jinja


  • We can use Jinja in our tests
    • ref function
    • Others as appropriate
  • dbt substitutes output when test is run
    테스트가 실행될 때는 dbt가 해당 진자템플릿을 실제 쿼리로 전환합니다.
select *
from {{ ref('order') }}
where order_total < subtotal
  • dbt 프로필이 변경되면 테스트하기 전에 프로젝트를 다시 실행해야합니다.

Test debugging


  • Use a SQL editor to create the initial test query
  • Place query in appropriate file
  • Make sure to name the test uniquely
  • Use the dbt test --select <testname> option
    개발 속도를 높이기 위해서 해당 특정 테스트만 실행할 수 있습니다. 대규모 데이터 셋트를 얻고, 많은 테스트를 수행할 경우, 모든 테스트를 수행하는 데에 필요한 시간이 크게 늘어날 수 있습니다.
  • Check any errors and update accordingly

테스트 순서


Example


  1. test 디렉토리 내에 assert_trip_duration_gt_0.sql 파일 생성
select * 
from taxi_rides_raw
-- Complete the test on the following line
where tpep_pickup_datetime = tpep_dropoff_datetime

여행 시작 기간과, 여행 종료 기간이 같은 데이터에 대해 오류 발생시키는 테스트

  1. dbt test --select assert_trip_duration_gt_0
  2. 결과 확인
profile
데이터엔지니어

0개의 댓글