Pular para o conteúdo

Além da ementa · tema 28 de 30

DataOps e observabilidade

35 min · 2 vídeos · 14 cards · 2 drill

Por que cai

Todo candidato sabe construir um pipeline. A banca quer saber o que acontece quando ele quebra em silêncio, que é o modo de falha mais caro em banco. Este tema separa quem entrega job de quem entrega dado confiável.

Pré-teste · 1 de 2

responda antes de ver

O job de ingestão de PIX rodou com sucesso, mas hoje trouxe 3% do volume habitual. Qual sinal de observabilidade pegaria isso?

Confiança:

Vídeo · português · 5 min

Cinco minutos que te dão o vocabulário exato para responder a pergunta-chave deste tema. Assista e depois tente listar os pilares de memória, porque é assim que a resposta oral sai organizada.

Em uma frase

DataOps é aplicar disciplina de engenharia de software ao pipeline; observabilidade é o conjunto de sinais que te avisa que o dado quebrou, e não só que o job falhou.

Job verde não é dado certo

Essa é a frase que ancora o tema inteiro. O Spark termina com sucesso lendo um arquivo vazio. O MERGE roda perfeitamente com a regra de negócio errada. O orquestrador pinta tudo de verde e o erro só aparece quando um diretor abre o relatório de fraude com número estranho.

Tratar pipeline como software é o que fecha esse vão: código versionado, revisão por par, teste automatizado, ambientes separados, deploy reproduzível, rollback possível. Sai o script no notebook, entra o artefato com ciclo de vida.

Teste de dados: seis famílias

TestePergunta que ele fazExemplo bancário
EsquemaA estrutura é a contratada?O core renomeou vlr_transacao e a coluna sumiu
VolumeChegou a quantidade esperada?Ingestão de PIX trouxe 3% do volume de uma terça normal
NulosCampo obrigatório veio preenchido?data_liquidacao vazia em 12% dos registros
DomínioOs valores estão na lista aceita?tipo_operacao trouxe um código novo que ninguém trata
UnicidadeA chave de negócio se repete?Transação duplicada depois de reprocessar
IntegridadeAs chaves existem do outro lado?id_cliente órfão na dimensão de clientes

Três ferramentas para citar, uma frase cada. Great Expectations: você declara expectativas em Python, roda sobre Spark ou pandas e recebe relatório do que passou. dbt tests: asserções no YAML do modelo — unique, not_null, accepted_values, relationships — mais testes singulares em SQL. Deequ: biblioteca da Amazon sobre Spark que calcula métricas e verifica restrições em escala, com o AWS Glue Data Quality como versão gerenciada.

Contrato de dados

Contrato é o acordo entre quem produz e quem consome, e vale mais que qualquer teste isolado. Precisa ter esquema, semântica de cada campo, granularidade, prazo de entrega, política de mudança com aviso prévio e consequência declarada quando alguém quebra. Sem consequência, é documentação.

O contrato só existe de verdade quando vira teste executável na entrada da bronze: mudança compatível, como coluna nova, passa; incompatível, como troca de tipo, para o pipeline e avisa o produtor.

Linhagem

linhagemRegistro de origem e destino de cada tabela e coluna ao longo do pipeline. responde duas perguntas caras: análise de impacto (quais dashboards param se esta tabela estiver errada) e causa raiz (de onde veio o número torto). OpenLineage é a especificação aberta para esses eventos, com integrações para orquestradores e motores, para a linhagem não ficar presa a uma ferramenta só. No Databricks, o Unity Catalog captura linhagem até o nível de coluna.

Os quatro sinais

Freshness: há quanto tempo a tabela foi atualizada, contra o SLA. Volume: quantos registros chegaram, contra a faixa histórica do dia da semana. Schema: a estrutura mudou sem aviso. Distribuição: os valores continuam com a cara de sempre — média, nulos, cardinalidade. Muitas listas somam linhagem como quinto pilar.

A diferença para teste: teste afirma uma regra que você conhece e falha o pipeline. Observabilidade detecta desvio de comportamento que você não enunciou.

Alerta útil e alerta ignorado

Alerta útil é acionável, tem dono nomeado, tem limiar tirado do histórico e traz contexto para começar a investigar. Notificação de job que terminou bem não é alerta.

Reprocessamento idempotente

Rodar a mesma janela duas vezes precisa produzir o mesmo resultado. Na prática: escrita por partição com overwrite dinâmico, ou MERGE pela chave de negócio. Append cego é a causa número um de transação duplicada em fato. Idempotência é o que transforma reprocessamento de operação de risco em rotina.

CI/CD, IaC e versionamento

  1. 1Em CI, sem dado de produção: valide contrato e esquema, rode a transformação sobre amostra sintética com casos de borda, e um teste de fumaça ponta a ponta em ambiente reduzido
  2. 2Mantenha ambientes separados — desenvolvimento, homologação, produção — com o mesmo código e configuração por variável
  3. 3Em CD, faça deploy do artefato versionado e mantenha o caminho de rollback testado

IaC fecha a conta: Terraform descreve bucket, catálogo, permissão, cluster e job como código revisável, e recria o ambiente igual. Docker empacota a dependência do job para o que rodou no seu laptop rodar igual no cluster. Ambiente clicado na console é ambiente que ninguém consegue reproduzir depois do incidente.

Versionamento de dado é a última peça: Delta com time travel por versão ou timestamp, Iceberg com snapshots. Permite comparar antes e depois de um reprocessamento e voltar atrás sem restaurar backup.

Como responder isso em voz alta

Comece pela distinção job versus dado. Liste as famílias de teste com um exemplo bancário cada. Passe para os quatro sinais. Feche dizendo como prioriza cobertura por criticidade, porque testar tudo igual é o que faz o time abandonar a prática.

Se quiser outro ângulo

Talk longa de engenheira de dados mostrando monitoração de pipeline na prática, em contexto de mercado financeiro. Vale assistir acelerado, procurando quais métricas ela escolheu instrumentar e por quê.

Como cai na sabatina

Como você descobre que um pipeline entregou dado errado antes do usuário descobrir?

Erros comuns

  • Confundir monitoramento de job com observabilidade de dado. Job verde e dado errado é o cenário mais comum: o pipeline rodou, só entregou lixo.
  • Testar só na camada final. Quando o erro aparece na gold, a causa já está três camadas atrás e o reprocessamento é caro.
  • Alertar em tudo. Alerta que dispara toda semana e ninguém investiga é ruído: treina o time a ignorar, incluindo o alerta que importava.
  • Achar que contrato de dados é documentação. Contrato é acordo com esquema, semântica, prazo e consequência declarada quando alguém quebra.
  • Reprocessar com append. Rodar o mesmo dia duas vezes e duplicar transação é o defeito mais visível de pipeline não idempotente.
  • Deixar CI/CD de fora porque 'não dá para testar sem dado de produção'. Dá: esquema, transformação em amostra sintética e contrato são testáveis sem tocar em PII.
  • Tratar linhagem como diagrama bonito. Linhagem é o que responde, às três da manhã, quais dashboards param se esta tabela estiver errada.

Flashcards

Card 1 de 14

0 certos · 0 a rever

Drill

Que teste pegaria esse defeito?

Para cada defeito real de pipeline bancário, escolha o teste que o pega mais cedo. Responda antes de abrir.

  1. 1.A origem renomeou vlr_transacao para valor_transacao e a coluna sumiu na silver.

  2. 2.O campo tipo_operacao passou a trazer o valor PIX_AGENDADO, que nenhuma regra downstream conhece.

  3. 3.A mesma transação de cartão apareceu duas vezes na fato após um reprocessamento.

  4. 4.A ingestão trouxe 3% do volume habitual porque um dos arquivos de origem não chegou.

  5. 5.Transações chegaram com id_cliente que não existe na dimensão de clientes.

  6. 6.O campo data_liquidacao veio vazio em 12% dos registros depois de uma mudança no core.

Drill

Alerta útil ou ruído?

Decida se o alerta merece existir. Se marcar ruído, diga em voz alta o que você faria no lugar dele.

  1. 1.A tabela de transações não é atualizada há 4 horas, contra SLA de 1 hora. Dispara para o plantão do time dono.

  2. 2.Qualquer variação de mais de 1% no volume diário dispara e-mail para uma lista de trinta pessoas.

  3. 3.O job terminou com sucesso. Notificação enviada ao canal do time.

  4. 4.A distribuição de valor médio da transação de cartão saiu três desvios da média das últimas oito semanas.

  5. 5.Um teste de nulos falhou em uma coluna que é opcional por contrato e sempre teve nulos.

Quiz · 1 de 2

Qual afirmação descreve melhor a relação entre monitoramento de job e observabilidade de dados?

Explique para um gerente

Explique para o dono do produto de cartão, em um minuto, por que o time vai gastar duas semanas escrevendo testes de dados em vez de um relatório novo.

Responda em voz alta antes de seguir. Se travar numa palavra técnica, é sinal de que ainda não entendeu essa parte.

Perguntas de sabatina deste tema

  • · Como você descobre que um pipeline entregou dado errado antes do usuário descobrir?
  • · O time do core bancário mudou o tipo de um campo sem avisar e quebrou três pipelines seus. Como você evita que isso se repita?
  • · Você precisa reprocessar 30 dias de transações de cartão porque uma regra de categorização estava errada. Como faz isso com segurança?
Responder no simulado

Para ir além