Las mejores bases de datos de gráficos

Las bases de datos gráficas, que expresan explícitamente las conexiones entre nodos, son más eficientes en el análisis de redes (informáticas, humanas, geográficas o de otro tipo) que las bases de datos relacionales. Eso le da a las bases de datos gráficas una ventaja para aplicaciones tales como detección de fraude y sistemas de recomendación.

Uno de los principales atractivos de las bases de datos de gráficos es la capacidad de ejecutar algoritmos computacionales de gráficos. Estos se utilizan para tareas que no se prestan bien a las bases de datos relacionales, como la búsqueda de gráficos, la búsqueda de rutas, la centralidad, el PageRank y la detección de comunidades. Los algoritmos de gráficos se admiten principalmente en bases de datos de gráficos analíticos (OLAP y HTAP), aunque algunas bases de datos de gráficos transaccionales (OLTP) como Neo4j los admiten.

Todas las bases de datos de gráficos discutidas aquí tienen una buena escalabilidad horizontal. Algunos también admiten réplicas de lectura, distribución global y fragmentación horizontal automática.

Amazonas Neptuno

Amazon Neptune es un servicio de base de datos de grafos transaccional (OLTP) totalmente administrado con propiedades ACID y consistencia inmediata, que tiene en su núcleo un motor de base de datos de grafos de alto rendimiento especialmente diseñado que está optimizado para almacenar miles de millones de relaciones y consultar el gráfico en milisegundos. latencia. Neptune admite dos de los lenguajes de consulta de gráficos de código abierto más populares, Apache TinkerPop Gremlin y W3C SPARQL.

Los clústeres de bases de datos de Neptune pueden tener hasta 64 TB de almacenamiento de escalado automático en seis réplicas de sus datos en tres zonas de disponibilidad, y más si habilita la alta disponibilidad mediante el uso de réplicas de lectura en zonas adicionales. Neptune detecta automáticamente las fallas de la base de datos y se reinicia, generalmente en 30 segundos o menos, sin necesidad de realizar una recuperación de fallas o de reconstruir la caché de la base de datos, ya que la caché está aislada de los procesos de la base de datos y puede sobrevivir a un reinicio. Si falla una instancia principal completa, Neptune automáticamente conmutará por error a una de hasta 15 réplicas de lectura. Las copias de seguridad se transmiten continuamente a Amazon S3.

Puede escalar los clústeres de Neptune hacia arriba y hacia abajo modificando las instancias o, para evitar el tiempo de inactividad, agregando una instancia del tamaño deseado y cerrando la instancia anterior una vez que se haya migrado una copia de los datos y haya promovido la nueva instancia a primaria. Los tamaños de las instancias de VM de Neptune van desde db.r4.large (dos vCPU y 16 GiB de RAM) a db.r4.8xlarge (32 vCPU y 244 GiB de RAM), lo que le da a Neptune un rango dinámico de 16x para escrituras y un rango dinámico de 256x para lee (contando las réplicas leídas).

Lea mi reseña de Amazon Neptune.

AnzoGraph

AnzoGraph es una base de datos de gráficos OLAP en memoria masivamente paralela que funciona con fuentes de datos empresariales y realiza cargas de datos paralelas de formatos RDF y CSV. AnzoGraph se puede implementar en entornos sandbox de un solo nodo o en clústeres con tantos nodos como sea necesario para la producción. AnzoGraph tiene propiedades de transacción ACID.

AnzoGraph utiliza datos triples y cuádruples RDF estándar de W3C y consultas SPARQL 1.1. Admite gráficos de propiedades etiquetados como parte de la tienda RDF, de conformidad con los estándares RDF * y SPARQL * propuestos, y tiene extensiones de SPARQL para admitir algoritmos de gráficos, inferencias, agregados de ventanas, funciones de BI y vistas con nombre. Está prevista la compatibilidad con el lenguaje OpenCypher compatible con Neo4j y el protocolo Bolt de Neo4j.

AnzoGraph presenta una ejecución de consultas de gráficos de alto rendimiento y escalabilidad a miles de millones e incluso billones de triples, así como cargas rápidas de datos paralelas que no requieren desconectar la base de datos. Los clústeres de AnzoGraph se pueden implementar en CentOS, Kubernetes y AWS. Las implementaciones de Google Cloud Platform y Azure de AnzoGraph generalmente se tratan como implementaciones de Kubernetes. AnzoGraph ha demostrado escalabilidad a 40 nodos en un punto de referencia sintético.

Lea mi reseña de AnzoGraph.

Neo4j

Neo4j es una base de datos de gráficos OLTP escalable con algunas capacidades OLAP. Neo4j fue la base de datos de gráficos original, creada por primera vez en 1999, y sigue siendo líder del mercado.

Mientras que Neo4j Community Edition de código abierto está limitado a un solo servidor, Neo4j Enterprise Edition le permite agregar tantos nodos a un clúster como necesite para fines de rendimiento.

Cada nodo de un clúster de alta disponibilidad de Neo4j contiene la base de datos y un componente de administración del clúster, y se puede acceder al clúster a través de un equilibrador de carga. El gráfico completo se replica en cada instancia del clúster y la capacidad de lectura de cada clúster de alta disponibilidad aumenta linealmente con el número de instancias del servidor. Neo4j puede realizar decenas de miles de escrituras por segundo mientras mantiene transacciones completamente ACID.

En un clúster causal de Neo4j , un clúster central de servidores de lectura y escritura se combina con uno o más clústeres de réplicas de lectura actualizados asincrónicamente. Se garantiza la coherencia causal de cualquier aplicación, lo que significa que se garantiza que leerá al menos sus propias escrituras, incluso cuando el hardware y las redes fallan. Las réplicas de lectura en un clúster causal se pueden distribuir geográficamente para mejorar el rendimiento de las consultas para los usuarios cerca de las réplicas.

Lea mi reseña de Neo4j.

TigerGraph

TigerGraph es una base de datos de gráficos HTAP paralela nativa en tiempo real disponible para su implementación en la nube o en las instalaciones. TigerGraph admite propiedades ACID, tiene compresión de datos incorporada, divide automáticamente un gráfico dentro de un clúster y afirma ser más rápido que la competencia. Utiliza una arquitectura de paso de mensajes que es inherentemente paralela de una manera que se escala con el tamaño de los datos.

TigerGraph fue diseñado para poder realizar análisis de enlaces profundos, así como procesamiento de transacciones en línea en tiempo real y carga de datos de gran volumen. Por "análisis de enlaces profundos", TigerGraph significa seguir las relaciones desde un vértice a través del gráfico durante tres o más saltos y analizar los resultados.

Si bien se han adoptado ampliamente varios lenguajes de consulta de gráficos de código abierto, como Cypher, Gremlin y SPARQL, TigerGraph tiene un nuevo lenguaje de consulta, GSQL. GSQL combina una sintaxis de consulta similar a SQL con navegación de gráficos similar a Cypher, además de programación de procedimientos y funciones definidas por el usuario. TigerGraph puede convertir Cypher a GSQL para personas que se mueven desde una base de datos Neo4j.

TigerGraph tiene una oferta de nube administrada que actualmente se encuentra en una vista previa limitada. TigerGraph ha demostrado una aceleración de 6.7x cuando se ejecuta un clúster de lectura y escritura con ocho máquinas, pero no ha dicho nada sobre las réplicas de lectura o la distribución geográfica.

Lea mi reseña de TigerGraph.