Fallstudie: Bygg e-handelsdatamodeller med dbt
Susan Sun
Freelance Data Scientist
Installera dbt
pip install dbt
Initiera dbt-projektet looker_ecommerce
dbt init looker_ecommerce
Verifiera att installationen lyckades
cd looker_ecommerce
dbt debug
Filkatalog autogenererad av dbt:

distribution_centers.csv är liten och statisk, med bara 10 rader
Ett urval av rådata från distribution_centers.csv

orders.csv är stor och uppdateras löpande, med 125 000 rader och 9 kolumner
Ett urval av rådata från orders.csv:

Distributionscenter – rådata:
Ordrar – rådata:
dbt seeddbt sourcedbt init autogenererar den grundläggande filstrukturen:
looker_ecommerce/
macros/
models/
seeds/
snapshots/
tests/
dbt_project.yml
Läs in distribution_center som seed:
looker_ecommerce/
macros/
models/
stg_looker__distribution_centers.sql
seeds/
looker__distribution_centers.csv
snapshots/
tests/
dbt_project.yml
I stg_looker__distribution_centers.sql:
SELECT
id,
name,
latitude,
longitude
FROM
{{ref('looker__distribution_centers')}}
Läs in orders som source:
looker_ecommerce/
macros/
models/
stg_looker__orders.sql
seeds/
snapshots/
tests/
dbt_project.yml
I stg_looker__orders.sql:
SELECT *
FROM
{{source('looker_ecommerce', 'orders')}}
Dokumentera sources:
looker_ecommerce/
macros/
models/
_looker__sources.yml
seeds/
snapshots/
tests/
dbt_project.yml
I _looker__sources.yml:
version: 2
sources:
- name: looker_ecommerce
tables:
- name: orders
_looker__models.yml i samma models-katalog: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
Läser in csv-filer som seed-filer
dbt seed
Skapar eller uppdaterar alla modeller i dbt-projektet
dbt run
Skapar eller uppdaterar den angivna modellen
dbt run --select model
Kör alla tester i dbt-projektet
dbt test
Kör tester för den angivna modellen
dbt test --select model
Kombinerar dbt run och dbt test i ett!
dbt build
dbt build --select model
Namnstruktur för modeller:
<data_source>__<model_name>.sqlt.ex.
stg_looker__distribution_centers.sqlstg_looker__orders.sqlNamnstruktur för yaml-filer:
_<data_source>__<artifact_type>.ymlt.ex.
_looker__models.yml_looker__sources.ymlFallstudie: Bygg e-handelsdatamodeller med dbt