JanusGraphes una base de datos de Grafos open-source (licencia Apache2) optimizada para almacenar y consultar grafos que contengan billones de vertices y Edges distribuidos en un Cluster y todo esto con usuarios concurrentes.
Veamos un ejemplo:
Para el grafo “The Graph of the Gods”
En Java lo cargaría así: https://github.com/JanusGraph/janusgraph/blob/master/janusgraph-core/src/main/java/org/janusgraph/example/GraphOfTheGodsFactory.java
Y ya puedo consultar con la consola de Gremlin.
Para saber quienes eran los padres de Hércules:
O quien es el nieto de Saturno:
Que se puede hacer también así:
O si quiero conocer todas las batallas entre Dioses que pasaron en un radio de 50 kms del centro de Atenas (latitude:37.97 y long:23.72)
Sus principales características son:
· Escalabilidad lineal y elástica para ir creciendo conforme se necesite
· Distribución y replicación de datos
· Soporte despliegue multi-datacenter
· Backups en caliente
· Soporte ACID and eventual consistency.
· Soporte para persistencia sobre diferentes backends: Apache Cassandra, Apache HBase, Google Cloud Bigtable y Oracle BerkeleyDB
· Soporte para graph data analytics sobre estas plataformas Apache Spark, Apache Giraph y Apache Hadoop
· Soporte para búsqueda full-text vía ElasticSearch, Apache Solr y Apache Lucene®
· Integración native con stack Apache TinkerPop vía Gremlin graph query language, Gremlin graph server y Gremlin applications
· Visualización de grafos vía Cytoscape, Gephi plugin for Apache TinkerPop, Graphexp, KeyLines by Cambridge Intelligence y Linkurious
Puedes seguir en la guía Getting Started with JanusGraph, descargarla aquí o accede a JanusGraph documentation
JanusGraph es usada en Producción por empresas como Red Hat, Uber o Netflix:
- CELUM – use case and system architecture
- FiNC
- G DATA
- Netflix – video and slides (graph discussion starts at #86)
- Qihoo 360 (about)
- Red Hat – application migration and assessment tool built on Windup
- Sift Security
- Times Internet – blog post about CMS use case (the CMS which is serving this blog post runs on JanusGraph)
- Uber