Técnicas populares de validação de dados para análise e por que você precisa delas

Publicados: 2022-12-19

Nota do editor: este artigo foi originalmente publicado no blog Iteratively em 14 de dezembro de 2020.


No final do dia, sua análise de dados precisa ser testada como qualquer outro código. Se você não validar esse código - e os dados que ele gera - pode custar caro (como $ 9,7 milhões de dólares por ano, de acordo com o Gartner).

Para evitar esse destino, as empresas e seus engenheiros podem aproveitar várias técnicas de validação de dados proativas e reativas. Recomendamos fortemente o primeiro, conforme explicaremos a seguir. Uma abordagem proativa para a validação de dados ajudará as empresas a garantir que os dados que possuem estejam limpos e prontos para trabalhar.

Técnicas de validação de dados reativas versus proativas: resolva problemas de dados antes que eles se tornem um problema

“Um grama de prevenção vale um quilo de cura.” É um velho ditado que se aplica a quase todas as situações, incluindo técnicas de validação de dados para análises. Outra maneira de dizer isso é que é melhor ser proativo do que reativo.

O objetivo de qualquer validação de dados é identificar onde os dados podem ser imprecisos, inconsistentes, incompletos ou até mesmo ausentes.

Por definição, a validação reativa de dados ocorre após o fato e usa a detecção de anomalias para identificar quaisquer problemas que seus dados possam ter e para ajudar a aliviar os sintomas de dados incorretos. Embora esses métodos sejam melhores do que nada, eles não resolvem os principais problemas que causam os dados ruins em primeiro lugar.

Em vez disso, acreditamos que as equipes devem tentar adotar técnicas proativas de validação de dados para suas análises, como segurança de tipo e esquematização, para garantir que os dados obtidos sejam precisos, completos e na estrutura esperada (e que os futuros membros da equipe não tenham para lutar com código analítico ruim).

Embora possa parecer óbvio escolher a abordagem de validação mais abrangente, muitas equipes acabam usando validação de dados reativa. Isso pode ser por uma série de razões. Frequentemente, o código analítico é uma reflexão tardia para muitas equipes que não são de dados e, portanto, não é testado.

Também é comum, infelizmente, que os dados sejam processados ​​sem nenhuma validação. Além disso, um código analítico ruim só é notado quando está realmente ruim, geralmente semanas depois, quando alguém percebe que um relatório está extremamente errado ou até mesmo ausente.

As técnicas de validação de dados reativos podem parecer transformar seus dados em seu warehouse com uma ferramenta como dbt ou Dataform.

Embora todos esses métodos possam ajudá-lo a resolver seus problemas de dados (e geralmente com ferramentas objetivamente excelentes), eles ainda não o ajudarão a curar a causa principal de seus dados ruins (por exemplo, governança ou análise de dados fragmentada que são implementadas em um projeto- base por projeto sem comunicação entre equipes) em primeiro lugar, fazendo com que você volte sempre a eles.

A validação de dados reativa por si só não é suficiente; você precisa empregar técnicas proativas de validação de dados para ser verdadeiramente eficaz e evitar os dispendiosos problemas mencionados anteriormente. Aqui está o porquê:

  • Os dados são um esporte de equipe. Não cabe apenas a um departamento ou a um indivíduo garantir que seus dados estejam limpos. É preciso que todos trabalhem juntos para garantir dados de alta qualidade e resolver problemas antes que eles aconteçam.
  • A validação de dados deve fazer parte do Ciclo de Vida de Desenvolvimento de Software (SDLC). Ao integrá-lo ao SDLC e em paralelo ao desenvolvimento orientado a testes existente e ao processo de controle de qualidade automatizado (em vez de adicioná-lo como uma reflexão tardia), você economiza tempo evitando problemas de dados em vez de solucioná-los posteriormente.
  • A validação proativa de dados pode ser integrada às suas ferramentas existentes e pipelines de CI/CD. Isso é fácil para suas equipes de desenvolvimento porque elas já investiram em automação de teste e agora podem estendê-la rapidamente para adicionar cobertura para análise também.
  • O teste proativo de validação de dados é uma das melhores maneiras pelas quais equipes em movimento rápido podem operar com eficiência. Isso garante que eles possam iterar rapidamente e evitar desvios de dados e outros problemas de downstream.
  • A validação proativa de dados oferece a confiança necessária para alterar e atualizar seu código conforme necessário, minimizando o número de bugs que você terá que corrigir posteriormente. Esse processo proativo garante que você e sua equipe alterem apenas o código diretamente relacionado aos dados com os quais você está preocupado.

Agora que estabelecemos por que a validação proativa de dados é importante, a próxima pergunta é: como você faz isso? Quais são as ferramentas e métodos que as equipes empregam para garantir que seus dados sejam bons antes que surjam problemas?

Vamos mergulhar.

Métodos de validação de dados

A validação de dados não é apenas uma etapa que acontece em um ponto específico. Isso pode acontecer em vários pontos do ciclo de vida dos dados – no cliente, no servidor, no pipeline ou no próprio warehouse.

Na verdade, é muito semelhante ao teste de software em grande escala de várias maneiras. Há, no entanto, uma diferença fundamental. Você não está testando as saídas sozinho; você também está confirmando que as entradas de seus dados estão corretas.

Vamos dar uma olhada em como é a validação de dados em cada local, examinando quais são reativos e quais são proativos.

Técnicas de validação de dados no cliente

Você pode usar ferramentas como Amplitude Data para alavancar segurança de tipo, teste de unidade e linting (análise de código estático) para validação de dados do lado do cliente.

Agora, esse é um ótimo ponto de partida, mas é importante entender que tipo de teste esse tipo de ferramenta permite que você faça nessa camada. Aqui está um detalhamento:

  • A segurança de tipo ocorre quando o compilador valida os tipos de dados e as instruções de implementação na fonte, evitando erros de downstream devido a erros de digitação ou variáveis ​​inesperadas.
  • O teste de unidade é quando você testa uma seleção específica de código isoladamente. Infelizmente, a maioria das equipes não integra análises em seus testes de unidade quando se trata de validar suas análises.
  • O teste A/B é quando você testa seu fluxo de análise em um conjunto de dados de estado dourado (uma versão de sua análise que você sabe que era perfeita) ou uma cópia de seus dados de produção. Isso ajuda você a descobrir se as mudanças que está fazendo são boas e uma melhoria na situação existente.

Técnicas de validação de dados no pipeline

A validação de dados no pipeline trata de garantir que os dados enviados pelo cliente correspondam ao formato de dados em seu warehouse. Se os dois não estiverem na mesma página, seus consumidores de dados (gerentes de produto, analistas de dados etc.) não obterão informações úteis do outro lado.

Os métodos de validação de dados no pipeline podem ter esta aparência:

  • Validação de esquema para garantir que seu rastreamento de eventos corresponda ao que foi definido em seu registro de esquema.
  • Integração e teste de componentes por meio de testes utilitários chave relacionais, exclusivos e substitutos em uma ferramenta como dbt para garantir que o rastreamento entre plataformas funcione bem.
  • Teste de atualização por meio de uma ferramenta como dbt para determinar o quão “frescos” são seus dados de origem (também conhecidos como atualizados e saudáveis).
  • Testes de distribuição com uma ferramenta como Great Expectations para obter alertas quando conjuntos de dados ou amostras não correspondem às entradas esperadas e certifique-se de que as alterações feitas em seu rastreamento não atrapalhem os fluxos de dados existentes.

Técnicas de validação de dados no warehouse

Você pode usar o teste dbt, o teste de formulário de dados e as Grandes Expectativas para garantir que os dados enviados ao seu warehouse estejam em conformidade com as convenções que você espera e precisa. Você também pode fazer transformações nessa camada, incluindo verificação de tipo e segurança de tipo nessas transformações, mas não recomendamos esse método como sua principal técnica de validação, pois é reativo.

Neste ponto, os métodos de validação disponíveis para as equipes incluem validar se os dados estão em conformidade com certas convenções e, em seguida, transformá-los para corresponder a elas. As equipes também podem usar testes de relacionamento e atualização com dbt, bem como testes de valor/intervalo usando Grandes Expectativas.

Toda essa funcionalidade da ferramenta se resume a algumas técnicas importantes de validação de dados nessa camada:

  • Esquematização para garantir que os dados CRUD e as transformações estejam em conformidade com as convenções definidas.
  • Testes de segurança para garantir que os dados estejam em conformidade com os requisitos de segurança, como GDPR.
  • Teste de relacionamento em ferramentas como dbt para garantir que os campos em um modelo sejam mapeados para os campos em uma determinada tabela (também conhecida como integridade referencial).
  • Teste de atualização e distribuição (como mencionamos na seção de pipeline).
  • Verificação de intervalo e tipo que confirma se os dados enviados do cliente estão dentro do intervalo ou formato esperado do warehouse.

Um ótimo exemplo de muitos desses testes em ação pode ser encontrado no mecanismo de descoberta e metadados da Lyft, Amundsen. Essa ferramenta permite que os consumidores de dados da empresa pesquisem os metadados do usuário para aumentar sua usabilidade e segurança. O principal método da Lyft para garantir a qualidade e a usabilidade dos dados é uma espécie de controle de versão por meio de uma tarefa Airflow de limpeza de gráficos que exclui dados antigos e duplicados quando novos dados são adicionados ao depósito.

Por que agora é a hora de adotar melhores técnicas de validação de dados

No passado, as equipes de dados lutavam com a validação de dados porque suas organizações não percebiam a importância da higiene e governança de dados. Esse não é mais o mundo em que vivemos.

As empresas perceberam que a qualidade dos dados é crítica. Apenas limpar dados ruins de maneira reativa não é bom o suficiente. Contratar equipes de engenheiros de dados para limpar os dados por meio de transformação ou escrever consultas SQL intermináveis ​​é um uso desnecessário e ineficiente de tempo e dinheiro.

Costumava ser aceitável ter dados com 80% de precisão (mais ou menos, dependendo do caso de uso), deixando uma margem de erro de 20%. Isso pode ser bom para uma análise simples, mas não é bom o suficiente para alimentar um mecanismo de recomendação de produto, detectar anomalias ou tomar decisões críticas de negócios ou produtos.

As empresas contratam engenheiros para criar produtos e fazer um ótimo trabalho. Se eles precisam gastar tempo lidando com dados incorretos, não estão aproveitando ao máximo seu tempo. Mas a validação de dados dá a eles esse tempo de volta para se concentrar no que fazem de melhor: criar valor para a organização.

A boa notícia é que dados de alta qualidade estão ao seu alcance. Para alcançá-lo, as empresas precisam ajudar todos a entender seu valor, quebrando os silos entre produtores e consumidores de dados. Em seguida, as empresas devem jogar fora as planilhas e aplicar melhores práticas de engenharia em suas análises, como controle de versão e esquematização. Por fim, eles devem garantir que as práticas recomendadas de dados sejam seguidas em toda a organização com um plano de rastreamento e governança de dados.

Invista em validação de análise proativa para obter dividendos de dados

No mundo de hoje, ferramentas e métodos de validação de dados implícitos e reativos não são mais suficientes. Eles custam tempo, dinheiro e, talvez o mais importante, confiança.

Para evitar esse destino, adote uma filosofia de proatividade. Identifique problemas antes que eles se tornem problemas caros, validando seus dados analíticos desde o início e durante todo o ciclo de vida do desenvolvimento de software.

Comece com a análise de produtos