Como usar Machine Learning para hacer Data Quality
Las empresas cada vez necesitan almacenar y procesar más datos sobre sus clientes, proveedores, personal o pedidos.
Sin embargo, a mayor Volumen de datos, mayor es la probabilidad de que existan datos incorrectos, como las direcciones o teléfonos que afecten de forma negativa a nuestro negocio. Por ejemplo, un pedido con una dirección errónea será devuelto, reduciendo el beneficio de la empresa y la confianza del cliente.
Teniendo en cuenta esta problemática, se propone una solución: Big Data Quality . Descargar Paper
Es una Solución para el tratamiento de datos de personas con características Big Data (Volumen, Variedad, Velocidad), basada en la aplicación de procesos de limpieza, normalización y validación a un grupo de datos muy comunes en cualquier base de datos.
Esta solución escalable y extensible, incluye módulos para la limpieza, normalización validación, de-duplicación y corrección de datos de personas y direcciones en los siguientes tipos de datos : Teléfonos, Emails, Documentos de Identidad, Nombres y Apellidos, Direcciones...
Esta solución de Data Quality para Big Data se ha implementado usando la tecnología Apache Spark , la cual permite la escalabilidad del procesamiento a cualquier volumen de datos sin reescribir ni una línea de código. De esta forma, Big Data Quality se puede ejecutar en una única máquina y, si el tamaño de los datos de entrada, diccionarios de nombres, callejeros o datos recuperados de las API lo requieren, puede ejecutarse en un clúster Spark como Databricks o Amazon EMR en la nube o en instalación Hadoop on-premise como Hortonworks o Cloudera .
Además, estos módulos permiten realizar la validación y corrección de datos en función de datos de referencias obtenidos mediante diccionarios y API's de nombres, callejeros (ej. Correos) o dominios frecuentes de emails. En los siguientes apartados, analizaremos las principales funcionalidades de cada uno de los módulos.
Descargar Paper
TECNOLOGÍAS USADAS Y ESCALABILIDAD
Con el objetivo de abordar dicho problema de la manera más eficiente posible, se ha usado la tecnología Big Data Apache Spark . Ofreciendo de esta manera todos los beneficios de las tecnologías Big Data:
• Escalabilidad: El programa puede ejecutarse en 1 o n máquinas de un clúster sin hacer ningún cambio en el programa
• Rapidez de procesamiento: Gracias a la escalabilidad y a la arquitectura de Spark basada en el uso distribuido de la memoria RAM.
• Tolerancia a fallos: Incluso en procesos de Data Quality, que implican cantidades ingentes de datos, los procesos siempre terminarán.
• Extensibilidad: para añadir nuevas funcionalidades de calidad de datos.
Hemos optado por esta tecnología por la gran cantidad y variedad de fuentes de datos que es necesario procesar para lograr la calidad del dato, ya sean los datos de entrada como los diccionarios que se puedan utilizar para la corrección y validación de los datos.
Apache Spark es una tecnología Open Source con una comunidad muy activa. Es una herramienta donde los cálculos se ejecutan entre 10 y 100 veces más rápidos que otras plataformas. Además, en una misma herramienta nos permite combinar SQL in memory, streaming, Machine Learning y grafos.
Como se ha comentado, Spark se puede ejecutar en diversos entornos, ya sea en Spark standalone, Mesos, clúster en la nube en Databricks, EMR o HDInsight, distribuciones Hadoop on-premise, como Hortonworks o Cloudera.