Tworzenie opisów i testów w dbt

Studium przypadku: budowanie modeli danych e-commerce z dbt

Susan Sun

Freelance Data Scientist

docs: opisy definiowane przez użytkownika w dbt

  • Opisy definiowane przez użytkownika w plikach yaml
  • Dokumentują: modele, źródła, seedy, testy danych dbt itp.
  • Konwencja nazewnictwa:
    _<data source>__<asset>.yml
    
  • Przechowywać w tym samym katalogu co zasoby
looker_ecommerce/
  macros/
  models/
    _looker__models.yml     <------ 
    _looker__sources.yml    <------
    stg_looker__distribution_center.sql
    stg_looker__orders.sql
  seeds/
    looker__distribution_center.csv
Studium przypadku: budowanie modeli danych e-commerce z dbt

docs: yaml modelu dbt

Przykład _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

Uwaga:

  • version: 2 to format konfiguracji schematu używany przez dbt
  • models określa, jaki zasób jest dokumentowany
  • 2 spacje przed nazwą tabeli
  • 4 spacje przed nazwą kolumny
Studium przypadku: budowanie modeli danych e-commerce z dbt

Testy dbt: not null i unique

  • Cztery domyślne testy danych w plikach yaml:
    • unique
    • not_null
    • accepted_values
    • relationship

1.unique: każda wartość wiersza jest unikalna

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

2.not_null: żaden wiersz nie może mieć wartości null

- name: table_name
  columns: 
    - name: column_name
      data_tests:
        - unique
        - not_null
    - name: column_name
      data_tests:
        - unique
Studium przypadku: budowanie modeli danych e-commerce z dbt

Testy dbt: accepted values

3.accepted_values: dozwolone tylko wartości z listy

- name: table_name
  columns: 
    - name: column_name
      data_tests:
        - accepted_values:
            values: ['value_a', 'value_b', 'value_c', NULL]
Studium przypadku: budowanie modeli danych e-commerce z dbt

Testy dbt: relationships

4.relationships: integralność referencyjna (klucz obcy) między tabelami

- name: table_1
  columns: 
    - name: column_1
      data_tests:
        - relationships:
            to: ref('table_2')
            field: column_2
Studium przypadku: budowanie modeli danych e-commerce z dbt

Czas na ćwiczenia!

Studium przypadku: budowanie modeli danych e-commerce z dbt

Preparing Video For Download...