Případová studie: Tvorba datových modelů pro e-commerce s dbt
Susan Sun
Freelance Data Scientist
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:

distribution_centers.csv je malý a statický soubor s pouhými 10 řádky
Ukázka zdrojového souboru distribution_centers.csv

orders.csv je velký soubor, který se průběžně aktualizuje – obsahuje 125 000 řádků a 9 sloupců
Ukázka zdrojového souboru orders.csv:

Distribuční centrum – zdrojový soubor:
Objednávky – zdrojový soubor:
dbt seeddbt sourcedbt init automaticky vygeneruje základní strukturu souborů:
looker_ecommerce/
macros/
models/
seeds/
snapshots/
tests/
dbt_project.yml
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')}}
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')}}
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
_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
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
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
Struktura názvů modelů:
<data_source>__<model_name>.sqlPříklad:
stg_looker__distribution_centers.sqlstg_looker__orders.sqlStruktura názvů yaml souborů:
_<data_source>__<artifact_type>.ymlPříklad:
_looker__models.yml_looker__sources.ymlPřípadová studie: Tvorba datových modelů pro e-commerce s dbt