2010-06-04 17 views
28

Je me demande ce que les meilleures façons de stocker des graphiques dans le stockage persistant sont, pour une analyse ultérieure, la recherche, le regroupement, etc.Quelles sont les meilleures façons de stocker les graphiques dans le stockage persistant

Je vois Neo4j être une option, Je suis curieux de savoir s'il existe d'autres bases de données de graphiques disponibles. Quelqu'un a-t-il un aperçu de la façon dont les réseaux sociaux plus importants stockent leurs données basées sur un graphique (ou d'autres sites qui nécessitent le stockage de modèles de type graphique, par exemple RDF).

Qu'en est-il des options comme Cassandra ou MySQL?

+0

Titan: https://github.com/thinkaurelius/titan – jcadcell

Répondre

0

Vous pouvez regarder InfiniteGraph, qui sera publié pour la bêta très bientôt (http://www.infinitegraph.com/)

Si cela est pour un usage commercial, vous verrez il est ciblé vers des sites qui auront des graphiques plus grands. Les sites de réseautage social ont construit des solutions personnalisées, qui fonctionnaient pour eux à l'époque. Mais ce sont des solutions internes qui sont plus restrictives que d'utiliser quelque chose comme InfiniteGraph. Des produits comme Cassandra ou MySQL n'ont pas été conçus pour cet ensemble de problèmes plusieurs-à-plusieurs. Pouvez-vous le faire? Bien sûr, mais c'est beaucoup de codage manuscrit, et non évolutif. Faites-nous savoir si vous avez un vrai projet, nous pourrions vous aider à comprendre les exigences de votre graphique. Merci, Warren [email protected]

14

Graphique de bases de données:

  1. HyperGraphDB: un usage général, extensible, le mécanisme de stockage portable, distribué, les données de source ouverte intégrable,.
  2. InfoGrid: une base de données de graphe Internet avec de nombreux composants logiciels supplémentaires qui facilitent le développement d'applications Web REST-ful sur une base graphique.
  3. vertexdb: un serveur de base de données de graphes haute performance qui prend en charge la récupération automatique de place.

Source: http://nosql.mypopescu.com/post/498705278/quick-review-of-existing-graph-databases

Graphique Bibliothèques:

  1. WebGraph est un cadre pour étudier le graphique Web. De leur page - "Il fournit des moyens simples de gérer des graphes de très grande taille, en exploitant les techniques de compression modernes."
  2. Dex est une bibliothèque haute performance pour gérer de très gros graphiques ou réseaux.
  3. Cet article de blog - On Building a Stupidly Fast Graph Database - fournit quelques directives sur la construction d'une base de données de graphes - la technique qu'ils utilisent est «E/S mappées en mémoire, hachage linéaire sur disque».
4

Clause de non-responsabilité: Je parle du point de vue de l'analyse graphique.

Il existe plusieurs formats de fichiers pour stocker les données graphiques: GraphML, GXL et plusieurs autres. Mais le stockage n'est généralement pas un problème. Travailler avec les graphiques sans les charger complètement dans la RAM est la partie difficile.

Le modèle RDF est trop générique pour effectuer des analyses sérieuses. Si cela ne vous dérange pas que votre analyse soit lente et que vous programmiez les algorithmes vous-même, utilisez les bases de données de graphes existantes - voir wikipedia à ce sujet. Pour une analyse réelle, chargez toutes les données dans la RAM à l'aide des bibliothèques d'analyse de graphes existantes, comme SNAP ou This question.

2

Il n'y a pas de réponse absolument correcte ici; il y a une grande variété d'options, dont le choix dépend sérieusement de vos besoins. Avec les extractions/traversées à grande échelle (par exemple les réseaux sociaux et les back-ends similaires), vous allez rapidement rencontrer le goulot d'étranglement des E/S aléatoires; Je crois que stocker votre graphique dans la RAM est actuellement le seul plan d'action pratique. Moins d'applications sensibles à la latence ont une grande variété d'options, y compris neo4j (open source avec une saveur commerciale) et Allegrograph (commercial avec une édition gratuite limitée).

À Delver nous avons fini par mettre en œuvre notre propre modèle de données dénormalisé (essentiellement une liste de contiguïté pour représenter le graphique) dans la mémoire vive au-dessus de GigaSpaces (quelques informations se trouvent dans this presentation), avec le code carte-Réduir pour les requêtes et l'analyse des données. Si vous allez dans cette voie, Cassandra semble être une plate-forme open source viable sur laquelle s'appuyer.