Limpeza de dados

A limpeza de dados é a operação de detecção e correção (ou exclusão) de erros presentes em dados armazenados em bancos de dados ou em arquivos .

Um dos maiores problemas com data warehouses é a limpeza de dados .

Os dados presentes nas bases de dados podem ter vários tipos de erros como erros de digitação, falta de informação, imprecisões etc. A parte imprópria dos dados processados ​​pode ser substituída, modificada ou excluída. O processo de limpeza identifica dados errôneos e os corrige automaticamente com um programa de computador ou os oferece a uma pessoa para modificação.

A limpeza de dados é diferente da validação de dados. A validação de dados é a etapa que consiste em verificar e rejeitar os dados que não respeitam certas regras antes de adicionar à base de dados, enquanto a limpeza ocorre depois (nos dados já presentes na base de dados).

As abordagens de limpeza clássicas usam restrições de integridade, estatísticas ou aprendizado de máquina para limpar os dados.

Problemático

Os problemas com a limpeza de dados surgiram no início dos anos 2000, com a explosão da Internet e dos armazéns de dados.

Os armazéns de dados são usados ​​para a tomada de decisões. Isso implica que os dados devem ser confiáveis. Dados incorretos ou inconsistentes podem levar a conclusões erradas e tomadas de decisão inadequadas.

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, é importante ter acesso a dados confiáveis ​​para evitar decisões orçamentárias errôneas.

Erros de dados custam às organizações o equivalente a 10-20% de seu orçamento de implementação. Além disso, estima-se que 40-50% do orçamento de tempo de um projeto seja gasto corrigindo erros nos dados.

Tipos de erros

Erros de dados podem ser de todos os tipos. Por exemplo, um erro pode aparecer durante uma entrada (dados ausentes, dados duplicados, erro de entrada, formato incorreto, etc.)

Exemplo de vários erros
Primeiro nome Era Sexo Cortar
Alice 150 F 1,70
Bob joe 34 M
Charlie 19 1,67

Erros de sintaxe

Erros lexicais

Um erro léxico é uma discrepância entre o nome dos dados esperados e o formato especificado.

Exemplo de erro léxico
Primeiro nome Era
Alice F
Prumo M
Charlie 21
Erros de formatação

Um erro de formatação é uma entrada que não corresponde a um determinado padrão.

Erro de formatação de exemplo
Sobrenome
Doe, John
John smith
Erros de irregularidade

Um erro de irregularidade ocorre quando um dado não é representado de forma regular, seguindo o mesmo diagrama, a mesma sequência lógica de escrita. Isso pode ser feito para representação de distância, por exemplo, usando diferentes sistemas métricos.

Exemplo de irregularidade
Distância
25  km
23  km
20 mi

Erros semânticos

Violação de restrições de integridade

Esses são os erros que violam as regras de integridade do esquema de dados.

Freqüentemente, essas são regras de senso comum, como verificar um valor maior que 0 para a idade de uma pessoa ou verificar a exclusividade de uma chave primária em um banco de dados.

Erros de contradição

Erros de contradição são contradições nos dados.

Por exemplo, um erro de contradição pode ocorrer quando a idade especificada não corresponde à data de nascimento.

Erros de duplicação

Os erros de duplicação ocorrem quando várias ocorrências dos mesmos dados são armazenadas.

Esses erros podem ser vistos como um caso específico de erros de contradição.

Erros de dados inválidos

Essas são entradas consideradas inválidas, mas não detectáveis ​​pela implementação de restrições. Esses são erros específicos do domínio.

Erros de cobertura

Valor ausente

Este tipo de erro resulta da omissão de um campo de dados, quando falta o valor esperado.

Exemplo de valor ausente
Primeiro nome Era Sexo Cortar
Alice 23 F 1,70
Prumo 34 M 1,82
Charlie 19 M
Dados ausentes

Este tipo de erro surge quando os dados estão vazios ou ausentes.

Exemplo de dados ausentes
Primeiro nome Era Sexo Cortar
Alice F 1,70
Prumo M 1,86
Charlie M 1,68

Métodos existentes

Existem dois tipos de abordagem:

  • As de empresas que geralmente usam produtos de limpeza do tipo ETL . Esse tipo de abordagem foi o primeiro a ter visto a luz do dia.
  • Aqueles de cientistas que estão explorando novas abordagens com base em restrições de integridade, estatísticas, aprendizado de máquina ou até mesmo crowdsourcing .

A limpeza de dados é dividida em 3 fases:

  • Analise os dados para detectar possíveis problemas
  • Escolha o tipo de transformações a realizar
  • Aplique esta informação aos dados

Análise

O método de análise é usado para a detecção de erros de sintaxe. Um analisador decide sobre a aceitabilidade dos dados representados por uma cadeia de caracteres. Ele garante que os dados sigam a especificação.

Esse tipo de abordagem requer um conjunto de dados que podem ser convertidos em distância para serem comparados.

Essa abordagem tem seus limites. Na verdade, geralmente é baseado em expressões regulares para determinar a validade de uma entrada. Esse processo de verificação pode ser aprimorado com técnicas de aprendizado de máquina.

Transformação de dados

A transformação de dados é uma operação que combina vários campos em um.

Por exemplo, a decomposição de uma data em vários campos (ano, mês e dia) ou a transformação de uma entrada booleana em um número inteiro (verdadeiro = 1).

Reforço das restrições de integridade

As restrições de integridade são inicialmente usadas para evitar erros de dados; no entanto, podem não ser suficientes e erros de dados ocorrerão com o tempo. Em alguns casos, a melhor maneira de melhorar a qualidade dos dados não é corrigir os dados corrompidos, mas sim alterar as restrições de integridade porque a semântica dos dados ou do aplicativo pode ter mudado.

O objetivo desse método não é modificar os dados de maneira direta, mas encontrar e modificar as restrições de integridade questionáveis ​​para que correspondam melhor aos dados.

Método estatístico

Apesar da pesquisa sobre restrições de integridade, bem como outros métodos para melhorar a qualidade dos dados, os bancos de dados ainda podem conter uma série de erros sutis, sintáticos ou semânticos, que são difíceis de ver. Impossível de expressar (e detectar) usando as restrições gerais oferecidas no SGBD atual .

O uso de estatísticas permite que correções de erros mais confiáveis ​​sejam obtidas. Identificando potenciais dependências estatísticas entre pares de dados semelhantes e desenvolvendo algoritmos que podem ser simplesmente enxertados em SGBDs padrão, podemos estimar automaticamente essas dependências. Este método permite, por exemplo, deduzir valores corretos, mesmo na presença de valores ausentes ou corrompidos.

Métodos estatísticos podem ser usados ​​para análise e / ou correção de dados.

Crowdsourcing

Pode acontecer que os métodos anteriores não tenham evidências suficientes para identificar e corrigir os erros.

Uma abordagem baseada em crowdsourcing torna possível usar bases de conhecimento externas que permitem que mais erros sejam identificados automaticamente.

Os erros detectados que não podem ser reparados automaticamente são apresentados a uma pessoa que os corrige manualmente.

Soluções existentes

A pesquisa permite fornecer novas soluções que utilizem as abordagens mencionadas acima. Aqui estão alguns :

roda de oleiro

A roda de Potter é um método interativo de limpeza de dados que permite a descoberta e transformação de dados.

Esta solução permite ao usuário construir transformações quando elas ocorrem e, assim, melhorar iterativamente a detecção e transformação. Isso sem escrever programas complexos ou perder tempo de desenvolvimento.

A roda de Potter fornece as transformações mais gerais possíveis e poderosas o suficiente para fazer a maioria das tarefas de transformação sem programação. Os usuários inserem expressões regulares ou expressões gramaticais para especificar as transformações a serem realizadas.

Com a roda de Potter, cabe ao usuário escolher o resultado de saída desejado.

O problema com a abordagem da Roda de Oleiro é encontrar uma expressão regular que mais se assemelhe ao valor a ser modificado, sem ser muito específica para ele. Lembre-se de que isso pode ter variações.

AJAX

AJAX é um framework que tenta separar a parte lógica (design e especificação do fluxo de trabalho) da parte física (implementação). O AJAX modela a lógica de limpeza de dados por um gráfico direcionado de transformações. Ele pega dados contendo erros como entrada e retorna dados limpos.

O principal objetivo é transformar os dados existentes de uma ou mais coleções em um esquema de destino, eliminando duplicatas durante o processo. O processo é dividido em 5 transformações  : mapeamento, visualização, correspondência, agrupamento e fusão . O operador de correspondência é particularmente importante na detecção de duplicatas.

AJAX possui:

  • operadores lógicos (extensão da álgebra relacional)
  • algoritmos de execução física
  • uma linguagem declarativa para operadores lógicos

Esta linguagem consiste em consultas SQL enriquecidas por primitivas específicas. Seu aspecto declarativo é herdado do SQL e garante fácil implantação e manutenção de programas de limpeza de dados. No entanto, não é totalmente declarativo devido à presença de código imperativo usado para personalização para um programa específico, se necessário.

IntelliClean

IntelliClean é uma abordagem baseada em regras focada principalmente na eliminação de duplicatas.

Esta solução consiste em 3 etapas  :

  • Pré-processamento  : eliminação de erros sintáticos, padronização de formatos e abreviaturas utilizadas.
  • Processamento  : avaliação das regras de limpeza dos dados que especifica uma ação a ser executada sob certas condições.
  • Verificação / Validação Humana  : as duas primeiras etapas produzem logs de sua execução que, na terceira etapa, permitem que humanos os estudem para verificar e / ou corrigir as ações anteriores realizadas.

Existem 4 tipos de regras para a etapa de processamento:

  • Identificação de duplicados  : essas regras especificam as condições que permitem afirmar quais tuplas são duplicatas.
  • Mesclar / Eliminar  : Essas regras indicam como as duplicatas devem ser tratadas.
  • Regras de atualização: essas regras indicam como os dados devem ser gerenciados sob certas condições, em particular permitem a especificação de regras para reforçar as restrições de integridade, indicando como os valores em falta devem ser cumpridos.
  • Regras de alerta  : essas regras especificam as condições para as quais o usuário é notificado.

FraQL

FraQL é outra linguagem declarativa para especificar um processo de limpeza de dados. É semelhante ao AJAX no sentido de que também é uma extensão do SQL. FraQL permite que você especifique esquemas e transformações de dados, padronizações / normalizações de valores graças às funções criadas pelo usuário.

Ao combinar essas funções de usuário com os operadores de união e união, o FraQL permite a identificação e eliminação de duplicatas. Finalmente, esta solução permite o preenchimento de valores perdidos bem como a eliminação de tuplas inválidas pela detecção de ruído nos dados.

ARKTOS

ARKTOS é um framework capaz de executar ETL para a criação de data warehouses . Na verdade, os autores desta solução consideram a limpeza de dados como parte do ETL. As etapas individuais do processo são chamadas de atividades. Cada atividade está vinculada a uma entrada e uma saída. A lógica de uma atividade é descrita por uma consulta SQL. Cada solicitação está associada a um tipo de erro e a uma regra que indica o comportamento no caso de tal erro ser encontrado.

Existem 6 tipos de erros possíveis em um processo ETL, VIOLAÇÃO DE CHAVE PRIMÁRIA, VIOLAÇÃO DE UNIQUENESS e VIOLAÇÃO DE REFERÊNCIA são casos especiais de violação de restrições de integridade. O tipo de erro NULL EXISTENCE está relacionado à eliminação de valores ausentes. Os tipos de erro restantes são DOMAIN MISMATCH e FORMAT MISMATCH, que se referem a erros de léxico e formatação.

Os comportamentos que podem ser associados a um erro são IGNORE, que não marcará a tupla como ruim, DELETE, WRITE TO FILE e INSERT TO TABLE com a semântica esperada. Apenas os dois últimos permitem interação com o usuário.

A qualidade da limpeza pode ser medida para cada atividade executando uma consulta SQL semelhante que contará a proporção de correspondência / violação das tuplas.

ARKTOS define duas linguagens declarativas usadas para especificar o processo ETL. Também é fornecido com um construtor de cenários gráficos.

KATARA

KATARA é um sistema que une bases de conhecimento e crowdsourcing para limpeza de dados de boa qualidade.

Ao contrário de outras abordagens, o KATARA usa um algoritmo para encontrar os tipos de dados e as relações entre eles. Usando essas informações, o KATARA usa uma abordagem probabilística para determinar a correção mais consistente a fazer. Essas probabilidades são determinadas usando bases de conhecimento.

Encontrar dados corrompidos é um problema difícil. Para melhorar esta pesquisa, a qualidade das limpezas e também a precisão dos reparos, o KATARA aprimora as bases de conhecimento com novas entradas limpas e verificadas por humanos.

O KATARA permite às empresas economizar dinheiro. Na verdade, o uso de crowdsourcing implica que não é necessário ter um especialista na área para reparar dados corrompidos.

Notas e referências

  1. Rahm e Hai Do 2000 , Introdução, p.  2
  2. Chu et al. 2015 , Resumo, p.  1
  3. Rahm e Hai Do 2000 , Introdução, p.  1
  4. Yakout, Berti-Équille e Elmagarmid 2013 , Introdução, p.  1
  5. Geerts et al. 2013 , Trabalhos relacionados, p.  636
  6. Bohannon et al. 2005
  7. Chiang e Miller 2011
  8. Chu, Ilyas e Papotti 2013
  9. Geerts et al. 2013
  10. Song et al. 2014
  11. Mayfield, Neville e Prabhakar 2010
  12. Yakout, Berti-Équille e Elmagarmid 2013
  13. Chu et al. 2015
  14. Chu et al. 2015 , Introdução, p.  1247
  15. Raman e Hellerstein 2001
  16. Raman e Hellerstein 2001 , Abstract, p.  381
  17. Raman e Hellerstein 2001 , Potter's Wheel Approach, p.  382
  18. Raman e Hellerstein 2001 , Transformação Interactive, p.  382
  19. Raman e Hellerstein 2001 , Extensible Discrepancy Detection, p.  382
  20. Galhardas 2005
  21. Galhardas 2005 , Introdução, p.  329
  22. Lee, Ling e Low 2000
  23. Müller e Freytag 2003
  24. Vassiliadis et al. 2000
  25. Chu et al. 2015 , Introdução, p.  1248

Bibliografia

  • (en) F. Geerts , G. Mecca , P. Papotti e D. Santoro , “  The LLUNATIC Data-Cleaning Framework  ” , PVLDB , vol.  6, n o  9,Julho de 2013, p.  625-636 ( ler online )
  • (en) X. Chu , J. Morcos , IF Ilyas , M. Ouzzani , P. Papotti , N. Tang e Y. Ye , "  KATARA: A Data Cleaning System Powered by Knowledge Bases and Crowdsourcing  " , SIGMOD ,2015, p.  1247-1261 ( ISBN  978-1-4503-2758-9 , DOI  10.1145 / 2723372.2749431 , ler online )
  • (en) F. Chiang e RJ Miller , "  A Unified Model for Data and Constraint Repair  " , ICDE ,abril de 2011, p.  446-457 ( ISBN  978-1-4244-8958-9 , ISSN  1063-6382 , DOI  10.1109 / ICDE.2011.5767833 , leia online )
  • (en) X. Chu , IF Ilyas e P. Papotti , "  Holistic Data Cleaning: Putting Violations Into Context  " , ICDE ,Abril de 2013, p.  458-469 ( ISBN  978-1-4673-4908-6 , ISSN  1063-6382 , DOI  10.1109 / ICDE.2013.6544847 , leia online )
  • (en) S. Song , H. Cheng , J. Xu Yu e L. Chen , “  Repairing Vertex Labels under Neighborhood Constraints  ” , PVLDB , vol.  7, N o  11,julho de 2014, p.  987-998 ( ler online )
  • (en) M. Yakout , L. Berti-Équille e AK Elmagarmid , “  Don't be SCARed: Use SCalable Automatic REpairing with Maximal Likelihood and Bounded Changes  ” , SIGMOD ,Junho de 2013, p.  553-564 ( ISBN  978-1-4503-2037-5 , DOI  10.1145 / 2463676.2463706 , ler online )
  • (en) C. Mayfield , J. Neville e S. Prabhakar , "  ERACER: A Database Approach for Statistical Inference and Data Cleaning  " , SIGMOD ,junho de 2010, p.  75-86 ( ISBN  978-1-4503-0032-2 , DOI  10.1145 / 1807167.1807178 , ler online )
  • (en) P. Bohannon , W. Fan , M. Flaster e R. Rastogi , "  A Cost-Based Model and Effective Heuristic for Repairing Constraints by Value Modification  " , SIGMOD ,Junho de 2005, p.  143-154 ( ISBN  1-59593-060-4 , DOI  10.1145 / 1066157.1066175 , ler online )
  • (pt) WE Winkler , “  Métodos de limpeza de dados  ” , SIGKDD ,agosto de 2003( leia online )
  • (en) V. Raman e JM Hellerstein , "  Potter's Wheel: An Interactive Data Cleaning System  " , VLDB ,2001, p.  381-390 ( ISBN  1-55860-804-4 , ler online )
  • (pt) H. Galhardas , “  Limpeza e transformação de dados usando a estrutura AJAX  ” , GTTSE ,2005, p.  327-343 ( ISBN  978-3-540-45778-7 , DOI  10.1007 / 11877028_12 , ler online )
  • (en) E. Rahm e H. Hai Do , “  Data Cleaning: Problems and Current Approaches  ” , IEEE , vol.  23, n o  4,2000, p.  3-13 ( ler online )
  • (en) M. Volkovs , F. Chiang , J. Szlichta e RJ Miller , “  Continuous data cleaning  ” , IEEE ,2014, p.  244-255 ( DOI  10.1109 / ICDE.2014.6816655 , ler online )
  • (pt) ML Lee , TW Ling e WL Low , "  IntelliClean: a knowledge-based smart data cleaner  " , SIGKDD ,2000, p.  290-294 ( ISBN  1-58113-233-6 , DOI  10.1145 / 347090.347154 , ler online )
  • (en) P. Vassiliadis , Z. Vagena , S. Skiadopoulos , N. Karayannidis e T. Sellis , "  Arktos: A Tool For Data Cleaning and Transformation in Data Warehouse Environments  " , IEEE ,2000, p.  42-47 ( DOI  10.1.1.109.2911 , ler online )
  • (pt) H. Müller e JC. Freytag , problemas, métodos e desafios na limpeza abrangente de dados ,2003( leia online )

Veja também

links externos