Creare data mart e snapshot model in dbt

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

Susan Sun

Freelance Data Scientist

Introduzione ai data mart in dbt

I data mart sono modelli puliti e accessibili a fine pipeline.

Casi d’uso

  • Feature store per il team data science
  • KPI aggregati per il team finance
  • Metriche di latenza per il team engineering
  • Riduce la ripetizione salvando la SQL come codice
Case Study: creazione di modelli di dati E‑Commerce con dbt

Data mart e-commerce di Looker

Clienti

Risponde a:

Chi sono i nostri clienti?

Quali sono i loro comportamenti d’acquisto?

Grana dei dati:

Una riga per cliente

Colonne di esempio:

Nome cliente, importo speso

Prodotti

Risponde a:

Quali sono ricavi, costi e profitti?

Grana dei dati:

Una riga per prodotto

Colonne di esempio:

Categoria prodotto, ricavi, profitti

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

Data mart e-commerce di Looker

Un diagramma DAG che mostra tutte le fonti e i model dbt e le loro relazioni. Le sorgenti sono in verde. I model e i mart sono in blu.

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

Costruzione passo dopo passo

Passo 1: Affina la logica SQL fuori da dbt, poi sostituisci i riferimenti con la sintassi dbt.

Screenshot di una logica SQL di esempio con varie CTE.

Passo 2: Crea test e documentazione

Screenshot di un file YAML di model dbt con descrizioni di tabelle e colonne per un model

Passo 3: Testa il build! (es. dbt build)

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

Introduzione agli snapshot model in dbt

Cinque stati ordine:

Processing, Shipped, Complete, Cancelled, e Returned

Esempio di dati:

Anteprima del file ordini con due righe di dati e 9 colonne. I nomi colonna sono order id, user id, status, gender, created at, returned at, shipped at, delivered at e num of items.

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

Ordini: variazione dello stato nello snapshot

  • Crea il file orders_snapshot.sql
{% snapshot orders_snapshot %}
{{
    config(target_schema='main',
      unique_key='order_id',
      strategy='timestamp',
      updated_at='created_at')
}}

SELECT * 
FROM 
{{source('looker_ecommerce', 'orders')}}

{% endsnapshot %}
  • Esegui uno snapshot model specifico
dbt snapshot -s orders_snapshot.sql
  • Esegui tutti gli snapshot model
dbt snapshot
  • Esegui tutti i model (inclusi snapshot)
dbt build
1 https://docs.getdbt.com/docs/build/snapshots
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...