Criando data marts e modelos de snapshot no dbt

Estudo de caso: criando modelos de dados de e-commerce com dbt

Susan Sun

Freelance Data Scientist

Apresentando modelos de data mart no dbt

Data marts são modelos de dados limpos e acessíveis no fim do pipeline.

Casos de uso

  • Feature stores para a equipe de data science
  • KPIs agregados para a equipe financeira
  • Métrica de latência para a equipe de engenharia
  • Reduz repetição ao guardar o SQL como código
Estudo de caso: criando modelos de dados de e-commerce com dbt

Data marts de e-commerce no Looker

Clientes

Responde às perguntas:

Quem são nossos clientes?

Quais são seus comportamentos de compra?

Granularidade dos dados:

Uma linha por cliente

Colunas de exemplo:

Nome do cliente, valor gasto pelos clientes

Produtos

Responde às perguntas:

Qual é nossa receita, custo e lucro?

Granularidade dos dados:

Uma linha por produto

Colunas de exemplo:

Categoria do produto, receita, lucro

Estudo de caso: criando modelos de dados de e-commerce com dbt

Data marts de e-commerce no Looker

Um grafo acíclico direcionado mostrando todas as fontes e modelos do dbt e seus relacionamentos; fontes em verde e modelos/marts em azul.

Estudo de caso: criando modelos de dados de e-commerce com dbt

Construindo passo a passo

Etapa 1: Refine a lógica SQL fora do dbt e, depois, troque referências pela sintaxe do dbt.

Uma captura de tela de um arquivo de lógica SQL com várias CTEs.

Etapa 2: Crie testes e documentação de dados

Uma captura de tela de um arquivo YAML de modelos do dbt com descrições de tabela e colunas para um modelo dbt

Etapa 3: Teste o build! (ex.: dbt build)

Estudo de caso: criando modelos de dados de e-commerce com dbt

Apresentando modelos de snapshot no dbt

Cinco status de pedido:

Processing, Shipped, Complete, Cancelled e Returned

Amostra de dados:

Uma prévia do arquivo de dados de pedidos com duas linhas e 9 colunas. Os nomes das colunas são order id, user id, status, gender, created at, returned at, shipped at, delivered at e num of items.

Estudo de caso: criando modelos de dados de e-commerce com dbt

Pedidos: mudança de status no snapshot

  • Crie o arquivo orders_snapshot.sql
{% snapshot orders_snapshot %}
{{
    config(target_schema='main',
      unique_key='order_id',
      strategy='timestamp',
      updated_at='created_at')
}}

SELECT * 
FROM 
{{source('looker_ecommerce', 'orders')}}

{% endsnapshot %}
  • Executar um modelo de snapshot específico
dbt snapshot -s orders_snapshot.sql
  • Executar todos os modelos de snapshot
dbt snapshot
  • Executar todos os modelos (inclui snapshots)
dbt build
1 https://docs.getdbt.com/docs/build/snapshots
Estudo de caso: criando modelos de dados de e-commerce com dbt

Vamos praticar!

Estudo de caso: criando modelos de dados de e-commerce com dbt

Preparing Video For Download...