Tworzenie data martów i modeli snapshot w dbt

Studium przypadku: budowanie modeli danych e-commerce z dbt

Susan Sun

Freelance Data Scientist

Wprowadzenie do modeli data mart w dbt

Data marty to czyste i dostępne modele danych na końcu potoku.

Przypadki użycia

  • Feature stores dla zespołu data science
  • Zagregowane KPI dla zespołu finansowego
  • Metryki opóźnień dla zespołu inżynierskiego
  • Ogranicza powtarzalność przez przechowywanie SQL jako kodu
Studium przypadku: budowanie modeli danych e-commerce z dbt

Data marty e-commerce Looker

Klienci

Odpowiada na pytania:

Kim są nasi klienci?

Jakie są ich zachowania zakupowe?

Ziarnistość danych:

Jeden wiersz na klienta

Przykładowe kolumny:

Imię i nazwisko, wydana kwota

Produkty

Odpowiada na pytania:

Jakie są nasze przychody, koszty i zysk?

Ziarnistość danych:

Jeden wiersz na produkt

Przykładowe kolumny:

Kategoria produktu, przychód, zysk

Studium przypadku: budowanie modeli danych e-commerce z dbt

Data marty e-commerce Looker

Diagram skierowanego grafu acyklicznego przedstawiający wszystkie źródła i modele dbt oraz ich wzajemne relacje. Źródła zaznaczono na zielono, modele i marty na niebiesko.

Studium przypadku: budowanie modeli danych e-commerce z dbt

Budowanie krok po kroku

Krok 1: Dopracuj logikę SQL poza dbt, a następnie zastąp odwołania składnią dbt.

Zrzut ekranu przykładowego pliku z logiką SQL zawierającego różne CTE.

Krok 2: Dodaj testy danych i dokumentację

Zrzut ekranu przykładowego pliku YAML modeli dbt z opisami tabeli i kolumn.

Krok 3: Przetestuj kompilację! (np. dbt build)

Studium przypadku: budowanie modeli danych e-commerce z dbt

Wprowadzenie do modeli snapshot w dbt

Pięć statusów zamówień:

Processing, Shipped, Complete, Cancelled, i Returned

Przykładowe dane:

Podgląd pliku z danymi zamówień zawierającego dwa wiersze danych i 9 kolumn. Nazwy kolumn: order id, user id, status, gender, created at, returned at, shipped at, delivered at i num of items.

Studium przypadku: budowanie modeli danych e-commerce z dbt

Zamówienia: śledzenie zmiany statusu

  • Utwórz plik 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 %}
  • Uruchom konkretny model snapshot
dbt snapshot -s orders_snapshot.sql
  • Uruchom wszystkie modele snapshot
dbt snapshot
  • Uruchom wszystkie modele (w tym snapshoty)
dbt build
1 https://docs.getdbt.com/docs/build/snapshots
Studium przypadku: budowanie modeli danych e-commerce z dbt

Czas na ćwiczenia!

Studium przypadku: budowanie modeli danych e-commerce z dbt

Preparing Video For Download...