web-dev-qa-db-fra.com

Bases de données graphiques - parier l'entreprise sur elle?

En regardant Neo4j, la limite des 32 milliards de relations m'inquiète (imaginez 40 millions d'utilisateurs qui téléchargent 500 photos, ont 500 amis, font 500 commentaires, etc. et avant que vous le sachiez, vous avez dépassé 32 milliards). doit faire en sorte que je fasse le meilleur choix sur la base de données à utiliser.

_ {Not} _ cherche des réponses subjectives ni un débat ici - c'est-à-dire. lequel est le meilleur, etc. - plutôt, puisque je parie l'avenir de la startup sur l'utilisation de la base de données graphique , j'ai besoin de connaître les risques présentés par les différentes bases de données, par exemple Neo4j n'ayant pas plus de 32 milliards de relations.

Maintenant, plusieurs entreprises ont appelé leur base de données de graphes la "base de données de graphes leader" .. mais passons regardons au-delà du battage publicitaire Quel est celui qui bénéficie du plus grand soutien financier? Quelle db bénéficie d'un large soutien de la part de la communauté? Laquelle a une entreprise solide derrière pour le support commercial?

_ {Lequel est le plus susceptible d'être assez mature alors si vous le souhaitez, vous pouvez facilement créer Facebook avec un minimum d'effort?} _

Il est facile de choisir une base de données de graphes sur des caractéristiques techniques ou de familiarité - mais je cherche plus que cela - je veux m'assurer que la société sera encore dans quelques années. Je veux m'assurer que je ne choisis pas de ne pas utiliser Neo4j en me basant sur le battage publicitaire et l'élan qu'il a actuellement (temporairement?) ...

Et quels autres graphiques peuvent lutter avec Neo4gj pour créer un réseau social à part entière semblable à Facebook (encore une fois, ne cherche pas mieux, cherchant simplement un concurrent solide).

Ne laissez pas cela se transformer en un débat subjectif entre Neo et Dex - juste des faits et des réponses solides, s'il vous plaît.

34

Michael m'a battu au poing, mais permettez-moi d'ajouter ceci, en répondant pour Neo4j, et en laissant les autres réagir à propos d'autres technologies. 

Le lien ci-dessous comprend une variété de faits sur l'état de la communauté Neo4j, l'adoption du produit et la société à l'origine du produit:

http://blog.neo4j.org/2013/01/2012-year-in-review-happy-2013-it-looks.html

Le lien ci-dessous indique la feuille de route de cette année, qui permettra notamment de lever la limite de taille actuelle. La limite est simplement une optimisation de la performance spatiale qui a été choisie lorsque les rapports qualité-prix étaient légèrement différents. Nous ferons le travail cette année pour augmenter quelques tailles de pointeur et publierons une version sans limite supérieure pratique dans les prochains mois: 

http://blog.neo4j.org/2013/01/2013-whats-coming-next-in-neo4j.html

Il existe des installations de production avec la moitié du graphe social Facebook dans un cluster Neo4j, à l'arrière de sites Web très actifs. À ma connaissance (pour tout système de gestion de base de données), le seul cluster de bases de données Amazon interrégions fonctionnant sur Neo4j: 10 instances réparties aux États-Unis, en Asie et en Europe. L'un des plus grands services de livraison de colis au monde effectue l'intégralité de son acheminement de colis à l'aide de Neo4j, acheminant plus de 2 000 colis à la seconde au maximum. Les décisions sont prises en temps réel au moment où les colis glissent dans une goulotte. Ils ont été mis en ligne l'automne dernier et Noël a pu arriver à des dizaines de millions de personnes. Beaucoup plus. Ceci est un échantillon.

Bienvenue dans le monde fantastique des graphiques! Quelle que soit la solution que vous choisissez, nous sommes heureux de vous compter parmi la communauté des bases de données graphiques.

Philippe

10
Philip Rathle

Disclaimer: Je travaille pour/avec Neo4j

Ici, nous ne parlons que de maturité (pas de technicité) - Neo Technology en tant qu’entreprise comptant plus de 50 employés, un financement de 25 M $ et une base d’utilisateurs florissante avec un demi-million de téléchargements, 30 000 nouvelles bases de données fonctionnant chacune mois et une communauté active ne partira pas. Vous pouvez également consulter les SO questions pour voir l'activité de la communauté.

Nous avons un ensemble sain de clients dans de nombreux domaines tels que Adobe (gère le cloud créatif sur Neo4j), Cisco (Org-Management, MDM), les réseaux sociaux comme Viadeo et de nombreuses sociétés de recherche d'emploi (GlassDoor, etc.). ) à des startups comme 50% qui ont publié la populaire application "Paper" sur iOS. 

Notre site communautaire neo4j.org devrait être un bon endroit où aller. Pour commencer, vous y trouverez contenu d'introduction ainsi que des informations sur langages de programmation , pilotes et déploiements cela devrait vous aider à démarrer.

Emil, Ian et Jim ont écrit avec O'Reilly un livre d'introduction sur les "bases de données de graphes", actuellement disponible sous forme de téléchargement gratuit de livres électroniques .

Vous voyez donc que nous ne nous occupons pas seulement de notre propre produit, mais également du plus grand écosystème graphique, également avec de nombreux conférences , groupes de rendez-vous (41 dans le monde) et le soutien de l'écosystème open source.

J'espère que cela vous aide à décider.

P.S. Concernant vos préoccupations: Les limites de taille (qui sont de toute façon artificielles) seront augmentées cette année

17
Michael Hunger

J'ai donc testé et travaillé avec des bases de données graphiques pour la dernière année. Je pense que vous seul connaissez suffisamment vos données pour pouvoir deviner avec certitude si vous avez des nœuds nécessitant plus de 32 milliards de relations. Je dirais qu'il n'y a pas beaucoup de cas d'utilisation qui conviennent à la plupart des gens, là où c'est une limitation. Mais ce n'est pas absolu.

Neo4j est un produit brillant. Bien documenté et avec des personnes comme maxdemarzi écrivant d’excellents articles de blogues, tels que: http://maxdemarzi.com/ -, qui permettront à quiconque de se familiariser rapidement avec le pouvoir et la sophistication de neo4j. (En plus, c'est un gars sympa qui répondra à vos questions si vous les avez)

Si l’échelle pose problème, je vous recommanderais également de consulter Titan - http://thinkaurelius.github.com/titan/ . Les gars derrière cela sont brillants et il est destiné à la grande échelle. Il n’est pas aussi bien établi que neo4j sur le marché, mais il a beaucoup de puissance et vous donne une certaine flexibilité quant aux priorités en vous permettant de choisir entre Cassandra, Hbase et BerkeleyDB pour le stockage sous-jacent.

Neo4j est une entreprise bien financée et bien financée avec des revenus réels. Cela ne va nulle part. Titan est plus petit mais je pense que sa courbe ascendante est rapide.

La vérité est que c'est tout un nouvel espace. Vous n'obtenez rien d'aussi établi que Postgres, MySql ou la force de l'entreprise Oracle. Ne nous leurrons pas.

Cependant, la base de données de graphes est relativement petite, conviviale et utile. Il organise d'excellents événements - j'étais à l'événement GraphCon de Neo4j, qui était génial, et j'ai assisté à des discussions avec les gars de Titan qui étaient géniales. En fin de compte, si vous voulez être Facebook, quoi que vous commenciez, vous allez construire votre propre infrastructure. Il existe une échelle et vous avez également besoin de posséder des centres de données de la taille des petits pays.

Une dernière pensée. Le problème des 40 millions d'utilisateurs et les problèmes d'infrastructure sous-jacents constituent un problème pour une entreprise bien établie et bien financée. Vous n'atteignez pas 40 millions d'utilisateurs et n'attirez pas les fonds ni les revenus nécessaires pour financer la construction de votre propre infrastructure. Vous pouvez planifier dès maintenant pour 40 millions d'utilisateurs, absolument. Fonce. C'est le plaisir des premières étapes d'une startup. Mais votre plus gros problème est d’atteindre votre premier million ou même dix millions. Pour cette utilisation, la base de données la plus rapide vous permet de commercialiser plus rapidement un produit solide.

14
Richard Jordan

Mon conseil est de construire votre application sur des API standard telles que Blueprints . La page principale Blueprints répertorie les différentes implémentations disponibles. De cette façon, vous ne serez pas bloqué et pourrez choisir la meilleure implémentation en fonction de vos besoins (taille, rapidité, prix) et de l'état du marché à ce moment-là.

10

Nous travaillons avec Neo4j depuis 2010 et misons non seulement sur notre société, mais avons également investi beaucoup de temps dans un projet open source ( http://www.ohloh.net/p/structr ). Il y a un article de blog de février 2012 où vous pouvez lire les détails: 

http://structr.org/blog/the-story-behind-structr

Certes, notre entreprise est assez petite. Mais nous avons réalisé et réalisons environ une douzaine de projets avec Neo4j et sommes vraiment satisfaits du résultat.

La communauté derrière Neo4j est dynamique, ouverte et toujours très solidaire. Vous devriez vous rendre à l'un des événements Meetup pour vous faire une idée. :-)

Comme l'a dit Richard, les faits financiers sont hors de question. Ce que je trouve le plus impressionnant, c’est que les employés de Neo Technology, bien qu’ils soient une entreprise commerciale qui doit générer des revenus, sont vraiment des passionnés qui savent et aiment ce qu’ils font et qui sont vraiment attachés au modèle Open Source.

Donc oui, je suis partial, mais pas sans raison. :-)

6
Axel Morgner

Pour ajouter aux bonnes réponses, vous devez également envisager l'octroi de licences. Si votre projet est entièrement open source et respecte les exigences de la GPLv3, optez pour quelque chose comme neo4j. Toutefois, si vous l'utilisez dans un système propriétaire, vous devrez acheter une licence d'entreprise neo4j ou utiliser une autre base de données avec moins de restrictions de licence (licences MIT ou Apache 2), comme Titan.

C’est une excellente ressource pour consulter les licences: http://fr.wikipedia.org/wiki/Graph_database

1
David Stevens

Ce que vous avez demandé et sur lequel vous devriez vous concentrer sont deux choses différentes. 

Bien que ce qui suit ne réponde pas à votre question, j'espère que cela vous aidera, ainsi que les autres développeurs, à comprendre ce qui est vraiment en jeu ici:

  • Les exigences et les objectifs ne sont pas toujours clairs - et ce n'est pas grave. Les choses changent et votre produit devrait pouvoir suivre ces changements. C'est la nature même des start-ups. Par conséquent, je suggère de: Se concentrer sur le produit, pas sur la mise en œuvre . En d’autres termes, construisez une abstraction d’une implémentation de base de données (par exemple, Blueprint - que Neo4j implémente), plutôt qu’une implémentation réelle, pour ne pas être bloqué ou retardé par des problèmes de licence ultérieurs. Vous pourrez facilement changer d'implémentation de base de données si vous en aviez besoin. Vous obtiendrez à l'avenir une image plus claire de l'exactitude de votre décision initiale. Surtout soyez prêt à changer quand vous en avez besoin.
0
BKSpurgeon