ANÚNCIO

~/questoes/dados

O que representa a estrutura YAML no contexto de um projeto dbt?

Responda, confira o feedback e use o resultado para orientar sua revisão.
Aula de referência dbt: guia completo com CI/CD
Para fixar

YAML no dbt: O Formato de Configuração Essencial

Conceito central

YAML é o formato de arquivo que dbt utiliza para definir as propriedades, comportamentos e relacionamentos de seus componentes principais: modelos, testes, seeds e snapshots. Ele funciona como o 'blueprint' que orienta como dbt deve processar e organizar suas transformações de dados.

Por que essa resposta faz sentido

YAML é um arquivo de configuração, não um formato binário ou protocolo de rede. No dbt, você usa YAML para declarar propriedades dos modelos (tipo de materialização, descrição, colunas testadas), definir testes de validação, carregar dados de referência através de seeds e capturar histórico de dados com snapshots. É o coração da configurabilidade do dbt.

Armadilhas comuns

  • Confundir YAML com SQL: YAML é configuração, SQL é transformação. Você escreve transformações em SQL e descreve suas propriedades em YAML.
  • Achar que YAML é apenas para modelos: YAML também configura testes, seeds, snapshots, documentação e comportamentos globais do projeto dbt.
  • Pensar que YAML compila ou executa: YAML é estático, apenas descreve intenções. O dbt lê essas intenções e executa ações baseado nelas.

Entenda as alternativas

A

YAML não é um formato binário para compressão de dados. É um formato de texto legível por humanos, baseado em indentação e pares chave-valor. Não serve para reduzir espaço em disco, mas sim para estruturar configurações de forma clara.

B

Exato. YAML é o formato que dbt usa em arquivos como dbt_project.yml, schema.yml e outros para definir como modelos devem se comportar, quais testes rodar, documentação de campos e relacionamentos entre tabelas.

C

YAML não é um protocolo de comunicação como HTTPS ou SSH. É um formato de dados para configuração. A comunicação entre dbt e o banco de dados é feita através de adapters (conexão SQL), não pelo YAML.

D

YAML não é uma linguagem de programação. Jinja é a linguagem de templating usada dentro do dbt para lógica dinâmica e macros. YAML é apenas declarativo: você escreve o 'o quê' fazer, não o 'como' fazer.

Dica prática: Comece abrindo um arquivo schema.yml em um projeto dbt real. Você verá na prática como chaves como 'materialized', 'tests', 'description' e 'columns' organizam toda a configuração de um modelo de forma legível e versionável no Git.

Revise pensando: Se YAML não é para escrever lógica ou código executável, para qual finalidade principal você usaria um arquivo .yml em um projeto dbt?