Uma boa DAG tem tasks pequenas e idempotentes com dependências claras, deriva a janela de tempo do data interval e não do relógio, e mantém a lógica pesada fora do arquivo da DAG, já que esse arquivo é parseado constantemente. Evite passar dados grandes pelo XCom, evite sensores bloqueantes longos que ocupam slots de worker, e configure retentativas, timeouts e alertas sensatos nas tasks que importam.
Por que os entrevistadores perguntam isso
Bugs de orquestração causam problemas silenciosos de corretude, não só falhas, então os entrevistadores usam isso para checar experiência prática. Eles querem higiene no código de nível superior (um arquivo de DAG lento degrada o scheduler inteiro), o ponto sobre o data interval que torna as reexecuções corretas, e consciência sobre exaustão de recursos por sensores e payloads grandes de XCom.
Como estruturar sua resposta
- Defenda tasks pequenas, idempotentes e repetíveis de forma independente.
- Explique por que a janela de tempo precisa vir do data interval.
- Alerte sobre código pesado no nível superior do arquivo da DAG.
- Cubra os limites de tamanho do XCom e passar referências em vez de payloads.
- Configure retentativas, timeouts, SLAs e alertas significativos.
Exemplo de resposta
As duas coisas com que eu mais me importo são granularidade das tasks e idempotência. As tasks devem ser pequenas o bastante para que uma falha seja barata de repetir e específicas o bastante para que a falha diga o que quebrou, e cada uma delas deve ser segura de reexecutar. Depois, a janela de tempo tem que vir do data interval que o Airflow passa, nunca de um datetime.now dentro da task, senão uma reexecução da terça passada processa os dados de hoje e você recebe uma resposta sutilmente errada em vez de um erro. Em revisão, o que eu mais aponto é código caro no nível superior do arquivo da DAG. Esse arquivo é parseado em intervalos curtos, então uma chamada de API ou uma consulta a banco fora da função da task roda o tempo todo e degrada o scheduler inteiro; eu já vi só isso adicionar minutos de latência de agendamento em um deployment inteiro. Eu também checo o uso de XCom, já que ele é uma tabela de metadados e não um transporte de dados, então passe um caminho no S3 em vez de um dataframe.
Vai encarar essa entrevista em breve? O GhostPilot escuta a sua chamada ao vivo, identifica a pergunta no instante em que ela é feita e coloca uma resposta estruturada na sua tela em tempo real. Teste na sua próxima entrevista simulada ou pegue um Session Pass de $29, sem assinatura, para a hora da verdade.
Veja como funcionaPerguntas de acompanhamento que você pode esperar
- O que é um operador deferrable e qual problema ele resolve?
- Como você lidaria com uma DAG que precisa processar um número variável de arquivos?
- Como você testa uma DAG antes que ela chegue à produção?
Mais perguntas para Engenheiro de Dados
Seu entrevistador vai fazer a própria versão desta. Cole a descrição real da vaga no Question Predictor gratuito e receba as 20 perguntas que essa vaga tem mais chance de fazer, com o que cada uma está de fato sondando.
Prever minhas perguntas