Vytváření popisů a testů v dbt

Případová studie: Tvorba datových modelů pro e-commerce s dbt

Susan Sun

Freelance Data Scientist

docs: uživatelsky definované popisy v dbt

  • Uživatelsky definované popisy v souborech yaml
  • Slouží k dokumentaci: dbt modelů, zdrojů, seedů, datových testů atd.
  • Konvence pojmenování:
    _<data source>__<asset>.yml
    
  • Uložit ve stejném adresáři jako příslušné zdroje
looker_ecommerce/
  macros/
  models/
    _looker__models.yml     <------ 
    _looker__sources.yml    <------
    stg_looker__distribution_center.sql
    stg_looker__orders.sql
  seeds/
    looker__distribution_center.csv
Případová studie: Tvorba datových modelů pro e-commerce s dbt

docs: yaml soubor modelu dbt

Ukázka _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

Poznámka:

  • version: 2 je formát konfigurace schématu používaný v dbt
  • models určuje, který typ zdroje je dokumentován
  • 2 mezery před názvem tabulky
  • 4 mezery před názvem sloupce
Případová studie: Tvorba datových modelů pro e-commerce s dbt

dbt datové testy: not null a unique

  • Čtyři výchozí datové testy jsou definovány v souborech yaml:
    • unique
    • not_null
    • accepted_values
    • relationship

1.unique: každá hodnota v řádku je jedinečná

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

2.not_null: žádný řádek nesmí obsahovat hodnotu null

- name: table_name
  columns: 
    - name: column_name
      data_tests:
        - unique
        - not_null
    - name: column_name
      data_tests:
        - unique
Případová studie: Tvorba datových modelů pro e-commerce s dbt

dbt datové testy: přijatelné hodnoty

3.accepted_values: povoleny jsou pouze hodnoty ze seznamu

- name: table_name
  columns: 
    - name: column_name
      data_tests:
        - accepted_values:
            values: ['value_a', 'value_b', 'value_c', NULL]
Případová studie: Tvorba datových modelů pro e-commerce s dbt

dbt datové testy: vztahy

4.relationships: referenční integrita (cizí klíč) mezi tabulkami

- name: table_1
  columns: 
    - name: column_1
      data_tests:
        - relationships:
            to: ref('table_2')
            field: column_2
Případová studie: Tvorba datových modelů pro e-commerce s dbt

Pojďme si procvičit!

Případová studie: Tvorba datových modelů pro e-commerce s dbt

Preparing Video For Download...