ANÚNCIO

~/questoes/dados

O que é um modelo (model) no contexto de dbt?

Responda, confira o feedback e use o resultado para orientar sua revisão.
Aula de referência dbt: visão geral para engenharia e modelagem de dados
Para fixar

O que é um Modelo (Model) no dbt?

Conceito central

Um modelo em dbt é uma consulta SQL que foi transformada em um componente reutilizável e versionável, representando uma tabela ou visualização dentro do seu data warehouse. Modelos são o coração de dbt: eles organizam suas transformações de dados de forma modular, permitindo que você construa camadas de dados refinadas e fáceis de manter.

Por que essa resposta faz sentido

A alternativa C está correta porque define modelo exatamente como é na prática: uma consulta SQL que ganha superpoderes de reutilização, versionamento e integração com o projeto dbt. Diferentemente de SQL solto, um modelo em dbt pode ser referenciado por outros modelos, testado automaticamente e documentado de forma integrada.

Armadilhas comuns

  • Confundir modelo com configuração: modelos são arquivos SQL, não arquivos YAML de configuração.
  • Pensar que modelo é apenas uma tabela: modelos podem ser materializados como tabelas, visualizações (views) ou tabelas incrementais, dependendo da sua necessidade.
  • Achar que modelos são estáticos: modelos são vivos; quando você os altera e executa dbt run, as tabelas ou visões no warehouse são atualizadas automaticamente.

Entenda as alternativas

A

Configurações YAML que definem credenciais pertencem aos arquivos de conexão (profiles.yml) ou variáveis de ambiente, não são modelos. Modelos são os arquivos .sql que contêm a transformação de dados.

B

Visualização de dados é função de ferramentas como Tableau ou Looker, não do dbt. dbt gera as tabelas e visões no warehouse; a visualização dos dados acontece em ferramentas de BI integradas depois.

C

Essa é a definição correta. Um modelo é um arquivo SQL que dbt transforma em um componente reutilizável. Você pode referenciar um modelo dentro de outro modelo, versioná-lo com Git e aplicar testes automaticamente.

D

Pacotes externos ampliam funcionalidades de dbt (como dbt-utils ou dbt-expectations), mas não são a definição de modelo. Um modelo é um componente nativo e central do dbt, não uma extensão.

Dica prática: Comece criando modelos simples em camadas: primeiro um modelo staging que traz dados brutos de uma source, depois modelos intermediários que combinam e refinam, e por fim modelos de marts prontos para análise. Essa estrutura em camadas torna fácil encontrar bugs e reutilizar lógica.

Revise pensando: Se você fosse explicar para um colega o que é um modelo em dbt, qual seria a diferença principal entre escrever SQL direto no warehouse e criar um modelo em dbt?