Casestudy: e-commercedatamodellen bouwen met dbt
Susan Sun
Freelance Data Scientist
Installeer dbt
pip install dbt
Initialiseer dbt-project looker_ecommerce
dbt init looker_ecommerce
Controleer of alles werkt
cd looker_ecommerce
dbt debug
Door dbt gegenereerde mapstructuur:

distribution_centers.csv is klein en statisch, slechts 10 rijen
Voorbeeld van de ruwe distribution_centers.csv-datafile

orders.csv is groot en wordt voortdurend bijgewerkt: 125.000 rijen en 9 kolommen
Voorbeeld van de ruwe orders.csv-datafile:

Ruwe datafile Distribution center:
Ruwe datafile Orders:
dbt seeddbt sourcedbt init genereert automatisch de basisstructuur:
looker_ecommerce/
macros/
models/
seeds/
snapshots/
tests/
dbt_project.yml
Laad distribution_center als seed:
looker_ecommerce/
macros/
models/
stg_looker__distribution_centers.sql
seeds/
looker__distribution_centers.csv
snapshots/
tests/
dbt_project.yml
In stg_looker__distribution_centers.sql:
SELECT
id,
name,
latitude,
longitude
FROM
{{ref('looker__distribution_centers')}}
Laad orders als source:
looker_ecommerce/
macros/
models/
stg_looker__orders.sql
seeds/
snapshots/
tests/
dbt_project.yml
In stg_looker__orders.sql:
SELECT *
FROM
{{source('looker_ecommerce', 'orders')}}
Documenteer sources:
looker_ecommerce/
macros/
models/
_looker__sources.yml
seeds/
snapshots/
tests/
dbt_project.yml
In _looker__sources.yml:
version: 2
sources:
- name: looker_ecommerce
tables:
- name: orders
_looker__models.yml in dezelfde models-map:version: 2
models:
- name: stg_looker__distribution_centers
description: Naam en locatie van distributiecentra
- name: stg_looker__orders
description: Bestelinformatie zoals bestelstatus
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
Laadt csv-bestanden als seeds
dbt seed
Maakt of werkt alle modellen bij
dbt run
Maakt of werkt het opgegeven model bij
dbt run --select model
Voert alle tests uit
dbt test
Voert tests uit voor het opgegeven model
dbt test --select model
Combineert dbt run en dbt test in één
dbt build
dbt build --select model
naamgeving models:
<data_source>__<model_name>.sqlbijv.
stg_looker__distribution_centers.sqlstg_looker__orders.sqlnaamgeving yaml-bestanden:
_<data_source>__<artifact_type>.ymlbijv.
_looker__models.yml_looker__sources.ymlCasestudy: e-commercedatamodellen bouwen met dbt