Studium przypadku: budowanie modeli danych e-commerce z dbt
Susan Sun
Freelance Data Scientist
Instalacja dbt
pip install dbt
Inicjalizacja projektu dbt looker_ecommerce
dbt init looker_ecommerce
Weryfikacja poprawności konfiguracji
cd looker_ecommerce
dbt debug
Struktura katalogów wygenerowana przez dbt:

distribution_centers.csv jest mały i statyczny – zawiera tylko 10 wierszy
Próbka surowego pliku danych distribution_centers.csv

orders.csv jest duży i stale aktualizowany – zawiera 125 000 wierszy i 9 kolumn
Próbka surowego pliku danych orders.csv:

Centrum dystrybucji – plik danych surowych:
Zamówienia – plik danych surowych:
dbt seeddbt sourcedbt init automatycznie generuje podstawową strukturę plików:
looker_ecommerce/
macros/
models/
seeds/
snapshots/
tests/
dbt_project.yml
Ładowanie distribution_center jako seed:
looker_ecommerce/
macros/
models/
stg_looker__distribution_centers.sql
seeds/
looker__distribution_centers.csv
snapshots/
tests/
dbt_project.yml
W stg_looker__distribution_centers.sql:
SELECT
id,
name,
latitude,
longitude
FROM
{{ref('looker__distribution_centers')}}
Ładowanie orders jako source:
looker_ecommerce/
macros/
models/
stg_looker__orders.sql
seeds/
snapshots/
tests/
dbt_project.yml
W stg_looker__orders.sql:
SELECT *
FROM
{{source('looker_ecommerce', 'orders')}}
Dokumentowanie sources:
looker_ecommerce/
macros/
models/
_looker__sources.yml
seeds/
snapshots/
tests/
dbt_project.yml
W _looker__sources.yml:
version: 2
sources:
- name: looker_ecommerce
tables:
- name: orders
_looker__models.yml w katalogu 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
Ładuje pliki csv jako pliki seed
dbt seed
Tworzy lub aktualizuje wszystkie modele w projekcie dbt
dbt run
Tworzy lub aktualizuje wskazany model
dbt run --select model
Uruchamia wszystkie testy w projekcie dbt
dbt test
Uruchamia testy dla wskazanego modelu
dbt test --select model
Łączy dbt run i dbt test w jednym!
dbt build
dbt build --select model
Struktura nazewnictwa modeli:
<data_source>__<model_name>.sqlnp.
stg_looker__distribution_centers.sqlstg_looker__orders.sqlStruktura nazewnictwa plików yaml:
_<data_source>__<artifact_type>.ymlnp.
_looker__models.yml_looker__sources.ymlStudium przypadku: budowanie modeli danych e-commerce z dbt