Skapa dbt-beskrivningar och tester

Fallstudie: Bygg e-handelsdatamodeller med dbt

Susan Sun

Freelance Data Scientist

docs: dbt användardefinerade beskrivningar

  • Användardefinerade beskrivningar i yaml-filer
  • Används för att dokumentera: dbt modeller, källor, seeds, datatester m.m.
  • Namnkonvention:
    _<data source>__<asset>.yml
    
  • Lagra i samma katalog som tillgångarna
looker_ecommerce/
  macros/
  models/
    _looker__models.yml     <------ 
    _looker__sources.yml    <------
    stg_looker__distribution_center.sql
    stg_looker__orders.sql
  seeds/
    looker__distribution_center.csv
Fallstudie: Bygg e-handelsdatamodeller med dbt

docs: dbt-modell yaml

Exempel på _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

Obs!

  • version: 2 är schemakonfigurationsformatet som dbt använder
  • models anger vilket tillgångstyp som dokumenteras
  • 2 mellanslag före tabellnamn
  • 4 mellanslag före kolumnnamn
Fallstudie: Bygg e-handelsdatamodeller med dbt

dbt-datatester: not null och unique

  • Fyra standarddatatester finns i yaml-filer:
    • unique
    • not_null
    • accepted_values
    • relationship

1.unique: varje radvärde är unikt

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

2.not_null: ingen rad får ha ett null-värde

- name: table_name
  columns: 
    - name: column_name
      data_tests:
        - unique
        - not_null
    - name: column_name
      data_tests:
        - unique
Fallstudie: Bygg e-handelsdatamodeller med dbt

dbt-datatester: accepted values

3.accepted_values: endast värden i listan godkänns

- name: table_name
  columns: 
    - name: column_name
      data_tests:
        - accepted_values:
            values: ['value_a', 'value_b', 'value_c', NULL]
Fallstudie: Bygg e-handelsdatamodeller med dbt

dbt-datatester: relationships

4.relationships: referensintegritet (främmande nyckel) mellan tabeller

- name: table_1
  columns: 
    - name: column_1
      data_tests:
        - relationships:
            to: ref('table_2')
            field: column_2
Fallstudie: Bygg e-handelsdatamodeller med dbt

Nu kör vi en övning!

Fallstudie: Bygg e-handelsdatamodeller med dbt

Preparing Video For Download...