Les meilleures bases de données graphiques

Les bases de données graphiques, qui expriment explicitement les connexions entre les nœuds, sont plus efficaces dans l'analyse des réseaux (informatiques, humains, géographiques ou autres) que les bases de données relationnelles. Cela donne aux bases de données graphiques une longueur d'avance pour des applications telles que les systèmes de détection et de recommandation de fraude.

L'un des principaux atouts des bases de données de graphes est la possibilité d'exécuter des algorithmes de calcul de graphes. Ils sont utilisés pour les tâches qui ne se prêtent pas bien aux bases de données relationnelles, telles que la recherche de graphes, la recherche de chemin, la centralité, le PageRank et la détection de communauté. Les algorithmes de graphes sont principalement pris en charge dans les bases de données de graphes analytiques (OLAP et HTAP), bien que certaines bases de données de graphes transactionnels (OLTP) telles que Neo4j les prennent en charge.

Toutes les bases de données graphiques décrites ici ont une bonne évolutivité horizontale. Certains prennent également en charge les réplicas en lecture, la distribution globale et le partitionnement horizontal automatique.

Amazon Neptune

Amazon Neptune est un service de base de données de graphes transactionnel (OLTP) entièrement géré avec des propriétés ACID et une cohérence immédiate, qui a en son cœur un moteur de base de données de graphes hautes performances spécialement conçu pour stocker des milliards de relations et interroger le graphe en quelques millisecondes. latence. Neptune prend en charge deux des langages de requête de graphes open source les plus populaires, Apache TinkerPop Gremlin et W3C SPARQL.

Les clusters de bases de données Neptune peuvent avoir jusqu'à 64 To de stockage à mise à l'échelle automatique dans six répliques de vos données sur trois zones de disponibilité, et plus encore si vous activez la haute disponibilité en utilisant des réplicas en lecture dans des zones supplémentaires. Neptune détecte automatiquement les pannes de base de données et redémarre - généralement en 30 secondes ou moins - sans avoir à effectuer une récupération après incident ou à reconstruire le cache de la base de données, car le cache est isolé des processus de base de données et peut survivre à un redémarrage. Si une instance principale entière échoue, Neptune basculera automatiquement vers l'un des 15 réplicas en lecture maximum. Les sauvegardes sont continuellement diffusées sur Amazon S3.

Vous pouvez mettre à l'échelle les clusters Neptune vers le haut et vers le bas en modifiant les instances ou, pour éviter les temps d'arrêt, en ajoutant une instance de la taille souhaitée et en arrêtant l'ancienne instance une fois qu'une copie des données a migré et que vous avez promu la nouvelle instance en primaire. Les tailles d'instance de VM Neptune vont de db.r4.large (deux vCPU et 16 Gio de RAM) à db.r4.8xlarge (32 vCPU et 244 Gio de RAM), ce qui donne à Neptune une plage dynamique de 16x pour les écritures et une plage dynamique de 256x pour reads (en comptant les réplicas en lecture).

Lisez ma critique d'Amazon Neptune.

AnzoGraph

AnzoGraph est une base de données de graphes OLAP en mémoire massivement parallèle qui fonctionne avec des sources de données d'entreprise et effectue des chargements de données parallèles aux formats RDF et CSV. AnzoGraph peut être déployé dans des sandbox à nœud unique ou dans des clusters avec autant de nœuds que nécessaire pour la production. AnzoGraph a des propriétés de transaction ACID.

AnzoGraph utilise les données triples et quadruples RDF standard du W3C et les requêtes SPARQL 1.1. Il prend en charge les graphes de propriétés étiquetés dans le cadre du magasin RDF, conformément aux normes RDF * et SPARQL * proposées, et il a des extensions de SPARQL pour prendre en charge les algorithmes de graphes, l'inférence, les agrégats de fenêtres, les fonctions BI et les vues nommées. Le support du langage OpenCypher compatible Neo4j et du protocole Neo4j Bolt est prévu.

AnzoGraph offre une exécution de requête graphique haute performance et une évolutivité à des milliards, voire des billions de triplets, ainsi que des charges de données parallèles rapides qui ne nécessitent pas de mettre la base de données hors ligne. Les clusters AnzoGraph peuvent être déployés sur CentOS, Kubernetes et AWS. Les déploiements Google Cloud Platform et Azure d'AnzoGraph sont généralement traités comme des déploiements Kubernetes. AnzoGraph a démontré une évolutivité à 40 nœuds dans un benchmark synthétique.

Lisez ma critique d'AnzoGraph.

Neo4j

Neo4j est une base de données de graphes OLTP évolutive avec certaines capacités OLAP. Neo4j était la base de données graphique originale, créée pour la première fois en 1999, et continue d'être un leader du marché.

Alors que l'édition open source Neo4j Community est limitée à un seul serveur, l'édition Neo4j Enterprise vous permet d'ajouter autant de nœuds à un cluster que nécessaire à des fins de performances.

Chaque nœud d'un cluster à haute disponibilité Neo4j contient la base de données et un composant de gestion du cluster, et le cluster est accessible via un équilibreur de charge. Le graphique complet est répliqué sur chaque instance du cluster et la capacité de lecture de chaque cluster HA augmente linéairement avec le nombre d'instances de serveur. Neo4j peut commettre des dizaines de milliers d'écritures par seconde tout en maintenant des transactions entièrement ACID.

Dans un cluster causal Neo4j , un cluster principal de serveurs en lecture-écriture est combiné avec un ou plusieurs clusters mis à jour de manière asynchrone de répliques en lecture. Toute application est garantie de cohérence causale, ce qui signifie qu'elle est garantie de lire au moins ses propres écritures, même en cas de défaillance du matériel et des réseaux. Les réplicas en lecture dans un cluster causal peuvent être répartis géographiquement pour améliorer les performances des requêtes pour les utilisateurs proches des réplicas.

Lisez mon avis sur Neo4j.

TigerGraph

TigerGraph est une base de données de graphiques HTAP parallèle native en temps réel, disponible pour un déploiement dans le cloud ou sur site. TigerGraph prend en charge les propriétés ACID, dispose d'une compression de données intégrée, partitionne automatiquement un graphe au sein d'un cluster et prétend être plus rapide que la concurrence. Il utilise une architecture de transmission de messages qui est intrinsèquement parallèle d'une manière qui s'adapte à la taille des données.

TigerGraph a été conçu pour pouvoir effectuer des analyses de liens profonds ainsi que le traitement des transactions en ligne en temps réel et le chargement de données à haut volume. Par «analyse des liens profonds», TigerGraph signifie suivre les relations d'un sommet à travers le graphique pendant trois sauts ou plus et analyser les résultats.

Alors que plusieurs langages de requête de graphes open source ont été largement adoptés, tels que Cypher, Gremlin et SPARQL, TigerGraph a un nouveau langage de requête, GSQL. GSQL combine une syntaxe de requête de type SQL avec une navigation graphique de type Cypher, ainsi qu'une programmation procédurale et des fonctions définies par l'utilisateur. TigerGraph peut convertir Cypher en GSQL pour les personnes qui quittent une base de données Neo4j.

TigerGraph propose une offre cloud gérée actuellement en préversion limitée. TigerGraph a démontré une accélération de 6,7x lors de l'exécution d'un cluster en lecture-écriture avec huit machines, mais n'a rien dit sur les répliques en lecture ou la distribution géographique.

Lisez ma critique de TigerGraph.