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.
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.
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.)
Primeiro nome | Era | Sexo | Cortar |
---|---|---|---|
Alice | 150 | F | 1,70 |
Bob joe | 34 | M | |
Charlie | 19 | 1,67 |
Um erro léxico é uma discrepância entre o nome dos dados esperados e o formato especificado.
Primeiro nome | Era |
---|---|
Alice | F |
Prumo | M |
Charlie | 21 |
Um erro de formatação é uma entrada que não corresponde a um determinado padrão.
Sobrenome |
---|
Doe, John |
John smith |
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.
Distância |
---|
25 km |
23 km |
20 mi |
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çãoErros 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çãoOs 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álidosEssas 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.
Este tipo de erro resulta da omissão de um campo de dados, quando falta o valor esperado.
Primeiro nome | Era | Sexo | Cortar |
---|---|---|---|
Alice | 23 | F | 1,70 |
Prumo | 34 | M | 1,82 |
Charlie | 19 | M |
Este tipo de erro surge quando os dados estão vazios ou ausentes.
Primeiro nome | Era | Sexo | Cortar |
---|---|---|---|
Alice | F | 1,70 | |
Prumo | M | 1,86 | |
Charlie | M | 1,68 |
Existem dois tipos de abordagem:
A limpeza de dados é dividida em 3 fases:
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.
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).
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.
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.
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.
A pesquisa permite fornecer novas soluções que utilizem as abordagens mencionadas acima. Aqui estão alguns :
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 é 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:
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 é uma abordagem baseada em regras focada principalmente na eliminação de duplicatas.
Esta solução consiste em 3 etapas :
Existem 4 tipos de regras para a etapa de processamento:
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 é 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 é 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.