Bygga dbt-datamarters och snapshot-modeller

Fallstudie: Bygg e-handelsdatamodeller med dbt

Susan Sun

Freelance Data Scientist

Introduktion till dbt-datamartmodeller

Datamarters är rena och tillgängliga datamodeller i slutet av pipeline:n.

Användningsområden

  • Feature stores för datavetenskapsteamet
  • Aggregerade KPI:er för ekonomiteamet
  • Latensmetrik för teknikteamet
  • Minskar upprepning genom att lagra SQL som kod
Fallstudie: Bygg e-handelsdatamodeller med dbt

Looker e-handelsdatamartsmodeller

Kunder

Besvarar frågorna:

Vilka är våra kunder?

Vad har de för köpbeteenden?

Datagranularitet:

En rad per kund

Exempelkolumner:

Kundnamn, belopp som kunder spenderat

Produkter

Besvarar frågorna:

Vad är vår intäkt, kostnad och vinst?

Datagranularitet:

En rad per produkt

Exempelkolumner:

Produktkategori, intäkt, vinst

Fallstudie: Bygg e-handelsdatamodeller med dbt

Looker e-handelsdatamartsmodeller

Ett diagram över en riktad acyklisk graf som visar alla dbt-källor och modeller samt deras inbördes relationer. Källor visas i grönt. Modeller och martsmodeller visas i blått.

Fallstudie: Bygg e-handelsdatamodeller med dbt

Bygga steg för steg

Steg 1: Förfina SQL-logiken utanför dbt och ersätt sedan referenser med dbt-syntax.

En skärmbild av en SQL-logikfil med flera CTE:er.

Steg 2: Bygg datatester och dokumentation

En skärmbild av en YAML-fil för dbt-modeller med tabell- och kolumnbeskrivningar för en dbt-modell.

Steg 3: Testa bygget! (t.ex. dbt build)

Fallstudie: Bygg e-handelsdatamodeller med dbt

Introduktion till dbt-snapshotmodeller

Fem orderstatus:

Processing, Shipped, Complete, Cancelled och Returned

Dataurval:

En förhandsgranskning av orderdatafilen med två datarader och 9 kolumner. Kolumnnamnen är order id, user id, status, gender, created at, returned at, shipped at, delivered at och num of items.

Fallstudie: Bygg e-handelsdatamodeller med dbt

Orders: spåra statusändringar med snapshot

  • Skapa filen 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 %}
  • Kör en specifik snapshotmodell
dbt snapshot -s orders_snapshot.sql
  • Kör alla snapshotmodeller
dbt snapshot
  • Kör alla modeller (inklusive snapshots)
dbt build
1 https://docs.getdbt.com/docs/build/snapshots
Fallstudie: Bygg e-handelsdatamodeller med dbt

Nu kör vi en övning!

Fallstudie: Bygg e-handelsdatamodeller med dbt

Preparing Video For Download...