Créer des descriptions et des tests dbt

Étude de cas : créer des modèles de données de commerce électronique avec dbt

Susan Sun

Freelance Data Scientist

docs : descriptions dbt définies par l'utilisateur

  • Descriptions définies par l'utilisateur dans des fichiers yaml
  • Servent à documenter : dbt models, sources, seeds, data tests, etc.
  • Convention d'appellation :
    _<data source>__<asset>.yml
    
  • À conserver dans le même répertoire que les ressources
looker_ecommerce/
  macros/
  models/
    _looker__models.yml     <------ 
    _looker__sources.yml    <------
    stg_looker__distribution_center.sql
    stg_looker__orders.sql
  seeds/
    looker__distribution_center.csv
Étude de cas : créer des modèles de données de commerce électronique avec dbt

docs : yaml de modèle dbt

Exemple de _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

Remarque :

  • version: 2 est le format de configuration de schéma utilisé par dbt
  • models indique quelle ressource est documentée ici
  • 2 espaces avant le nom de la table
  • 4 espaces avant le nom de la colonne
Étude de cas : créer des modèles de données de commerce électronique avec dbt

dbt data tests : not null et unique

  • Quatre tests de données par défaut sont définis dans les fichiers yaml :
    • unique
    • not_null
    • accepted_values
    • relationship

1.unique : chaque valeur de ligne est unique

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

2.not_null : aucune ligne ne peut avoir une valeur nulle

- name: table_name
  columns: 
    - name: column_name
      data_tests:
        - unique
        - not_null
    - name: column_name
      data_tests:
        - unique
Étude de cas : créer des modèles de données de commerce électronique avec dbt

dbt data tests : accepted values

3.accepted_values : seules les valeurs de la liste sont acceptées

- name: table_name
  columns: 
    - name: column_name
      data_tests:
        - accepted_values:
            values: ['value_a', 'value_b', 'value_c', NULL]
Étude de cas : créer des modèles de données de commerce électronique avec dbt

dbt data tests : relationships

4.relationships : intégrité référentielle (clé étrangère) entre tables

- name: table_1
  columns: 
    - name: column_1
      data_tests:
        - relationships:
            to: ref('table_2')
            field: column_2
Étude de cas : créer des modèles de données de commerce électronique avec dbt

Passons à la pratique !

Étude de cas : créer des modèles de données de commerce électronique avec dbt

Preparing Video For Download...