Вступ до тестування в dbt

Середній рівень dbt

Mike Metzger

Data Engineer

Що таке тест?

  • Ствердження / валідації об'єктів dbt
    • Моделі
    • Джерела та сіди
  • Використовують, щоб перевірити, що дані відповідають очікуванням
    • Null-значення
    • Значення в діапазоні
    • Зв'язки між даними
    • Кастомні тести (розглянемо далі)
Середній рівень dbt

Типи тестів

dbt пропонує три типи тестів

  1. Вбудовані (4 попередньо визначені)
  2. Окремі*
  3. Узагальнені*

$$

  • розглянемо далі
Середній рівень dbt

Вбудовані тести

  • unique
    • Перевіряє, що всі значення унікальні
  • not_null
    • Перевіряє, що немає null-значень
  • accepted_values
    • Перевіряє, що всі значення в заданому списку
    • values: [a, b, c, d]
  • relationships
    • Перевіряє зв'язок із конкретною таблицею / стовпцем
    • to: ref('table')
    • field: id
Середній рівень dbt

Де застосовувати тести?

  • models/model_properties.yml
    • Файл може мати будь-яку назву
    • models/schema.yml
  • Оголошуються під підзаголовком tests:
version: 2

models:
  - name: taxi_rides_raw
    columns:
      - name: tpep_pickup_datetime
        tests:
          - not_null
      - name: payment_type
        tests:
          - not_null
          - accepted_values:
              values: [1, 2, 3, 4, 5, 6]
Середній рівень dbt

Запуск тестів

  • dbt test
    • dbt test --select modelname
  • Перевірте, що результати пройшли
  • У разі збою звіртеся зі скомпільованим SQL

вивід невдалого тесту dbt

Середній рівень dbt

Пошук збоїв

  1. Знайдіть скомпільований код SQL
  2. У каталозі target/compiled/projectname/models/model_properties.yml
    • target/compiled/nyc_yellow_taxi/models/model_properties.yml/
  3. Знайдіть відповідний файл .sql (що відповідає проваленому тесту)
  4. Скопіюйте вміст у клієнт бази даних і визначте, де проблема
  5. Усуньте з даних і знову запустіть dbt run / dbt test
Середній рівень dbt

Давайте потренуємось!

Середній рівень dbt

Preparing Video For Download...