Estudo de caso: criando modelos de dados de e-commerce com dbt
Susan Sun
Freelance Data Scientist
Instale o dbt
pip install dbt
Inicialize o projeto dbt looker_ecommerce
dbt init looker_ecommerce
Verifique se deu certo
cd looker_ecommerce
dbt debug
Diretório de arquivos gerados automaticamente pelo dbt:

distribution_centers.csv é pequeno e estático, com apenas 10 linhas
Uma amostra do arquivo bruto distribution_centers.csv

orders.csv é grande e está sempre atualizando, com 125.000 linhas e 9 colunas
Uma amostra do arquivo bruto orders.csv:

Arquivo bruto de dados de centro de distribuição:
Arquivo bruto de dados de pedidos:
dbt seeddbt sourcedbt init gera automaticamente a estrutura básica de arquivos:
looker_ecommerce/
macros/
models/
seeds/
snapshots/
tests/
dbt_project.yml
Carregue distribution_center como seed:
looker_ecommerce/
macros/
models/
stg_looker__distribution_centers.sql
seeds/
looker__distribution_centers.csv
snapshots/
tests/
dbt_project.yml
Em stg_looker__distribution_centers.sql:
SELECT
id,
name,
latitude,
longitude
FROM
{{ref('looker__distribution_centers')}}
Carregue orders como source:
looker_ecommerce/
macros/
models/
stg_looker__orders.sql
seeds/
snapshots/
tests/
dbt_project.yml
Em stg_looker__orders.sql:
SELECT *
FROM
{{source('looker_ecommerce', 'orders')}}
Para documentar sources:
looker_ecommerce/
macros/
models/
_looker__sources.yml
seeds/
snapshots/
tests/
dbt_project.yml
Em _looker__sources.yml:
version: 2
sources:
- name: looker_ecommerce
tables:
- name: orders
_looker__models.yml no mesmo diretório models:version: 2
models:
- name: stg_looker__distribution_centers
description: Nome e localização do centro de distribuição
- name: stg_looker__orders
description: Informações do pedido, como 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
Carrega arquivos csv como seeds
dbt seed
Cria ou atualiza todos os modelos do projeto dbt
dbt run
Cria ou atualiza o modelo especificado
dbt run --select model
Executa todos os testes do projeto dbt
dbt test
Executa testes para o modelo especificado
dbt test --select model
Combina dbt run e dbt test em um só!
dbt build
dbt build --select model
estrutura de nomes de models:
<data_source>__<model_name>.sqlex.:
stg_looker__distribution_centers.sqlstg_looker__orders.sqlestrutura de nomes de arquivos yaml:
_<data_source>__<artifact_type>.ymlex.:
_looker__models.yml_looker__sources.ymlEstudo de caso: criando modelos de dados de e-commerce com dbt