martes, 27 de mayo de 2014

Big Data: Gestión de datos no estructurados


La gestión de los datos no estructurados se ha convertido en uno de los principales retos a los que hacen frente las compañías en lo relativo a gestión de información. En este post damos una breve introducción al tratamiento de los mismos y las problemáticas más comunes en su gestión.






Definición de datos no estructurados:

Una posible definición de datos no estructurados,  son aquellos datos no almacenados en una base de datos tradicional. La información no estructurada no puede ser almacenada en estructuras de datos relacionales predefinidas.
Se pueden establecer diferentes clasificaciones, vamos a considerar dos de ellas.

  • Datos no estructurados y semiestructurados. Los datos semiestructurados serían aquellos datos que no residen de bases de datos relacionales, pero presentan una organización interna que facilita su tratamiento, tales como documentos XML y datos almacenados en bases de datos NoSQL.
  • Datos de tipo texto y no-texto. Datos no estructurados de tipo texto podrían ser datos generados en las redes sociales, foros, e-mails, presentaciones Power Point o documentos Word, mientras que datos no-texto podrían ser ficheros de  imágenes jpeg, ficheros de audio mp3 o ficheros de video tipo flash.

Características de datos no estructurados:

Las principales características de los datos no estructurados son las siguientes:
  • Volumen y crecimiento: el volumen de datos y la tasa de crecimiento de los datos no estructurados es muy superior al de los datos estructurados. Por ejemplo, twitter genera 12 Terabytes de información cada día. De acuerdo con Gartner, la tasa anual de crecimiento de datos es del 40 a 60 por ciento, pero para los datos no estructurados en empresas, la tasa de crecimiento puede llegar al 80 por ciento (informe 2012).
  •  Orígenes de datos:  El origen de los datos es muy diverso: datos generados en redes sociales, datos generados en foros, e-mails, datos extraídos de la web empleando técnicas de web semántica, documentos internos de la compañía (word, pdf, ppt).
  • Almacenamiento: Debido a su estructura no podemos emplear arquitectura relacional, siendo necesario trabajar con herramientas ‘Big Data’, siendo crítico en estas arquitecturas los aspectos relacionados con la escalabilidad y paralelismo. Según el tipo de dato se impone el almacenamiento cloud.  Monitorizar la frecuencia de uso y la detección de datos inactivos son aspectos críticos de cara a reducir costes de almacenamiento.
  • Terminología e idiomas: La terminología es una cuestión crítica tratando datos no estructurados de tipo texto. Es habitual llamar a lo mismo de diferentes formas, de tal modo que es necesario una racionalización de la terminología. Otra cuestión es el idioma en el que se he generado la información tratada. 
  • Seguridad: Hay que considerar que algunos datos no estructurados de tipo texto, pueden no ser seguros. Por otra parte el control de accesos a los mismos es complejo debido a cuestiones de confidencialidad y la difícil clasificación del dato.

Tratamiento de dato no estructurados:

Las principales cuestiones a considerar en el tratamiento de información no estructurada son las siguientes:



  • Crear una plataforma escalable (infraestructura y procesos) que permita tratar grandes cantidades de datos.  Las tecnologías RDBMS son insuficientes para tratar información no estructurada.  Es necesaria una capacidad de almacenamiento y una capacidad de proceso escalable.  Teniendo en cuenta que el coste económico de mantener plataformas escalables, hay que considerar la opción cloud. Desde el punto de vista de los procesos, en ocasiones es interesante utilizar in-memory analytics.
  • Añadir información/estructura complementaria a los datos no estructurados. Es importante añadir algún tipo de estructura a los datos no estructurados que ayude a su tratamiento. Por ejemplo, en una colección de tweets de redes sociales puede ser interesante añadir  campos tales como el idioma, la localización geográfica para su posterior procesado. Esta estructura adicional que añadimos debe ser modelizada de cara a estar en constante evolución.
  • Crear conjuntos reducidos de datos que sean representativos. Dado el volumen ingente  de información, es importante trabajar con muestras de datos que sean estadísticamente representativos sobre los datos a analizar. Muchos análisis pueden llevarse a cabo con un grado de exactitud razonable, utilizando conjuntos de datos que son más pequeños en un orden de magnitud que la información en bruto.
  • Desarrollo de algoritmos. Hay diferentes tipos de aproximación hacia la información no estructurada. Por ejemplo, para procesos de text mining, puede utilizarse natural language processing combinado con redes neuronales. Otras técnicas como redes bayesianas permiten descubrir patrones sobre múltiples dimensiones. Son importantes también las técnicas de visualización de datos.
  •  Procesos de depuración/limpiado de datos. Dado el ingente volumen de datos, se convierte en crítico la correcta gestión del histórico de datos. Detección de datos no usados o de frecuencia de consulta muy baja con objeto de limpiar información y liberar espacio.

Ejemplo sencillo tratamiento datos no estructurados (redes sociales):

Dada la variada naturaleza de los datos no estructurados, hay infinidad de posibles procesos relacionados con ellos.  A continuación mostramos un sencillo ejemplo de tratamiento de datos provenientes de redes sociales. El objetivo de este análisis de datos es conocer la percepción que existe sobre el precio de determinado producto en twitter.


  • Extracción:  Utilizando una clase de java (ejemplo twitter4j) leemos el feed de Twitter disponible en https://twitter.com/search/realtime. Añadimos a los campos disponibles calificaciones del tipo: idioma, localización geográfica.
  • Transformación: Filtramos todos aquellos tuits que contengan el nombre del producto. Refinamos el filtro introduciendo campos del tipo (“precio” ) +  (“barato”, “caro”, “económico” etc..) , teniendo en cuenta el idioma en el que  se generan lo tuits. Valorar la opción en base al volumen de obtener una muestra representativa de los datos extraídos y filtrados.
  • Volcado a BBDD : Insertamos en una tabla el registro del tuit con la calificación identificada (idioma, localización geográfica).
  • Informes: Creamos informe que permita realizar análisis por tiempo y campos de calificación. Hay que considerar que este informe puede ser actualizado en tiempo real. 

No hay comentarios:

Publicar un comentario