Case Study: creazione di modelli di dati E‑Commerce con dbt
Susan Sun
Freelance Data Scientist
Installa dbt
pip install dbt
Inizializza il progetto dbt looker_ecommerce
dbt init looker_ecommerce
Verifica l'installazione
cd looker_ecommerce
dbt debug
Directory auto-generata da dbt:

distribution_centers.csv è piccolo e statico, solo 10 righe
Esempio del file raw distribution_centers.csv

orders.csv è grande e si aggiorna continuamente: 125.000 righe e 9 colonne
Esempio del file raw orders.csv:

File raw del centro di distribuzione:
File raw degli ordini:
dbt seeddbt sourcedbt init genera automaticamente la struttura base:
looker_ecommerce/
macros/
models/
seeds/
snapshots/
tests/
dbt_project.yml
Carica distribution_center come seed:
looker_ecommerce/
macros/
models/
stg_looker__distribution_centers.sql
seeds/
looker__distribution_centers.csv
snapshots/
tests/
dbt_project.yml
In stg_looker__distribution_centers.sql:
SELECT
id,
name,
latitude,
longitude
FROM
{{ref('looker__distribution_centers')}}
Carica orders come source:
looker_ecommerce/
macros/
models/
stg_looker__orders.sql
seeds/
snapshots/
tests/
dbt_project.yml
In stg_looker__orders.sql:
SELECT *
FROM
{{source('looker_ecommerce', 'orders')}}
Per documentare le sources:
looker_ecommerce/
macros/
models/
_looker__sources.yml
seeds/
snapshots/
tests/
dbt_project.yml
In _looker__sources.yml:
version: 2
sources:
- name: looker_ecommerce
tables:
- name: orders
_looker__models.yml nella stessa cartella models:version: 2
models:
- name: stg_looker__distribution_centers
description: Nome e posizione dei centri di distribuzione
- name: stg_looker__orders
description: Info ordine, ad es. stato ordine
looker_ecommerce/
macros/
models/
_looker__models.yml
_looker__sources.yml
stg_looker__distribution_centers.sql
stg_looker__orders.sql
seeds/
looker__distribution_centers.csv
snapshots/
tests/
dbt_project.yml
Carica i file csv come seed
dbt seed
Crea o aggiorna tutti i modelli del progetto
dbt run
Crea o aggiorna il modello indicato
dbt run --select model
Esegue tutti i test del progetto
dbt test
Esegue i test per il modello indicato
dbt test --select model
Combina dbt run e dbt test in uno!
dbt build
dbt build --select model
Struttura nomi dei modelli:
<data_source>__<model_name>.sqles.:
stg_looker__distribution_centers.sqlstg_looker__orders.sqlStruttura nomi file yaml:
_<data_source>__<artifact_type>.ymles.:
_looker__models.yml_looker__sources.ymlCase Study: creazione di modelli di dati E‑Commerce con dbt