A causa raiz é o fim do caminho. Eles devem ser o evento original na linha de causalidade, o primeiro dominó, por assim dizer, e principalmente explicar o problema. Se a causa raiz do problema de dados não ocorrer, nenhuma das causas proximais deverá ocorrer. É diretamente causal a todos eles.
As causas raiz, é claro, nem sempre são claras e as correlações nem sempre são exatas. Se você não está confiante em sua resposta, uma maneira probabilística de testar sua verdadeira pontuação de confiança é tentar este experimento mental: diga que seu chefe diz que sua equipe apoiará sua hipótese e ninguém vai verificar antes ela entrará em produção, e seu nome estará em toda ela. Se estiver errado, a culpa é sua. Que pontuação de confiança de 0 a 100 você daria à sua hipótese? Se estiver abaixo de 70, continue investigando.
Problemas comuns de dados de causa raiz incluem:
1. Erro do usuário: começaremos com os erros do usuário porque eles são comuns. Talvez alguém tenha inserido o esquema errado ou um valor errado, o que significa que o pipeline não lê os dados, ou fez a coisa certa com valores incorretos, e agora você tem uma falha de tarefa.
2. Dados rotulados inadequadamente: às vezes, as linhas se deslocam em uma tabela e os rótulos certos são aplicados às colunas erradas.
3. O parceiro de dados perdeu uma entrega: também muito comum. Você pode construir um sistema à prova de marcadores, mas não pode controlar o que não consegue ver e, se os problemas de dados estiverem nos dados de origem, isso fará com que pipelines em perfeitas condições se comportem mal.
4. Há um bug no código: isso é comum quando há uma nova versão do pipeline. Você pode descobrir isso rapidamente com softwares de controle de versão como o Git ou o GitLab. Compare o código de produção com uma versão anterior e execute um teste com essa versão anterior.
5. Erro de dados de OCR: seu scanner óptico lê os dados errados, levando a valores estranhos (ou missing values).
6. Problema de dados obsoletos: o conjunto de dados está tão desatualizado que já não é válido.
7. Problema de dados duplicados: muitas vezes, um fornecedor não conseguia entregar dados e, portanto, o pipeline foi executado nos dados da semana passada.
8. Problema de permissão: o pipeline falhou porque o sistema não tinha permissão para extrair os dados ou realizar uma transformação.
9. Erro de infraestrutura: talvez você tenha esgotado seu limite de memória disponível ou de chamadas de API, seu cluster Apache Spark não foi executado, ou seu data warehouse está sendo excepcionalmente lento, fazendo com que a execução prossiga sem os dados.
10. Alterações no agendamento: alguém (ou algo) alterou o agendamento e isso faz com que o pipeline fique fora de ordem ou não seja executado.
11. Conjunto de dados com viés: muito complicado de resolver. Não há uma boa maneira de descobrir isso, exceto executando alguns testes para ver se os dados são anômalos em comparação com um conjunto de dados verdadeiros semelhante, ou descobrindo como foram coletados ou gerados.
12. Falha do orquestrador: seu agendador de pipeline não conseguiu agendar ou executar o trabalho.
13. Fantasma na máquina (dados ex machina): é verdadeiramente incognoscível. É difícil assumir que é o caso, mas é verdade para algumas coisas. O melhor que você pode fazer é documentar e estar pronto para a próxima vez, quando puder reunir mais dados e começar a traçar correlações.
E depois, é claro, há a realidade em que a causa raiz não é totalmente clara. Muitas coisas estão correlacionadas e provavelmente são interdependentes, mas não há uma resposta perfeita e, depois de fazer alterações, você corrigiu o problema de dados, embora não saiba ao certo o porquê.
Nesses casos, como em qualquer outro, anote sua hipótese no log e, quando puder retornar a ele, continue testando os dados históricos e esteja atento a novos problemas e causas mais explicativas.