Creare descrizioni e test in dbt

Case Study: creazione di modelli di dati E‑Commerce con dbt

Susan Sun

Freelance Data Scientist

docs: descrizioni definite dall'utente in dbt

  • Descrizioni definite dall'utente in file yaml
  • Usate per documentare: modelli, sorgenti, seed, data test dbt, ecc.
  • Convenzione di naming:
    _<data source>__<asset>.yml
    
  • Salva nella stessa cartella degli asset
looker_ecommerce/
  macros/
  models/
    _looker__models.yml     <------ 
    _looker__sources.yml    <------
    stg_looker__distribution_center.sql
    stg_looker__orders.sql
  seeds/
    looker__distribution_center.csv
Case Study: creazione di modelli di dati E‑Commerce con dbt

docs: yaml del modello dbt

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

Nota:

  • version: 2 è il formato di configurazione dello schema usato da dbt
  • models definisce quale asset viene documentato
  • 2 spazi prima del nome della tabella
  • 4 spazi prima del nome della colonna
Case Study: creazione di modelli di dati E‑Commerce con dbt

dbt data tests: not_null e unique

  • Quattro data test predefiniti nei file yaml:
    • unique
    • not_null
    • accepted_values
    • relationship

1.unique: ogni valore di riga è univoco

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

2.not_null: nessuna riga può essere null

- name: table_name
  columns: 
    - name: column_name
      data_tests:
        - unique
        - not_null
    - name: column_name
      data_tests:
        - unique
Case Study: creazione di modelli di dati E‑Commerce con dbt

dbt data tests: accepted_values

3.accepted_values: accetta solo i valori nella lista

- name: table_name
  columns: 
    - name: column_name
      data_tests:
        - accepted_values:
            values: ['value_a', 'value_b', 'value_c', NULL]
Case Study: creazione di modelli di dati E‑Commerce con dbt

dbt data tests: relationships

4.relationships: integrità referenziale (chiave esterna) tra tabelle

- name: table_1
  columns: 
    - name: column_1
      data_tests:
        - relationships:
            to: ref('table_2')
            field: column_2
Case Study: creazione di modelli di dati E‑Commerce con dbt

Ayo berlatih!

Case Study: creazione di modelli di dati E‑Commerce con dbt

Preparing Video For Download...