Crearea descrierilor și testelor dbt

Studiu de caz: Construirea modelelor de date pentru e-commerce cu dbt

Susan Sun

Freelance Data Scientist

docs: descrieri definite de utilizator în dbt

  • Descrieri definite de utilizator în fișiere yaml
  • Utilizate pentru documentarea: modelelor, surselor, seed-urilor, testelor de date dbt etc.
  • Convenție de denumire:
    _<data source>__<asset>.yml
    
  • Se stochează în același director cu resursele
looker_ecommerce/
  macros/
  models/
    _looker__models.yml     <------ 
    _looker__sources.yml    <------
    stg_looker__distribution_center.sql
    stg_looker__orders.sql
  seeds/
    looker__distribution_center.csv
Studiu de caz: Construirea modelelor de date pentru e-commerce cu dbt

docs: yaml pentru modelul dbt

Exemplu _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

Notă:

  • version: 2 este formatul de configurare a schemei utilizat de dbt
  • models definește resursa documentată de utilizator
  • 2 spații înaintea numelui tabelului
  • 4 spații înaintea numelui coloanei
Studiu de caz: Construirea modelelor de date pentru e-commerce cu dbt

Teste de date dbt: not null și unique

  • Patru teste de date implicite în fișiere yaml:
    • unique
    • not_null
    • accepted_values
    • relationship

1.unique: fiecare valoare din rând este unică

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

2.not_null: niciun rând nu poate avea valoare nulă

- name: table_name
  columns: 
    - name: column_name
      data_tests:
        - unique
        - not_null
    - name: column_name
      data_tests:
        - unique
Studiu de caz: Construirea modelelor de date pentru e-commerce cu dbt

Teste de date dbt: valori acceptate

3.accepted_values: doar valorile din listă sunt acceptate

- name: table_name
  columns: 
    - name: column_name
      data_tests:
        - accepted_values:
            values: ['value_a', 'value_b', 'value_c', NULL]
Studiu de caz: Construirea modelelor de date pentru e-commerce cu dbt

Teste de date dbt: relații

4.relationships: integritate referențială (cheie externă) între tabele

- name: table_1
  columns: 
    - name: column_1
      data_tests:
        - relationships:
            to: ref('table_2')
            field: column_2
Studiu de caz: Construirea modelelor de date pentru e-commerce cu dbt

Să exersăm!

Studiu de caz: Construirea modelelor de date pentru e-commerce cu dbt

Preparing Video For Download...