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

Кейс-стаді: створення моделей даних для e-commerce за допомогою dbt

Susan Sun

Freelance Data Scientist

docs: користувацькі описи в dbt

  • Користувацькі описи у файлах yaml
  • Служать для документування: dbt models, sources, seeds, data tests тощо
  • Правило іменування:
    _<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
Кейс-стаді: створення моделей даних для e-commerce за допомогою 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 пробіли перед назвою стовпця
Кейс-стаді: створення моделей даних для e-commerce за допомогою dbt

dbt data tests: not null та unique

  • Чотири стандартні data tests зберігаються у файлах 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
Кейс-стаді: створення моделей даних для e-commerce за допомогою dbt

dbt data tests: accepted values

3.accepted_values: приймаються лише значення зі списку

- name: table_name
  columns: 
    - name: column_name
      data_tests:
        - accepted_values:
            values: ['value_a', 'value_b', 'value_c', NULL]
Кейс-стаді: створення моделей даних для e-commerce за допомогою dbt

dbt data tests: relationships

4.relationships: цілісність посилань (зовнішній ключ) між таблицями

- name: table_1
  columns: 
    - name: column_1
      data_tests:
        - relationships:
            to: ref('table_2')
            field: column_2
Кейс-стаді: створення моделей даних для e-commerce за допомогою dbt

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

Кейс-стаді: створення моделей даних для e-commerce за допомогою dbt

Preparing Video For Download...