Limpeza de dados - Data cleansing

A limpeza de dados ou limpeza de dados é o processo de detecção e correção (ou remoção) de registros corrompidos ou imprecisos de um conjunto de registros, tabela ou banco de dados e se refere à identificação de partes incompletas, incorretas, imprecisas ou irrelevantes dos dados e, em seguida, substituindo, modificando, ou excluindo os dados sujos ou grosseiros. A limpeza de dados pode ser realizada interativamente com ferramentas de transformação de dados ou como processamento em lote por meio de scripts .

Após a limpeza, um conjunto de dados deve ser consistente com outros conjuntos de dados semelhantes no sistema. As inconsistências detectadas ou removidas podem ter sido causadas originalmente por erros de entrada do usuário, por corrupção na transmissão ou armazenamento ou por diferentes definições de dicionário de dados de entidades semelhantes em diferentes armazenamentos. A limpeza de dados difere da validação de dados porque a validação quase invariavelmente significa que os dados são rejeitados do sistema na entrada e é realizada no momento da entrada, em vez de em lotes de dados.

O processo real de limpeza de dados pode envolver a remoção de erros tipográficos ou a validação e correção de valores em uma lista conhecida de entidades. A validação pode ser estrita (como rejeitar qualquer endereço que não tenha um código postal válido ) ou com correspondência de string difusa ou aproximada (como corrigir registros que correspondem parcialmente aos registros existentes e conhecidos). Algumas soluções de limpeza de dados limparão os dados por meio de verificação cruzada com um conjunto de dados validado. Uma prática comum de limpeza de dados é o aprimoramento de dados, em que os dados se tornam mais completos com a adição de informações relacionadas. Por exemplo, anexar endereços a quaisquer números de telefone relacionados a esse endereço. A limpeza de dados também pode envolver a harmonização (ou normalização) de dados, que é o processo de reunir dados de "vários formatos de arquivo, convenções de nomenclatura e colunas" e transformá-los em um conjunto de dados coeso; um exemplo simples é a expansão de abreviações ("st, rd, etc." para "street, road, etcetera").

Motivação

Dados administrativamente incorretos e inconsistentes podem levar a conclusões falsas e desviar investimentos em escalas públicas e privadas. Por exemplo, o governo pode querer analisar os números do censo populacional para decidir quais regiões exigem mais gastos e investimentos em infraestrutura e serviços. Nesse caso, será importante ter acesso a dados confiáveis ​​para evitar decisões fiscais errôneas. No mundo dos negócios, dados incorretos podem custar caro. Muitas empresas usam bancos de dados de informações de clientes que registram dados como informações de contato, endereços e preferências. Por exemplo, se os endereços forem inconsistentes, a empresa arcará com o custo de reenviar a correspondência ou até mesmo perder clientes.

Qualidade de dados

Dados de alta qualidade precisam passar por um conjunto de critérios de qualidade. Isso inclui:

  • Validade : O grau em que as medidas estão em conformidade com as regras de negócios ou restrições definidas (consulte também Validade (estatísticas) ). Quando a tecnologia de banco de dados moderna é usada para projetar sistemas de captura de dados, a validade é bastante fácil de garantir: dados inválidos surgem principalmente em contextos legados (onde as restrições não foram implementadas no software) ou onde uma tecnologia de captura de dados inadequada foi usada (por exemplo, planilhas, onde é muito difícil limitar o que um usuário escolhe inserir em uma célula, se a validação de célula não for usada). As restrições de dados se enquadram nas seguintes categorias:
    • Restrições de tipo de dados - por exemplo, os valores em uma coluna específica devem ser de um tipo de dados específico, por exemplo, booleano, numérico (inteiro ou real), data, etc.
    • Restrições de intervalo: normalmente, os números ou datas devem estar dentro de um determinado intervalo. Ou seja, possuem valores mínimos e / ou máximos permitidos.
    • Restrições obrigatórias: certas colunas não podem ficar vazias.
    • Restrições exclusivas: um campo, ou uma combinação de campos, deve ser exclusivo em um conjunto de dados. Por exemplo, duas pessoas não podem ter o mesmo número de seguro social.
    • Restrições de conjunto de membros : os valores de uma coluna vêm de um conjunto de valores ou códigos discretos. Por exemplo, o sexo de uma pessoa pode ser Feminino, Masculino ou Não Binário.
    • Restrições de chave estrangeira : este é o caso mais geral de associação a conjuntos. O conjunto de valores em uma coluna é definido em uma coluna de outra tabela que contém valores exclusivos. Por exemplo, em um banco de dados de contribuintes dos EUA, a coluna "estado" deve pertencer a um dos estados ou territórios definidos nos EUA: o conjunto de estados / territórios permitidos é registrado em uma tabela separada de estados. O termo chave estrangeira é emprestado da terminologia do banco de dados relacional.
    • Padrões de expressão regular : ocasionalmente, os campos de texto terão que ser validados dessa forma. Por exemplo, pode ser necessário que os números de telefone tenham o padrão (999) 999-9999.
    • Validação de campo cruzado : certas condições que utilizam vários campos devem ser mantidas. Por exemplo, em medicina de laboratório, a soma dos componentes da contagem diferencial de leucócitos deve ser igual a 100 (já que são todos percentuais). Em um banco de dados de hospital, a data de alta hospitalar de um paciente não pode ser anterior à data de admissão.
  • Exatidão : O grau de conformidade de uma medida com um padrão ou valor verdadeiro - consulte também Exatidão e precisão . A precisão é muito difícil de ser alcançada por meio da limpeza de dados no caso geral, porque requer o acesso a uma fonte externa de dados que contém o valor verdadeiro: esses dados de "padrão ouro" geralmente não estão disponíveis. A precisão foi alcançada em alguns contextos de limpeza, principalmente dados de contato do cliente, usando bancos de dados externos que combinam códigos postais com localizações geográficas (cidade e estado) e também ajudam a verificar se os endereços dentro desses códigos postais realmente existem.
  • Completude : o grau em que todas as medidas necessárias são conhecidas. A incompletude é quase impossível de corrigir com a metodologia de limpeza de dados: não se pode inferir fatos que não foram capturados quando os dados em questão foram inicialmente registrados. (Em alguns contextos, por exemplo, dados de entrevista, pode ser possível corrigir a incompletude voltando à fonte original de dados, ou seja, entrevistando novamente o sujeito, mas mesmo isso não garante o sucesso por causa de problemas de memória - por exemplo, em uma entrevista para coletar dados sobre o consumo de alimentos, é provável que ninguém se lembre exatamente o que comeu há seis meses. No caso de sistemas que insistem que certas colunas não devem estar vazias, pode-se contornar o problema designando um valor que indique " desconhecido "ou" ausente ", mas o fornecimento dos valores padrão não significa que os dados foram completados.)
  • Consistência : o grau em que um conjunto de medidas é equivalente em todos os sistemas (consulte também Consistência ). A inconsistência ocorre quando dois itens de dados no conjunto de dados se contradizem: por exemplo, um cliente é registrado em dois sistemas diferentes como tendo dois endereços atuais diferentes e apenas um deles pode estar correto. Consertar a inconsistência nem sempre é possível: requer uma variedade de estratégias - por exemplo, decidir quais dados foram registrados mais recentemente, qual fonte de dados é provavelmente mais confiável (o último conhecimento pode ser específico para uma determinada organização), ou simplesmente tentar encontre a verdade testando ambos os itens de dados (por exemplo, ligando para o cliente).
  • Uniformidade : O grau em que as medidas de um conjunto de dados são especificadas usando as mesmas unidades de medida em todos os sistemas (consulte também Unidade de medida ). Em conjuntos de dados reunidos em diferentes locais, o peso pode ser registrado em libras ou quilos e deve ser convertido em uma única medida usando uma transformação aritmética.

O termo integridade abrange precisão, consistência e alguns aspectos de validação (consulte também integridade de dados ), mas raramente é usado isoladamente em contextos de limpeza de dados porque é insuficientemente específico. (Por exemplo, " integridade referencial " é um termo usado para se referir à aplicação das restrições de chave estrangeira acima.)

Processo

  • Auditoria de dados : Os dados são auditados com o uso de métodos estatísticos e de banco de dados para detectar anomalias e contradições: eventualmente, indica as características das anomalias e sua localização. Vários pacotes de software comercial permitem que você especifique restrições de vários tipos (usando uma gramática que está em conformidade com a de uma linguagem de programação padrão, por exemplo, JavaScript ou Visual Basic) e, em seguida, gere código que verifica os dados para violação dessas restrições. Esse processo é referido abaixo nos marcadores "especificação do fluxo de trabalho" e "execução do fluxo de trabalho". Para usuários que não têm acesso a software de limpeza de ponta, pacotes de banco de dados de microcomputador, como Microsoft Access ou File Maker Pro, também permitem que você execute tais verificações, restrição por restrição, interativamente com pouca ou nenhuma programação necessária em muitos casos .
  • Especificação do fluxo de trabalho : a detecção e remoção de anomalias são realizadas por uma sequência de operações nos dados, conhecida como fluxo de trabalho. Ele é especificado após o processo de auditoria dos dados e é crucial para obter o produto final de dados de alta qualidade. Para obter um fluxo de trabalho adequado, as causas das anomalias e erros nos dados devem ser cuidadosamente consideradas.
  • Execução do workflow : nesta etapa, o workflow é executado após a conclusão de sua especificação e verificação de sua exatidão. A implementação do fluxo de trabalho deve ser eficiente, mesmo em grandes conjuntos de dados, o que inevitavelmente representa uma compensação, pois a execução de uma operação de limpeza de dados pode ser computacionalmente cara.
  • Pós-processamento e controle : Após a execução do fluxo de trabalho de limpeza, os resultados são inspecionados para verificar a exatidão. Os dados que não puderam ser corrigidos durante a execução do fluxo de trabalho são corrigidos manualmente, se possível. O resultado é um novo ciclo no processo de limpeza de dados, onde os dados são auditados novamente para permitir a especificação de um fluxo de trabalho adicional para limpar ainda mais os dados por processamento automático.

Dados de origem de boa qualidade têm a ver com “Cultura de Qualidade de Dados” e devem ser iniciados no topo da organização. Não é apenas uma questão de implementar verificações de validação fortes nas telas de entrada, porque quase não importa o quão fortes sejam essas verificações, elas ainda podem ser contornadas pelos usuários. Há um guia de nove etapas para organizações que desejam melhorar a qualidade dos dados:

  • Declare um compromisso de alto nível com uma cultura de qualidade de dados
  • Impulsionar a reengenharia de processos no nível executivo
  • Gaste dinheiro para melhorar o ambiente de entrada de dados
  • Gaste dinheiro para melhorar a integração de aplicativos
  • Gaste dinheiro para mudar a forma como os processos funcionam
  • Promova a conscientização da equipe de ponta a ponta
  • Promover a cooperação interdepartamental
  • Celebre publicamente a excelência em qualidade de dados
  • Avalie e melhore continuamente a qualidade dos dados

Outros incluem:

  • Análise : para a detecção de erros de sintaxe. Um analisador decide se uma string de dados é aceitável dentro da especificação de dados permitida. Isso é semelhante à maneira como um analisador funciona com gramáticas e linguagens .
  • Transformação de dados : a transformação de dados permite o mapeamento dos dados de seu formato fornecido para o formato esperado pelo aplicativo apropriado. Isso inclui conversões de valor ou funções de tradução, bem como normalizar valores numéricos para estar em conformidade com os valores mínimo e máximo.
  • Eliminação de duplicados : a detecção de duplicados requer um algoritmo para determinar se os dados contêm representações duplicadas da mesma entidade. Normalmente, os dados são classificados por uma chave que aproxima as entradas duplicadas para uma identificação mais rápida.
  • Métodos estatísticos : ao analisar os dados usando os valores da média , desvio padrão , intervalo ou algoritmos de agrupamento , é possível para um especialista encontrar valores inesperados e, portanto, errôneos. Embora a correção de tais dados seja difícil, uma vez que o valor verdadeiro não é conhecido, pode ser resolvido definindo os valores para uma média ou outro valor estatístico. Métodos estatísticos também podem ser usados ​​para lidar com valores ausentes que podem ser substituídos por um ou mais valores plausíveis, que geralmente são obtidos por extensos algoritmos de aumento de dados .

Sistema

A tarefa essencial desse sistema é encontrar um equilíbrio adequado entre consertar dados sujos e manter os dados o mais próximo possível dos dados originais do sistema de produção de origem. Este é um desafio para o arquiteto de extração, transformação e carregamento . O sistema deve oferecer uma arquitetura que possa limpar dados, registrar eventos de qualidade e medir / controlar a qualidade dos dados no data warehouse . Um bom começo é realizar uma análise de perfil de dados completa que ajudará a definir a complexidade necessária do sistema de limpeza de dados e também dará uma ideia da qualidade dos dados atuais no (s) sistema (s) de origem.

Telas de qualidade

Parte do sistema de limpeza de dados é um conjunto de filtros de diagnóstico conhecido como telas de qualidade. Cada um deles implementa um teste no fluxo de dados que, se falhar, registra um erro no esquema de evento de erro. As telas de qualidade são divididas em três categorias:

  • Telas da coluna. Testar a coluna individual, por exemplo, para valores inesperados como valores NULL ; valores não numéricos que devem ser numéricos; valores fora da faixa; etc.
  • Telas de estrutura. Eles são usados ​​para testar a integridade de diferentes relacionamentos entre colunas (normalmente chaves estrangeiras / primárias) na mesma tabela ou em tabelas diferentes. Eles também são usados ​​para testar se um grupo de colunas é válido de acordo com alguma definição estrutural à qual ele deve aderir.
  • Telas de regras de negócios. O mais complexo dos três testes. Eles testam para ver se os dados, talvez em várias tabelas, seguem regras de negócios específicas. Um exemplo poderia ser que, se um cliente for marcado como um determinado tipo de cliente, as regras de negócios que definem esse tipo de cliente devem ser seguidas.

Quando uma tela de qualidade registra um erro, ela pode interromper o processo de fluxo de dados, enviar os dados defeituosos para outro lugar que não o sistema de destino ou marcar os dados. A última opção é considerada a melhor solução porque a primeira opção requer que alguém tenha que lidar manualmente com o problema cada vez que ocorrer e a segunda implica que dados estão faltando no sistema de destino ( integridade ) e muitas vezes não está claro o que deve acontecer a esses dados.

Críticas às ferramentas e processos existentes

A maioria das ferramentas de limpeza de dados tem limitações de usabilidade:

  • Custos do projeto : custos normalmente na casa das centenas de milhares de dólares
  • Tempo : o domínio do software de limpeza de dados em grande escala é demorado
  • Segurança : a validação cruzada requer o compartilhamento de informações, dando a um aplicativo acesso a todos os sistemas, incluindo sistemas legados sensíveis

Esquema de evento de erro

O esquema de evento de erro mantém registros de todos os eventos de erro lançados pelas telas de qualidade. Consiste em uma tabela de Fato de Evento de Erro com chaves estrangeiras para tabelas de três dimensões que representam data (quando), trabalho em lote (onde) e tela (quem produziu o erro). Ele também contém informações sobre exatamente quando o erro ocorreu e a gravidade do erro. Além disso, há uma tabela Error Event Detail Fact com uma chave estrangeira para a tabela principal que contém informações detalhadas sobre em qual tabela, registro e campo o erro ocorreu e a condição do erro.

Veja também

Referências

Leitura adicional

  • McKinney, Wes (2017). "Limpeza e preparação de dados". Python para análise de dados (2ª ed.). O'Reilly. pp. 195–224. ISBN 978-1-4919-5766-0.
  • van der Loo, Mark; de Jonge, Edwin (2018). Limpeza de dados estatísticos com Aplicações em R . Hoboken: Wiley. ISBN 978-1-118-89715-7.

links externos