Создание описаний и тестов в dbt

Практический пример: построение моделей данных для электронной коммерции с помощью dbt

Susan Sun

Freelance Data Scientist

docs: пользовательские описания в dbt

  • Пользовательские описания в yaml-файлах
  • Используются для документирования: моделей, источников, seeds, тестов данных dbt и т. д.
  • Соглашение об именовании:
    _<data source>__<asset>.yml
    
  • Хранятся в той же директории, что и ресурсы
looker_ecommerce/
  macros/
  models/
    _looker__models.yml     <------ 
    _looker__sources.yml    <------
    stg_looker__distribution_center.sql
    stg_looker__orders.sql
  seeds/
    looker__distribution_center.csv
Практический пример: построение моделей данных для электронной коммерции с помощью dbt

docs: yaml-файл модели dbt

Пример _looker__models.yml:

version: 2

models:
  - name: model_name
    description: This is a table
    columns:
      - name: column_name
        description: This is a column
      - name: column_name
        description: This is a column

Примечание:

  • version: 2 — формат конфигурации схемы, используемый dbt
  • models указывает, какой ресурс документирует данное описание
  • 2 пробела перед именем таблицы
  • 4 пробела перед именем столбца
Практический пример: построение моделей данных для электронной коммерции с помощью dbt

Тесты данных dbt: not null и unique

  • Четыре стандартных теста данных в yaml-файлах:
    • unique
    • not_null
    • accepted_values
    • relationship

1.unique: значение каждой строки уникально

- name: table_name
  columns: 
    - name: column_name
      data_tests:
        - not_null
    ...

2.not_null: ни одна строка не может содержать значение null

- name: table_name
  columns: 
    - name: column_name
      data_tests:
        - unique
        - not_null
    - name: column_name
      data_tests:
        - unique
Практический пример: построение моделей данных для электронной коммерции с помощью dbt

Тесты данных dbt: допустимые значения

3.accepted_values: допускаются только значения из списка

- name: table_name
  columns: 
    - name: column_name
      data_tests:
        - accepted_values:
            values: ['value_a', 'value_b', 'value_c', NULL]
Практический пример: построение моделей данных для электронной коммерции с помощью dbt

Тесты данных dbt: связи

4.relationships: ссылочная целостность (внешний ключ) между таблицами

- name: table_1
  columns: 
    - name: column_1
      data_tests:
        - relationships:
            to: ref('table_2')
            field: column_2
Практический пример: построение моделей данных для электронной коммерции с помощью dbt

Давайте потренируемся!

Практический пример: построение моделей данных для электронной коммерции с помощью dbt

Preparing Video For Download...