Qué es Neo4j y para qué sirve una base de datos orientada a grafos
Las bases de datos orientadas a grafos (BDOG) ayudan a encontrar relaciones entre los datos y extraer su verdadero valor. Una de las más conocidas es Neo4j, un servicio implementado en Java.
Da igual quién te hable de datos y dónde y por qué lo haga, seguramente te dirá que lo más importante de los Big Data es extraer valor de la información (es el concepto perfecto en el que se engloban las cuatro famosas V de los grandes datos: volumen, velocidad, variedad y veracidad). Muchas empresas tienen datos que sirven de poco porque no están estructurados, no conocen la relación entre ellos.
Las bases de datos orientadas a grafos (BDOG) ayudan a encontrar relaciones y dar sentido al puzzle completo. Una de las más conocidas es Neo4j, un servicio implementado en Java. Su primera versión fue lanzada en febrero de 2010 y en estos momentos está bajo dos tipos de licencia: una licencia comercial por un lado y una Affero General Public License (AGPL) por otro. Su desarrolladora es la compañía Neo Technology, una startup sueca con sede en San Francisco.
Empresas como eBay, Walmart, Telenor, UBS, Cisco, Hewlett-Packard o Lufthansa han confiado en las cualidades de Neo4j para mejorar sus servicios.
En Dare2Data, un evento reciente dedicado a los datos organizado por el Centro de Innovación BBVA, David Montag, ingeniero de software de Neo Technology y asesor de gigantes como Cisco, Adobe y Viadeo, dio una conferencia sobre qué es Neo4j, cuáles son sus ventajas y también sus usos en el mercado actual.
“Hoy todas las empresas del mundo intentan hacer negocio impulsado por los datos”, afirmó Montag. Durante su charla, este desarrollador explicó varios casos de uso de Neo4j: eBay la usa para planificar las rutas del servicio de comercio electrónico; Walmart analiza cada venta de un producto para “entender qué tipo de artículos te gusta comprar y qué tipo de productos te puede recomendar”; o por ejemplo Cisco, que gracias a Neo4j ofrece soluciones personalizadas a sus clientes “sin que tengan que levantar el teléfono y hablar con el servicio de asistencia”.
Cómo funciona Neo4j y cuáles son sus ventajas
Neo4j usa grafos para representar datos y las relaciones entre ellos. Un grafo se define como cualquier representación gráfica formada por vértices (se ilustran mediante círculos) y aristas (se muestran mediante líneas de intersección). Dentro de estas representaciones gráficas, tenemos varios tipos de grafos:
- Grafos no dirigidos: los nodos y las relaciones son intercambiables, su relación se puede interpretar en cualquier sentido. Las relaciones de amistad en la red social Facebook, por ejemplo, son de este tipo.
- Grafos dirigidos: los nodos y la relaciones no son bidireccionales por defecto. Las relaciones en Twitter son de este tipo. Un usuario puede seguir a determinados perfiles en esta red social sin que ellos le sigan a él.
- Grafos con peso: en este tipo de gráficas las relaciones entre nodos tienen algún tipo de valoración numérica. Eso permite luego hacer operaciones.
- Grafos con etiquetas: estos grafos llevan incorporadas etiquetas que pueden definir los distintos vértices y también las relaciones entre ellos. En Facebook podríamos tener nodos definidos por términos como ‘amigo’ o ‘compañero de trabajo’ y la relaciones como ‘amigo de’ o ‘socio de’.
- Grafos de propiedad: es un grafo con peso, con etiquetas y donde podemos asignar propiedades tanto a nodos como relaciones (por ejemplo, cuestiones como nombre, edad, país de residencia, nacimiento). Es el más complejo.
Neo4j utiliza grafos de propiedad para extraer valor añadido de los datos de cualquier empresa con gran rendimiento y de una forma ágil, flexible y escalable.
1.- Rendimiento:
Las bases de datos orientadas a grafos como Neo4j tienen mejor rendimiento que las relacionales (SQL) y las no relacionales (NoSQL). La clave es que, aunque las consultas de datos aumenten exponencialmente, el rendimiento de Neo4j no desciende, frente a lo que sí sucede con las BD relacionales como MySQL.
Las BDOG responden a las consultas actualizando el nodo y la relaciones de esa búsqueda y no todo el grafo completo. Eso optimiza mucho el proceso.
Volker Pacher, desarrollador de eBay y cliente de Neo4j, explica con datos lo que supuso el cambio de MySQL a esta BDOG en el rendimiento de Shutl, la plataforma que coordina la entregas entre tiendas, mensajerías y compradores en eBay Now: “Nuestra solución Neo4j es literalmente mil veces más rápida que la solución anterior MySQL, con búsquedas que requieren entre 10 y 100 veces menos código”.
2.- Agilidad:
Neo4J tiene muchas ventajas, pero una es su agilidad en la gestión de datos. Si nosotros quisiéramos llevar al límite sus capacidades, tendríamos que superar un volumen total de 34.000 millones de nodos (datos), 34.000 millones de relaciones entre esos datos, 68.000 millones de propiedades y 32.000 tipos de relaciones.
3.- Flexibilidad y escalabilidad:
Cuando los desarrolladores de una empresa trabajan con grandes datos, buscan flexibilidad y escalabilidad. Las bases de datos orientadas a grafos aportan mucho en este sentido porque cuando aumentan las necesidades, las posibilidades de añadir más nodos y relaciones a un grafo ya existente son enormes.
Casos de uso de Neo4j
Neo4j tiene distintos usos en la actualidad en empresas internacionales. Neo Technology tiene varios libros blancos analizando cada uno de estos usos:
Neo4j ya trabaja con varias corporaciones en la detección del fraude en sectores como la banca, los seguros o el comercio electrónico. Esta base de datos puede descubrir patrones que con otro tipo de BD sería difícil de detectar.
Las redes de fraude tienen mecanismos para delinquir que no son detectables con el análisis lineal de los datos. Pero con un análisis escalable de las múltiples relaciones entre los datos, esto es mucho más fácil.
Un fraude habitual es la apertura de líneas de crédito con identidades falsas con la idea no pagar: en la actualidad, entre el 10% y el 20% de la deuda sin respaldo en los bancos líderes tanto en EEUU como en Europa se debe a este fraude.
-Recomendaciones en tiempo real y redes sociales:
Neo4j permite conectar de forma eficaz a las personas con nuestros productos y servicios, en función de la información personal, sus perfiles en redes sociales y su actividad online reciente. En este sentido, las bases de datos orientadas a grafos son interesantes porque son capaces de conectar personas e intereses.
Con esa información, una empresa puede ajustar sus productos y servicios a su público objetivo y personalizar las recomendación en función de los perfiles. Eso es lo que permite que se aumente la precisión comercial y el compromiso del cliente.
Las bases de datos gráficas son el antídoto perfecto ante el crecimiento desbordante de los datos. La gran cantidad de información, dispositivos y usuarios hacen que las tecnologías tradicionales no puedan gestionar tantos datos. La flexibilidad, rendimiento y escalabilidad de Neo4j permite gestionar, monitorizar y optimizar todo tipo de redes físicas y virtuales pese a la gran cantidad de datos.
-Gestión de sistemas de datos maestros:
La gestión de datos maestros (Master Data Management) es un auténtico quebradero de cabeza en las empresas. La creación de un sistema de información centralizado y fiable siempre es una cuestión compleja. El objetivo final es que cada miembro de una organización use los mismos formatos y aplicaciones para los datos. Eso genera un protocolo de trabajo que es aprovechable por el resto.
Neo4j ayuda a crear sistemas de ese tipo con velocidad, agilidad, rendimiento y todo eso sin perder flexibilidad y escalabilidad con los datos. Tendríamos un sistema de creación de insights en 360º: empleados, clientes y productos.
Tras el evento de Dare2Data durante la InnovaChallenge Data Week en el Centro de Innovación BBVA, David Montag nos ha dado las claves para entender las bases de datos orientadas a grafos: