Введение в тестирование в 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...