pagina oficial edition community visualization graph-visualization

visualization - oficial - Visualización de Big Data utilizando el concepto "buscar, mostrar el contexto y ampliar a pedido"



neo4j enterprise (1)

Estoy tratando de visualizar una red realmente grande (nodos 3M y 13M) almacenada en una base de datos. Para la interactividad en tiempo real, planeo mostrar solo una parte del gráfico en función de las consultas de los usuarios y expandirlo a pedido. Por ejemplo, cuando un usuario hace clic en un nodo, amplío su vecindad. (Esto se llama "Buscar, mostrar contexto, expandir a pedido" en este documento ).

He analizado varias herramientas de visualización, incluidas Gephi , D3 , etc. Toman un archivo de texto como entrada, pero no tengo idea de cómo pueden conectar una base de datos y actualizar el gráfico en función de la interacción de los usuarios.

El documento vinculado implementó un sistema como ese, pero no describieron las herramientas que estaban usando.

¿Cómo puedo visualizar esos datos con los criterios anteriores?


Existen varias soluciones, pero básicamente todas usan el mismo enfoque:

  1. crea una capa en la parte superior de tu fuente para que puedas consultar en un nivel alto
  2. crea una capa frontal para hablar con el nivel explicado anteriormente
  3. usa la herramienta de visualización que quieras

Como apuntaba miro marchi , existen varias soluciones para lograr este objetivo, algunas de ellas vinculadas a fuentes de datos particulares, otras con mucha más libertad pero que requerirían algunas habilidades de codificación.

Fuente de datos

Comenzaría con la elección del tipo de fuente: del tipo de datos probablemente elegiría Neo4J, Titan u OrientDB (si le apetece algo más exótico con algún tipo de flexibilidad). Todos ellos ofrecen una API JSON REST, la primera con un sistema patentado y el lenguaje (Cypher) y los otros dos que usan el sistema Blueprint / Rexster. Neo4J también es compatible con la pila Blueprint si te gusta Gremlin over Cypher.

Para otras soluciones, tales como la DB de NoSQL o SQL, probablemente tenga que codificar una capa más arriba con la relativa API de REST, pero también funcionará; no recomendaría eso para el tipo de datos que tenga.

Ahora, solo queda el tercer punto y aquí tienes varias opciones.

Herramientas genéricas de Viz

  • Sigma.js es una herramienta gratuita y de código abierto para la visualización de gráficos bastante agradable. Linkurious está usando una versión de horquilla, por lo que sé en su producto.

  • Keylines es una herramienta comercial de visualización de gráficos, con estilos, análisis y diseños avanzados, y ofrece demostraciones de copiar / pegar si usa Neo4J o Titan . No es gratuito, pero admite navegadores aún más antiguos: IE7 en adelante ...

  • VivaGraph es otra herramienta gratuita y de código abierto para la herramienta de visualización de gráficos, pero tiene una comunidad más pequeña en comparación con SigmaJS.

  • D3 es el factótum para la visualización de datos, puedes hacer básicamente todo tipo de visualización basada en eso, pero la curva de aprendizaje es bastante empinada.

  • Gephi es otra solución de escritorio de código abierto y gratuito, tienes que usar un complemento externo con eso, pero es compatible con la mayoría de los formatos que existen: gráficos, CSV, Neo4J , etc.

Específico del vendedor

  • Linkurious es una herramienta completa comercial específica de Neo4J para buscar / investigar datos.

  • Consola web-admin de Neo4J : incluso si es básica, han mejorado mucho con la nueva versión 2.xx , basada en D3.js.

También hay otras soluciones que probablemente olvidé mencionar, pero las anteriores deberían ofrecer una buena variedad.

Otros nodos

Las herramientas JS anteriores visualizarán bien hasta 1500/2000 nodos a la vez, debido a los límites de JS.
Si desea visualizar cosas más grandes, mientras se expande, recomendaría soluciones de escritorio como Gephi.

Renuncia

Soy parte del equipo de desarrollo de Keylines .