Nastavení projektu dbt a načtení dat

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

Susan Sun

Freelance Data Scientist

Opakování: nastavení a inicializace dbt

Instalace dbt

pip install dbt

Inicializace projektu dbt looker_ecommerce

dbt init looker_ecommerce

Ověření úspěšného nastavení

cd looker_ecommerce
dbt debug

Adresářová struktura vygenerovaná dbt:

Snímek obrazovky z předchozí lekce. Zobrazuje sérii adresářů automaticky vygenerovaných příkazem dbt init. Složka nejvyšší úrovně se jmenuje looker e-commerce. Podsložky jsou pojmenovány analyses, macros, models, seeds, snapshots a tests. Jsou zde také tři soubory: gitignore, dbt project yaml a readme markdown.

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

Seznámení s daty: distribuční centra

  • distribution_centers.csv je malý a statický soubor s pouhými 10 řádky

  • Ukázka zdrojového souboru distribution_centers.csv

Náhled souboru dat distribučních center obsahující tři řádky dat a 4 sloupce. Názvy sloupců jsou id, name, latitude a longitude.

  • id: Jedinečný identifikátor každého distribučního centra
  • name: Název distribučního centra
  • latitude: Zeměpisná šířka distribučního centra
  • longitude: Zeměpisná délka distribučního centra
Případová studie: Tvorba datových modelů pro e-commerce s dbt

Seznámení s daty: objednávky

orders.csv je velký soubor, který se průběžně aktualizuje – obsahuje 125 000 řádků a 9 sloupců

  • order_id: Jedinečné ID každé položky objednávky
  • user_id: ID uživatele, který zadal objednávku
  • status: Stav objednávky
  • gender: Pohlaví uživatele
  • created_at: Časové razítko vytvoření objednávky
  • returned_at: Časové razítko vrácení objednávky
  • shipped_at: Časové razítko odeslání objednávky
  • delivered_at: Časové razítko doručení objednávky
  • num_of_items: Počet položek v objednávce
Případová studie: Tvorba datových modelů pro e-commerce s dbt

Seznámení s daty: objednávky

Ukázka zdrojového souboru orders.csv:

Náhled souboru dat 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

Nastavení zdrojových a seed datových zdrojů

Distribuční centrum – zdrojový soubor:

  • Charakteristika dat:
    • Malý, plochý soubor (csv)
    • Pomalu se měnící data

Objednávky – zdrojový soubor:

  • Charakteristika dat:
    • Velký dataset
    • Rychle se měnící data
  • Metoda načtení dbt:
    • dbt seed
    • Načtení jako jednorázový soubor
  • Metoda načtení dbt:
    • dbt source
    • Konektor k DuckDB
Případová studie: Tvorba datových modelů pro e-commerce s dbt

Nastavení zdrojových a seed datových zdrojů

dbt init automaticky vygeneruje základní strukturu souborů:

looker_ecommerce/
  macros/
  models/
  seeds/
  snapshots/
  tests/
  dbt_project.yml
Případová studie: Tvorba datových modelů pro e-commerce s dbt

Nastavení zdrojových a seed datových zdrojů

Načtení distribution_center jako seed:

looker_ecommerce/
  macros/
  models/
    stg_looker__distribution_centers.sql
  seeds/
    looker__distribution_centers.csv
  snapshots/
  tests/
  dbt_project.yml

V stg_looker__distribution_centers.sql:

SELECT 
  id,
  name,
  latitude,
  longitude
FROM 
 {{ref('looker__distribution_centers')}}
Případová studie: Tvorba datových modelů pro e-commerce s dbt

Nastavení zdrojových a seed datových zdrojů

Načtení orders jako source:

looker_ecommerce/
  macros/
  models/
    stg_looker__orders.sql
  seeds/
  snapshots/
  tests/
  dbt_project.yml

V stg_looker__orders.sql:

SELECT *
FROM 
{{source('looker_ecommerce', 'orders')}}
Případová studie: Tvorba datových modelů pro e-commerce s dbt

Dokumentace zdrojů a staging modelů

Dokumentace sources:

looker_ecommerce/
  macros/
  models/
    _looker__sources.yml
  seeds/
  snapshots/
  tests/
  dbt_project.yml

V _looker__sources.yml:

version: 2

sources:
  - name: looker_ecommerce
    tables:
      - name: orders
Případová studie: Tvorba datových modelů pro e-commerce s dbt

Dokumentace zdrojů a staging modelů

  • Ukázkový soubor _looker__models.yml ve stejném adresáři models:
version: 2

models:
  - name: stg_looker__distribution_centers
    description: Distribution center name and location    

  - name: stg_looker__orders
    description: Order information such as order status
Případová studie: Tvorba datových modelů pro e-commerce s dbt

Zdroje, seeds, modely a yaml

looker_ecommerce/
  macros/
  models/
    _looker__models.yml
    _looker__sources.yml
    stg_looker__distribution_centers.sql
    stg_looker__orders.sql
  seeds/
    looker__distribution_centers.csv
  snapshots/
  tests/
  dbt_project.yml
Případová studie: Tvorba datových modelů pro e-commerce s dbt

Opakování: příkazy dbt

Načte csv soubory jako seed soubory

dbt seed

Vytvoří nebo aktualizuje všechny modely v projektu dbt

dbt run

Vytvoří nebo aktualizuje zadaný model

dbt run --select model

Spustí všechny testy v projektu dbt

dbt test 

Spustí testy pro zadaný model

dbt test --select model

Spojí dbt run a dbt test do jednoho příkazu!

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

Opakování: pokyny pro osvědčené postupy

Struktura názvů modelů:

  • Dvojité podtržítko odděluje název zdroje dat od názvu modelu
  • <data_source>__<model_name>.sql

Příklad:

  • stg_looker__distribution_centers.sql
  • stg_looker__orders.sql

Struktura názvů yaml souborů:

  • Začíná jednoduchým podtržítkem
  • Dvojité podtržítko odděluje název zdroje dat od typu artefaktu
  • _<data_source>__<artifact_type>.yml

Příklad:

  • _looker__models.yml
  • _looker__sources.yml
1 https://docs.getdbt.com/best-practices
Případová studie: Tvorba datových modelů pro e-commerce s dbt

Lass uns üben!

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

Preparing Video For Download...