La limpieza de datos es la operación de detección y corrección (o eliminación) de errores presentes en los datos almacenados en bases de datos o en archivos .
Uno de los mayores problemas con los almacenes de datos es la limpieza de datos .
Los datos presentes en las bases de datos pueden tener varios tipos de errores, como errores tipográficos, información faltante, inexactitudes, etc. La parte incorrecta de los datos procesados puede ser reemplazada, modificada o eliminada. El proceso de limpieza identifica datos erróneos y los corrige automáticamente con un programa de computadora o se los ofrece a un humano para que los modifique.
La limpieza de datos es diferente a la validación de datos. La validación de datos es el paso que consiste en verificar y rechazar los datos que no respetan ciertas reglas antes de agregarlos a la base de datos, mientras que la limpieza se realiza después (sobre los datos ya presentes en la base de datos).
Los enfoques de limpieza clásicos utilizan restricciones de integridad, estadísticas o aprendizaje automático para limpiar los datos.
Los problemas con la limpieza de datos surgieron a principios de la década de 2000 con la explosión de Internet y los almacenes de datos.
Los almacenes de datos se utilizan para la toma de decisiones. Esto implica que los datos deben ser fiables. Los datos incorrectos o incoherentes pueden llevar a conclusiones erróneas y una mala toma de decisiones.
Por ejemplo, el gobierno puede querer analizar las cifras del censo de población para decidir qué regiones requieren más gasto e inversión en infraestructura y servicios. En este caso, es importante tener acceso a datos confiables para evitar decisiones presupuestarias erróneas.
Los errores de datos cuestan a las organizaciones el equivalente al 10-20% de su presupuesto de implementación. Además, se estima que el 40-50% del presupuesto de tiempo de un proyecto se dedica a corregir errores en los datos.
Los errores de datos pueden ser de todo tipo. Por ejemplo, puede aparecer un error durante una entrada (datos faltantes, datos duplicados, error de entrada, formato incorrecto, etc.)
Nombre propio | Edad | Sexo | Tamaño |
---|---|---|---|
Alicia | 150 | F | 1,70 |
Bob Joe | 34 | METRO | |
Charlie | 19 | 1,67 |
Un error léxico es una discrepancia entre el nombre de los datos esperados y el formato especificado.
Nombre propio | Edad |
---|---|
Alicia | F |
Beto | METRO |
Charlie | 21 |
Un error de formato es una entrada que no coincide con un patrón determinado.
apellido |
---|
Doe, John |
John Smith |
Se produce un error de irregularidad cuando un dato no se representa de forma regular, siguiendo el mismo diagrama, la misma secuencia lógica de escritura. Esto se puede hacer para la representación de la distancia, por ejemplo, utilizando diferentes sistemas métricos.
Distancia |
---|
25 kilometros |
23 kilometros |
20 mi |
Estos son los errores que violan las reglas de integridad del esquema de datos.
A menudo, estas son reglas de sentido común, como verificar un valor mayor que 0 para la edad de una persona o verificar la singularidad de una clave principal en una base de datos.
Errores de contradicciónLos errores de contradicción son contradicciones en los datos.
Por ejemplo, puede ocurrir un error de contradicción cuando la edad especificada no corresponde a la fecha de nacimiento.
Errores de duplicaciónLos errores de duplicación ocurren cuando se almacenan múltiples ocurrencias de los mismos datos.
Estos errores pueden verse como un caso específico de errores de contradicción.
Errores de datos no válidosSe trata de entradas que se dice que no son válidas pero que no son detectables mediante la implementación de restricciones. Estos son errores que son específicos del dominio.
Este tipo de error resulta de la omisión de un campo de datos, cuando falta el valor esperado.
Nombre propio | Edad | Sexo | Tamaño |
---|---|---|---|
Alicia | 23 | F | 1,70 |
Beto | 34 | METRO | 1,82 |
Charlie | 19 | METRO |
Este tipo de error surge cuando faltan datos o están vacíos.
Nombre propio | Edad | Sexo | Tamaño |
---|---|---|---|
Alicia | F | 1,70 | |
Beto | METRO | 1,86 | |
Charlie | METRO | 1,68 |
Hay dos tipos de enfoques:
La limpieza de datos se divide en 3 fases:
El método de análisis se utiliza para la detección de errores de sintaxis. Un analizador decide sobre la aceptabilidad de los datos representados por una cadena de caracteres. Asegura que los datos sigan la especificación.
Este tipo de enfoque requiere un conjunto de datos que se pueden convertir a distancia para poder compararlos.
Este enfoque tiene sus límites. De hecho, generalmente se basa en expresiones regulares para determinar la validez de una entrada. Este proceso de verificación se puede mejorar con técnicas de aprendizaje automático.
La transformación de datos es una operación que combina varios campos en uno.
Por ejemplo, la descomposición de una fecha en varios campos (año, mes y día) o la transformación de una entrada booleana en un entero (verdadero = 1).
Las restricciones de integridad se utilizan inicialmente para evitar errores de datos, sin embargo, pueden no ser suficientes y los errores de datos se producen con el tiempo. En algunos casos, la mejor manera de mejorar la calidad de los datos no es corregir los datos corruptos, sino cambiar las restricciones de integridad porque la semántica de los datos o la aplicación puede haber cambiado.
El objetivo de este método no es modificar los datos de forma directa, sino encontrar y modificar las restricciones de integridad cuestionables para que coincidan mejor con los datos.
A pesar de la investigación sobre las restricciones de integridad, así como otros métodos para mejorar la calidad de los datos, las bases de datos aún pueden contener una serie de errores sutiles, sintácticos o semánticos, que son difíciles de ver. Imposibles de expresar (y detectar) utilizando las restricciones generales que se ofrecen en los DBMS actuales. .
El uso de estadísticas permite obtener correcciones de errores más fiables. Al identificar las posibles dependencias estadísticas entre pares de datos similares y al desarrollar algoritmos que pueden injertarse simplemente en los DBMS estándar, podemos estimar automáticamente estas dependencias. Este método permite, por ejemplo, deducir valores correctos incluso en presencia de valores perdidos o corruptos.
Se pueden utilizar métodos estadísticos para el análisis y / o corrección de datos.
Puede suceder que los métodos anteriores no tengan suficiente evidencia para poder identificar y corregir errores.
Un enfoque basado en el crowdsourcing permite utilizar bases de conocimiento externas que permiten identificar más errores de forma automática.
Los errores detectados que no se pueden reparar automáticamente se presentan a un humano que los corrige manualmente.
La investigación permite brindar nuevas soluciones que utilizan los enfoques mencionados anteriormente. A continuación, presentamos algunos:
La rueda de Potter es un método interactivo de limpieza de datos que permite el descubrimiento y la transformación de datos.
Esta solución permite al usuario construir transformaciones cuando ocurren y así mejorar iterativamente la detección y la transformación. Esto sin escribir programas complejos ni perder tiempo de desarrollo.
La rueda de Potter proporciona las transformaciones más generales posibles y lo suficientemente potentes como para realizar la mayoría de las tareas de transformación sin programación. Los usuarios ingresan expresiones regulares o expresiones gramaticales para especificar las transformaciones que se realizarán.
Con la rueda de Potter, depende del usuario elegir el resultado de salida deseado.
El problema con el enfoque de la rueda de Potter es encontrar una expresión regular que se parezca más al valor que se va a modificar sin ser demasiado específica. Tenga en cuenta que esto puede tener variaciones.
AJAX es un framework que intenta separar la parte lógica (diseño y especificación del flujo de trabajo) de la parte física (implementación). AJAX modela la lógica de limpieza de datos mediante un gráfico dirigido de transformaciones. Toma datos que contienen errores como entrada y devuelve datos limpios.
El objetivo principal es transformar los datos existentes de una o más colecciones en un esquema de destino mientras se eliminan los duplicados durante el proceso. El proceso se divide en 5 transformaciones : mapeo, visualización, coincidencia, agrupación y fusión . El operador de coincidencia es particularmente importante en la detección de duplicados.
AJAX posee:
Este lenguaje consta de consultas SQL enriquecidas por primitivas específicas. Su aspecto declarativo es heredado de SQL y garantiza una fácil implementación y mantenimiento de los programas de limpieza de datos. Sin embargo, no es completamente declarativo debido a la presencia de código imperativo utilizado para la personalización de un programa en particular si es necesario.
IntelliClean es un enfoque basado en reglas enfocado principalmente en eliminar duplicados.
Esta solución consta de 3 pasos :
Hay 4 tipos de reglas para el paso de procesamiento:
FraQL es otro lenguaje declarativo para especificar un proceso de limpieza de datos. Es similar a AJAX en que también es una extensión de SQL. FraQL le permite especificar esquemas y transformaciones de datos, estandarizaciones / normalizaciones de valores gracias a funciones creadas por el usuario.
Al combinar estas funciones de usuario con los operadores de unión y unión, FraQL permite la identificación y eliminación de duplicados. Finalmente, esta solución permite el llenado de valores perdidos así como la eliminación de tuplas inválidas mediante la detección de ruido en los datos.
ARKTOS es un framework capaz de ejecutar ETL para la creación de data warehouses . De hecho, los autores de esta solución consideran la limpieza de datos como parte de ETL. Los pasos individuales del proceso se denominan actividades. Cada actividad está vinculada a una entrada y una salida. La lógica de una actividad se describe mediante una consulta SQL. Cada solicitud está asociada con un tipo de error y una regla que indica el comportamiento en caso de que se produzca dicho error.
Hay 6 tipos de errores posibles en un proceso ETL, VIOLACIÓN DE LA CLAVE PRIMARIA, VIOLACIÓN DE LA ÚNICA Y VIOLACIÓN DE REFERENCIA son casos especiales de violación de las restricciones de integridad. El tipo de error NULL EXISTENCE está relacionado con la eliminación de valores perdidos. Los tipos de error restantes son DOMAIN MISMATCH y FORMAT MISMATCH, que se refieren a errores de léxico y de formato.
Los comportamientos que se pueden asociar con un error son IGNORE, que no marcará la tupla como incorrecta, DELETE, WRITE TO FILE e INSERT TO TABLE con la semántica esperada. Solo los dos últimos permiten la interacción con el usuario.
La calidad de la limpieza se puede medir para cada actividad ejecutando una consulta SQL similar que contará la relación de coincidencia / infracción de las tuplas.
ARKTOS define dos lenguajes declarativos utilizados para especificar el proceso ETL. También se proporciona un constructor de escenarios gráficos.
KATARA es un sistema que une las bases de conocimiento y el crowdsourcing para una limpieza de datos de buena calidad.
A diferencia de otros enfoques, KATARA usa un algoritmo para encontrar los tipos de datos y las relaciones entre ellos. Con esta información, KATARA utiliza un enfoque probabilístico para determinar la corrección más consistente a realizar. Estas probabilidades se determinan utilizando bases de conocimiento.
Encontrar datos corruptos es un problema difícil. Para mejorar esta investigación, la calidad de las limpiezas y la precisión de las reparaciones, KATARA mejora las bases de conocimiento con nuevas entradas limpiadas y verificadas por humanos.
KATARA permite a las empresas ahorrar dinero. De hecho, el uso de crowdsourcing implica que no es necesario contar con un experto en la materia para reparar los datos corruptos.