ANÚNCIO

~/questoes/dados

Quais são as principais opções de materialização de dados em 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

Materialização de Dados em dbt: Tabelas, Views e Incrementais

Conceito central

Materialização em dbt refere-se à forma como os modelos (transformações SQL) são armazenados no data warehouse. Existem três opções principais, cada uma com características e casos de uso diferentes: table (tabela física), view (visualização SQL) e incremental (atualização eficiente de dados).

Por que essa resposta faz sentido

A resposta correta é table, view e incremental. Essas são as três formas nativas de materialização disponíveis em dbt. Cada uma oferece um balanço diferente entre performance, custo de armazenamento e velocidade de processamento, permitindo que o engenheiro escolha a melhor opção conforme o contexto.

Armadilhas comuns

  • Confundir materialização de dbt com formatos de arquivo (Parquet, CSV, Delta). Materialização é sobre como dbt constrói o objeto no warehouse, não o formato em que é armazenado.
  • Achar que incremental é apenas para dados muito grandes. Incremental é útil quando você tem atualização frequente e quer economizar processamento, independente do tamanho.
  • Pensar que a escolha de materialização é automática. Em dbt, você define explicitamente no arquivo YAML de cada modelo qual tipo usar conforme sua estratégia de pipeline.

Entenda as alternativas

A

Essa alternativa está incompleta. Embora incremental seja realmente eficiente para atualizações, dbt oferece mais duas opções além desta. Pensar que existe apenas uma forma de materialização limitaria muito as possibilidades de design de pipelines.

B

Parquet, CSV e Delta Lake são formatos de arquivo ou tipos de storage, não tipos de materialização em dbt. Essa confusão pode surgir porque alguns warehouses suportam esses formatos, mas a materialização em dbt é um conceito diferente e independente de formato.

C

Table cria uma tabela física persistida no warehouse (ideal para dados consultados frequentemente). View cria uma visão SQL que consulta dados sob demanda (leve, mas reflete sempre a lógica mais recente). Incremental atualiza apenas dados novos ou modificados, economizando processamento (perfeito para dados históricos grandes).

D

Essa alternativa ignora o tipo incremental, que é justamente um dos diferenciais de dbt. Além disso, table e view não são definidas automaticamente pelo tamanho do modelo; o engenheiro escolhe explicitamente qual estratégia usar, considerando padrões de acesso e volume.

Dica prática: Na prática, comece sempre com views enquanto desenvolve sua pipeline (é rápido testar). Quando a model estabilizar e for consultada frequentemente em produção, converta para table. Use incremental apenas quando tiver dados históricos volumosos e updates frequentes—é mais complexo de debugar.

Revise pensando: Se você tem uma tabela de fatos com 1 bilhão de linhas que recebe 100 mil linhas novas por dia, qual materialização tornaria seu pipeline mais eficiente?