Vytváření dbt datových tržišť a snímkových modelů

Případová studie: Tvorba datových modelů pro e-commerce s dbt

Susan Sun

Freelance Data Scientist

Úvod do datových tržišť dbt

Datová tržiště jsou čisté a přístupné datové modely na konci pipeline.

Případy použití

  • Úložiště příznaků pro tým datové vědy
  • Agregované KPI pro finanční tým
  • Metriky latence pro technický tým
  • Omezuje opakování ukládáním SQL jako kódu
Případová studie: Tvorba datových modelů pro e-commerce s dbt

Datová tržiště Looker e-commerce

Zákazníci

Odpovídá na otázky:

Kdo jsou naši zákazníci?

Jaké jsou jejich nákupní chování?

Granularita dat:

Jeden řádek na zákazníka

Ukázkové sloupce:

Jméno zákazníka, celková útrata

Produkty

Odpovídá na otázky:

Jaké jsou naše tržby, náklady a zisk?

Granularita dat:

Jeden řádek na produkt

Ukázkové sloupce:

Kategorie produktu, tržby, zisk

Případová studie: Tvorba datových modelů pro e-commerce s dbt

Datová tržiště Looker e-commerce

Diagram orientovaného acyklického grafu zobrazující všechny zdroje a modely dbt a jejich vztahy. Zdroje jsou znázorněny zeleně, modely a tržiště modře.

Případová studie: Tvorba datových modelů pro e-commerce s dbt

Postup krok za krokem

Krok 1: Nejprve upravte SQL logiku mimo dbt, poté nahraďte odkazy syntaxí dbt.

Snímek obrazovky ukázkového souboru SQL logiky s různými CTE.

Krok 2: Vytvořte datové testy a dokumentaci

Snímek obrazovky ukázkového YAML souboru modelů dbt s popisem tabulek a sloupců.

Krok 3: Otestujte sestavení! (např. dbt build)

Případová studie: Tvorba datových modelů pro e-commerce s dbt

Úvod do snímkových modelů dbt

Pět stavů objednávky:

Processing, Shipped, Complete, Cancelled, a Returned

Ukázka dat:

Náhled souboru s daty objednávek obsahující dva řádky dat a 9 sloupců. Názvy sloupců jsou: order id, user id, status, gender, created at, returned at, shipped at, delivered at a num of items.

Případová studie: Tvorba datových modelů pro e-commerce s dbt

Objednávky: sledování změn stavu

  • Vytvořte soubor 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 %}
  • Spuštění konkrétního snímkového modelu
dbt snapshot -s orders_snapshot.sql
  • Spuštění všech snímkových modelů
dbt snapshot
  • Spuštění všech modelů (včetně snímků)
dbt build
1 https://docs.getdbt.com/docs/build/snapshots
Případová studie: Tvorba datových modelů pro e-commerce s dbt

Pojďme si procvičit!

Případová studie: Tvorba datových modelů pro e-commerce s dbt

Preparing Video For Download...