ruby on rails - ¿Bases de datos gráficas, apostando a la compañía en eso?
ruby-on-rails graph (6)
Mirando a Neo4j, y el límite de relación de 32 mil millones me preocupa (imagínense 40 millones de usuarios que cargan 500 fotos, tienen 500 amigos, hacen 500 comentarios, etc. y, antes de darse cuenta, han pasado los 32 mil millones). Tengo algunas preocupaciones y tengo que asegurarme de que estoy haciendo la mejor elección sobre qué base de datos usar.
No busca respuestas subjetivas ni debate aquí, es decir. cuál es mejor, etc., más bien, dado que estoy apostando por el futuro de una startup en lo que usa la base de datos de gráficos , necesito conocer los riesgos que presentan las diferentes bases de datos, como que Neo4j no tiene más de 32 billones de relaciones.
Ahora, varias empresas han llamado a sus bases de datos de gráficos la "base de datos de gráficos principales" ... pero miremos más allá de la exageración, ¿ cuál tiene el mayor respaldo financiero? ¿Qué db disfruta de un gran apoyo de la comunidad? ¿Cuál tiene una compañía sólida detrás para soporte comercial?
¿Cuál es más probable que sea lo suficientemente maduro, así que si lo desea, puede crear fácilmente Facebook con un mínimo esfuerzo?
Es fácil elegir una base de datos de gráficos sobre las características técnicas o la familiaridad, pero estoy buscando más que eso. Quiero asegurarme de que aún faltan algunos años para la compañía. Quiero asegurarme de no elegir ir con Neo4j en base a la exageración y el impulso que actualmente (¿temporalmente?) Tiene ...
Y ¿Qué otros gráficos pueden contender con Neo4gj para crear una red social de pleno derecho similar a Facebook (de nuevo, no buscando algo mejor , simplemente buscando un competidor sólido).
Por favor, no dejen que esto se convierta en un debate subjetivo Neo vs Dex - solo hechos y respuestas de sólidos por favor ...
Así que probé y trabajé con bases de datos de gráficos durante el último año. Creo que solo usted conoce sus datos lo suficientemente bien como para poder adivinar si va a haber nodos que necesiten más de 32 mil millones de relaciones. Yo diría que no hay muchos casos de uso adecuados para la mayoría de las personas, donde esto es una limitación. Pero eso no es absoluto.
Neo4j es un producto brillante. Bien documentado y con gente como maxdemarzi escribiendo excelentes publicaciones en el blog, como: http://maxdemarzi.com/ , que pondrán rápidamente al tanto a la potencia y la sofisticación de neo4j. (Además, es un tipo agradable que responderá tus preguntas si las tienes)
Si la escala es un problema, también te recomiendo que eches un vistazo a Titan: http://thinkaurelius.github.com/titan/ . Los chicos detrás de esto son geniales y está destinado a escala masiva. No está tan establecido en el mercado como neo4j, pero tiene mucha potencia y le da cierta flexibilidad en cuanto a las prioridades al permitirle seleccionar entre Cassandra, Hbase y BerkeleyDB para el almacenamiento subyacente.
Neo4j es una empresa bien respaldada y bien financiada con ingresos reales. No va a ningún lado. Titán es más pequeño, pero creo que está en una curva ascendente rápida.
La verdad es que todo es un nuevo espacio. No obtendrá nada tan establecido como Postgres, MySql o la fortaleza corporativa de Oracle. No nos engañemos a nosotros mismos.
Sin embargo, la comunidad de base de datos de gráficos es relativamente pequeña, amigable y útil. Se llevan a cabo grandes eventos: estuve en el evento GraphCon de Neo4j, que fue increíble, y he asistido a algunas charlas de los chicos de Titan, que fueron geniales. Sin embargo, en última instancia, si quiere ser Facebook, sea lo que sea que comience, terminará construyendo su propia infraestructura. Hay una escala y luego está la escala de los países de los que se necesita una pequeña cantidad de datos.
Un último pensamiento. El problema de 40 millones de usuarios y los desafíos de su infraestructura subyacente es un problema para una empresa bien establecida y bien financiada. No llega a 40 millones de usuarios y no atrae los fondos ni genera los ingresos necesarios para financiar la construcción de su propia infraestructura. Ahora puede planificar cuándo tiene 40 millones de usuarios, absolutamente. Ve a por ello. Esa es la diversión de las primeras etapas en una startup. Pero su mayor problema es llegar a su primer millón o diez millones, incluso. Para ese uso cualquiera de estas bases de datos lo lleva al mercado más rápido con un producto sólido.
Descargo de responsabilidad: trabajo para / con Neo4j
Simplemente hablando de la madurez aquí (no tecnicismos) - Neo Technology como una compañía con más de 50 empleados, $ 25M de financiación y una próspera base de usuarios con medio millón de descargas, 30k nuevas bases de datos ejecutándose cada mes y una comunidad activa no vete. También puede verificar las preguntas SO para ver la actividad de la comunidad.
Tenemos un grupo saludable de customers en muchos dominios, desde grandes como Adobe (ejecuta creatividades en la nube en Neo4j), Cisco (Org-Management, MDM), redes sociales como Viadeo y muchas compañías de búsqueda de empleo (GlassDoor y otras) hasta startups como fiftythree que publicó la popular aplicación "Paper" en iOS.
El sitio de nuestra comunidad neo4j.org debe ser un buen lugar para comenzar, para comenzar, encontrará contenido introductorio e información sobre lenguajes de programación , drivers y deployments que lo ayudarán a comenzar.
Emil, Ian y Jim escribieron un libro introductorio sobre "bases de datos de gráficos" con O''Reilly, que actualmente está disponible como descarga gratuita de libros electrónicos .
Como ven, no solo nos preocupamos por nuestro propio producto, sino también por el ecosistema de gráficos más grande, también con muchas charlas de conferencias , grupos Meetup (41 en todo el mundo) y el apoyo del ecosistema de código abierto.
Espero que te ayude a decidir.
PD En cuanto a sus preocupaciones: Los límites de tamaño (que de todos modos son artificiales) blog.neo4j.org/2013/01/2013-whats-coming-next-in-neo4j.html .
Estamos trabajando con Neo4j desde 2010 y apostando no solo por nuestra compañía, sino que también hemos invertido bastante tiempo en un proyecto de código abierto ( http://www.ohloh.net/p/structr ). Hay una publicación de blog de febrero de 2012 donde puedes leer los detalles:
http://structr.org/blog/the-story-behind-structr
Es cierto que nuestra empresa es bastante pequeña. Pero hemos hecho, y estamos haciendo, alrededor de una docena de proyectos con Neo4j, y estamos muy contentos con el resultado.
La comunidad detrás de Neo4j es vibrante, abierta y siempre muy solidaria. Deberías ir a uno de los eventos de meetup para tener una idea. :-)
Como dijo Richard, los hechos financieros están fuera de discusión. Lo que me parece más impresionante, es que la gente de Neo Technology, a pesar de ser una empresa comercial que tiene que generar ingresos, es realmente entusiasta de los que saben y aman lo que hacen, y están realmente comprometidos con el modelo de código abierto.
Entonces sí, soy parcial, pero no sin razón. :-)
Mi consejo es construir tu aplicación en API estándar como Blueprints . La página principal de Blueprints enumera varias implementaciones disponibles. De esta forma, no estará bloqueado y podrá elegir la mejor implementación según sus necesidades (tamaño, velocidad, precio) y el estado del mercado en ese momento.
Michael me golpeó hasta el golpe, pero déjame agregar, responder por Neo4j y dejar que otros respondan sobre otras tecnologías.
El siguiente enlace incluye una variedad de datos sobre el estado de la comunidad Neo4j, la adopción del producto y la compañía detrás del producto:
http://blog.neo4j.org/2013/01/2012-year-in-review-happy-2013-it-looks.html
El siguiente enlace habla de la hoja de ruta de este año, que, entre otras cosas, elevará el límite de tamaño actual. El límite es simplemente una optimización del rendimiento del espacio que se eligió cuando las relaciones precio-rendimiento eran un poco diferentes. Haremos el trabajo este año para aumentar algunos tamaños de puntero y lanzar una versión sin límite superior práctico en los próximos meses:
blog.neo4j.org/2013/01/2013-whats-coming-next-in-neo4j.html
Hay instalaciones de producción con la mitad del gráfico social de Facebook en un clúster Neo4j, en la parte posterior de sitios web altamente activos. El único clúster de base de datos de Amazon de varias regiones del que soy consciente (para cualquier sistema de administración de bases de datos) se está ejecutando en Neo4j: 10 instancias repartidas entre los EE. UU., Asia y Europa. Uno de los servicios de entrega de paquetes más grandes del mundo hace todo el enrutamiento de sus paquetes usando Neo4j, enrutando más de 2000 paquetes por segundo al máximo. Las decisiones se toman en tiempo real, literalmente, cuando los paquetes se deslizan por una rampa. Se pusieron en marcha el pasado otoño y Navidad pudo pasarle a decenas de millones de personas. Mucho más. Este es un muestreo.
¡Bienvenido al impresionante mundo de los gráficos! Independientemente de la solución que elija, nos complace contar con usted como parte de la comunidad de base de datos de gráficos.
Felipe
Para agregar a las grandes respuestas, también debe considerar la concesión de licencias. Si su proyecto es completamente de código abierto que cumple con los requisitos de GPLv3, entonces algo como neo4j es una gran manera de hacerlo. Sin embargo, si lo está utilizando en un sistema propietario, deberá comprar una licencia empresarial neo4j o utilizar otra base de datos con menos restricciones de licencia (licencias MIT o Apache 2) como Titan.
Este es un gran recurso para revisar las licencias: http://en.wikipedia.org/wiki/Graph_database