Construirea datamarturilor dbt și a modelelor snapshot

Studiu de caz: Construirea modelelor de date pentru e-commerce cu dbt

Susan Sun

Freelance Data Scientist

Introducere în modelele datamart dbt

Datamarturile sunt modele de date curate și accesibile la finalul pipeline-ului.

Cazuri de utilizare

  • Feature stores pentru echipa de data science
  • KPI-uri agregate pentru echipa financiară
  • Metrici de latență pentru echipa de inginerie
  • Reduce redundanța prin stocarea SQL ca și cod
Studiu de caz: Construirea modelelor de date pentru e-commerce cu dbt

Datamarturile Looker e-commerce

Clienți

Răspunde la întrebările:

Cine sunt clienții noștri?

Care sunt comportamentele lor de cumpărare?

Granularitatea datelor:

Un rând per client

Coloane exemplu:

Numele clientului, suma cheltuită

Produse

Răspunde la întrebările:

Care sunt veniturile, costurile și profitul nostru?

Granularitatea datelor:

Un rând per produs

Coloane exemplu:

Categoria produsului, venituri, profit

Studiu de caz: Construirea modelelor de date pentru e-commerce cu dbt

Datamarturile Looker e-commerce

Diagramă DAG care prezintă toate sursele și modelele dbt și relațiile dintre ele. Sursele sunt afișate în verde. Modelele și datamarturile sunt afișate în albastru.

Studiu de caz: Construirea modelelor de date pentru e-commerce cu dbt

Construire pas cu pas

Pasul 1: Rafinați logica SQL în afara dbt, apoi înlocuiți referințele cu sintaxa dbt.

Captură de ecran a unui fișier SQL cu diverse CTE-uri.

Pasul 2: Creați teste de date și documentație

Captură de ecran a unui fișier YAML dbt cu descrieri de tabele și coloane pentru un model dbt.

Pasul 3: Testați build-ul! (ex. dbt build)

Studiu de caz: Construirea modelelor de date pentru e-commerce cu dbt

Introducere în modelele snapshot dbt

Cinci statusuri de comandă:

Processing, Shipped, Complete, Cancelled, și Returned

Eșantion de date:

O previzualizare a fișierului de date pentru comenzi, conținând două rânduri de date și 9 coloane. Numele coloanelor sunt: order id, user id, status, gender, created at, returned at, shipped at, delivered at și num of items.

Studiu de caz: Construirea modelelor de date pentru e-commerce cu dbt

Comenzi: urmărirea modificărilor de status

  • Creați fișierul 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 %}
  • Rulați un model snapshot specific
dbt snapshot -s orders_snapshot.sql
  • Rulați toate modelele snapshot
dbt snapshot
  • Rulați toate modelele (inclusiv snapshot)
dbt build
1 https://docs.getdbt.com/docs/build/snapshots
Studiu de caz: Construirea modelelor de date pentru e-commerce cu dbt

Să exersăm!

Studiu de caz: Construirea modelelor de date pentru e-commerce cu dbt

Preparing Video For Download...