dbt-beschrijvingen en tests maken

Casestudy: e-commercedatamodellen bouwen met dbt

Susan Sun

Freelance Data Scientist

docs: dbt door de gebruiker gedefinieerde beschrijvingen

  • Door de gebruiker gedefinieerde beschrijvingen in yaml-bestanden
  • Gebruikt om te documenteren: dbt models, sources, seeds, data tests, enz.
  • Naamconventie:
    _<data source>__<asset>.yml
    
  • Bewaar in dezelfde map als de assets
looker_ecommerce/
  macros/
  models/
    _looker__models.yml     <------ 
    _looker__sources.yml    <------
    stg_looker__distribution_center.sql
    stg_looker__orders.sql
  seeds/
    looker__distribution_center.csv
Casestudy: e-commercedatamodellen bouwen met dbt

docs: dbt model-yaml

Voorbeeld _looker__models.yml:

version: 2

models:
  - name: model_name
    description: Dit is een tabel
    columns:
      - name: column_name
        description: Dit is een kolom
      - name: column_name
        description: Dit is een kolom

Opmerking:

  • version: 2 is het schema-configuratieformaat dat door dbt wordt gebruikt
  • models geeft aan welk asset hiermee wordt gedocumenteerd
  • 2 spaties vóór tabelnaam
  • 4 spaties vóór kolomnaam
Casestudy: e-commercedatamodellen bouwen met dbt

dbt-datatests: not null en unique

  • Vier standaarddatatests staan in yaml-bestanden:
    • unique
    • not_null
    • accepted_values
    • relationship

1.unique: elke rijwaarde is uniek

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

2.not_null: geen enkele rij mag null zijn

- name: table_name
  columns: 
    - name: column_name
      data_tests:
        - unique
        - not_null
    - name: column_name
      data_tests:
        - unique
Casestudy: e-commercedatamodellen bouwen met dbt

dbt-datatests: accepted values

3.accepted_values: alleen waarden uit de lijst zijn toegestaan

- name: table_name
  columns: 
    - name: column_name
      data_tests:
        - accepted_values:
            values: ['value_a', 'value_b', 'value_c', NULL]
Casestudy: e-commercedatamodellen bouwen met dbt

dbt-datatests: relationships

4.relationships: referentiële integriteit (foreign key) tussen tabellen

- name: table_1
  columns: 
    - name: column_1
      data_tests:
        - relationships:
            to: ref('table_2')
            field: column_2
Casestudy: e-commercedatamodellen bouwen met dbt

Laten we oefenen!

Casestudy: e-commercedatamodellen bouwen met dbt

Preparing Video For Download...