Pregunta

Tengo una base de datos enorme (algo así como Wordnet) y quiero saber si es más fácil usar Cassandra en lugar de MySQL|PostrgreSQL

Toda mi vida estuve usando MySQL y PostrgreSQL y podría pensar fácilmente en términos de álgebra relacional, pero hace varias semanas aprendí sobre Cassandra y que se usa en Facebook y Twitter.

¿Es más conveniente?

¿Qué DBMS se utilizan habitualmente hoy en día para almacenar datos de redes sociales, relaciones entre objetos, wordnet?

¿Fue útil?

Solución

Hay muchos sabores diferentes de bases de datos "NoSQL". Si su aplicación es realmente como Wordnet quizás usted debe buscar en una base de datos gráfica como Neo4j .

Otros consejos

No hay nada como una solución de plata bala, todo está construido para resolver un problema específico y tiene sus propias ventajas y desventajas. Es hasta usted para decidir - lo enunciado del problema que tiene y lo que es mejor solución que se adapte a su problema. Ya sea que utilice Cassandra (NoSQL) o MySQL (RDBMS), todo está expulsado de los requisitos del sistema. A continuación se presentan las entradas que le ayudarán en la toma de decisión mejor al decidir sobre la base de datos.

¿Por qué al uso NoSQL

En el caso de la base de datos RDBMS, por lo que la elección es bastante fácil, porque casi todas las bases de datos como MySQL, Oracle, MS SQL, PostgreSQL de esta categoría ofrecen casi la misma clase de soluciones orientadas a la propiedad ACID. Cuando se trata de NoSQL, la decisión se hace difícil debido a que cada base de datos ofrezca solución NoSQL diferente y hay que entender cuál es el más adecuado para sus necesidades de aplicaciones / sistema. Por ejemplo, los ataques de MongoDB para los casos de uso en su sistema exige almacén de documentos sin esquema. HBase podría encajar para los motores de búsqueda, el análisis de los datos de registro, en cualquier lugar donde el escaneo enorme, de dos dimensiones se unen a-menos mesas es un requisito. Redis está construido para proporcionar en memoria búsqueda de variedades de estructuras de datos como el árbol, cola, lista de enlaces, etc y puede ser buena opción para hacer tabla de clasificación en tiempo real, pub-sub tipo de sistema. Del mismo modo hay otra base de datos en esta categoría (incluyendo Cassandra) que se ajusta para los diferentes problemas. Ahora vamos a pasar a la pregunta original, y responder a ellos uno por uno.

Cuando usar Cassandra

Ser parte de la familia NoSQL, la solución para el problema de las ofertas Cassandra donde su requisito es tener el sistema de escritura muy pesado y que desea tener sistema de información muy sensible en la parte superior de que los datos almacenados. Considere caso de uso de la analítica web en la que se almacenan los datos de registro para cada solicitud y desea plataforma analítica construida a su alrededor para contar golpes por hora, por el navegador, a través de IP, etc en forma en tiempo real. Se puede hacer referencia al blog post ( http://blogs.shephertz.com/2015/04/22/why-cassandra-excellent-choice-for-realtime-analytics-workload/ ) a entender más acerca de los casos de uso donde Cassandra cabe en .

Cuándo utilizar un RDBMS en lugar de Cassandra / NoSQL

Cassandra se basa en la base de datos NoSQL y no proporciona ácido y la propiedad de datos relacional. Si usted tiene una fuerte exigencia de ACID propiedad (por ejemplo, datos financieros), Cassandra no sería un ajuste en ese caso. Obviamente, se puede hacer que el trabajo fuera de él, sin embargo, el resultado final será escribir un montón de código de la aplicación para manejar la propiedad ácida y perderá el tiempo en el mercado mal. También la gestión de este tipo de sistema con Cassandra sería complejo y tedioso para usted.

Yo sugeriría para analizar su solicitud.

  1. Si vas con más agrupaciones, máquinas toman NoSQL
  2. Si se complica su modelo de datos - requerir estructuras eficientes toman NoSQL (no hay límites con el tipo de columnas)
  3. Si se ajustan en unas pocas máquinas sin escalas, y que no es necesario un extraordinario rendimiento para la petición de varios (como por ejemplo en red social - donde muchos usuarios enviar http petición), y usted no cree que usted implica la posibilidad de venta tomar RDBMS (Postgres tienen algunas funciones buenas y estructuras que se pueden utilizar, como el tipo de columna de matriz).

Cassandra debería funcionar mejor con grandes escalas de datos, de usos múltiples. Neo4j -. Sería mejor para estructuras especiales, gráficos

Cassandra y otras tiendas NoSQL se utilizan para sitios sociales debido a su necesidad de operaciones masivas basadas en escritura.No es que MySQL y Postgres no puedan lograr esto, pero NoSQL requiere mucho menos tiempo y dinero, en términos generales.

Sin embargo, parece que es posible que desees ver Neo4J, solo en términos de las necesidades de tu modelo de objetos.

Todos los productos diferentes y todos ellos tienen sus pros y de Conn. ¿Qué tipo de problema tienes que resolver?

enorme, como en la tuberculosis de?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top