Studiu de caz: Construirea modelelor de date pentru e-commerce cu dbt
Susan Sun
Freelance Data Scientist
Instalați dbt
pip install dbt
Inițializați proiectul dbt looker_ecommerce
dbt init looker_ecommerce
Verificați configurarea
cd looker_ecommerce
dbt debug
Directorul de fișiere generat automat de dbt:

distribution_centers.csv este mic și static, cu doar 10 rânduri
Un exemplu din fișierul brut distribution_centers.csv

orders.csv este mare și se actualizează continuu, cu 125.000 de rânduri și 9 coloane
Un exemplu din fișierul brut orders.csv:

Fișier de date brute centru de distribuție:
Fișier de date brute comenzi:
dbt seeddbt sourcedbt init generează automat structura de fișiere:
looker_ecommerce/
macros/
models/
seeds/
snapshots/
tests/
dbt_project.yml
Încărcați distribution_center ca seed:
looker_ecommerce/
macros/
models/
stg_looker__distribution_centers.sql
seeds/
looker__distribution_centers.csv
snapshots/
tests/
dbt_project.yml
În stg_looker__distribution_centers.sql:
SELECT
id,
name,
latitude,
longitude
FROM
{{ref('looker__distribution_centers')}}
Încărcați orders ca source:
looker_ecommerce/
macros/
models/
stg_looker__orders.sql
seeds/
snapshots/
tests/
dbt_project.yml
În stg_looker__orders.sql:
SELECT *
FROM
{{source('looker_ecommerce', 'orders')}}
Pentru a documenta sources:
looker_ecommerce/
macros/
models/
_looker__sources.yml
seeds/
snapshots/
tests/
dbt_project.yml
În _looker__sources.yml:
version: 2
sources:
- name: looker_ecommerce
tables:
- name: orders
_looker__models.yml în același director 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
Încarcă fișierele csv ca seed-uri
dbt seed
Creează sau actualizează toate modelele din proiectul dbt
dbt run
Creează sau actualizează modelul specificat
dbt run --select model
Rulează toate testele din proiectul dbt
dbt test
Rulează testele pentru modelul specificat
dbt test --select model
Combină dbt run și dbt test într-un singur pas!
dbt build
dbt build --select model
Structura de denumire a modelelor:
<data_source>__<model_name>.sqlEx.
stg_looker__distribution_centers.sqlstg_looker__orders.sqlStructura de denumire a fișierelor yaml:
_<data_source>__<artifact_type>.ymlEx.
_looker__models.yml_looker__sources.ymlStudiu de caz: Construirea modelelor de date pentru e-commerce cu dbt