Skip to content
Latchkey

O Que É um Data Contract? Acordos Entre Produtores e Consumidores de Dados Explicados

Um data contract é um acordo explícito e aplicável sobre o schema, a semântica e a qualidade dos dados entre a equipe que os produz e as equipes que os consomem.

Quebras de dados a jusante frequentemente começam a montante: um produtor renomeia uma coluna ou muda uma unidade sem avisar ninguém, e dashboards e modelos quebram silenciosamente. Um data contract torna essas expectativas explícitas e aplicáveis, para que uma mudança que quebra seja detectada na origem.

O que é um data contract

Um data contract é uma especificação versionada de um dataset: seus campos e tipos, valores permitidos, semântica, atualidade e propriedade. Como um contrato de API, ele estabelece expectativas claras entre produtor e consumidor, para que nenhum dos lados mude o comportamento unilateralmente.

Por que as equipes os adotam

À medida que as plataformas de dados crescem, muitas equipes dependem das tabelas umas das outras. Sem contracts, uma mudança a montante repercute em falhas silenciosas a jusante. Os contracts deslocam a falha para a esquerda: uma mudança do produtor que viola o contract falha no pipeline do produtor, e não em um dashboard do consumidor uma semana depois.

Como são aplicados

Um contract é escrito como uma especificação legível por máquina (frequentemente YAML ou JSON Schema). A aplicação roda como uma verificação que compara os dados ou o schema reais com o contract e falha em uma mudança que quebra. Ferramentas como dbt contracts e schema registries dão suporte a isso.

Data contracts em CI

Valide o contract no pipeline do produtor a cada mudança, para que uma quebra de schema ou de semântica seja bloqueada antes do merge.

Enforcing a data contract in CI
steps:
  - run: datacontract test --server warehouse contract.yaml
  - run: dbt build --select my_model   # fails if contract breaks

Nota Latchkey

As verificações de contract consultam o warehouse ou leem dados de amostra a cada pull request. No Latchkey, fazer cache do toolchain mantém essas verificações rápidas, e o auto-retry evita que uma falha momentânea de conexão com o warehouse seja confundida com uma violação de contract.

Principais conclusões

  • Um data contract é um acordo aplicável sobre o schema, a semântica e a qualidade de um dataset entre produtor e consumidor.
  • Ele detecta mudanças que quebram no pipeline do produtor em vez de nos dashboards e modelos a jusante.
  • Contracts são especificações legíveis por máquina, aplicadas como uma verificação de CI a cada mudança.

Guias relacionados