2010-03-27 30 views
13

que tienen enorme base de datos (un poco wordnet) y me gustaría saber si es más fácil de usar Cassandra en lugar de MySQL | PostrgreSQLCassandra o MySQL/PostgreSQL?

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

¿Es más conveniente?

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

+0

Me parece que este enlace es más útil para decidir sobre la decisión SQL/NoSQL para el caso de uso comercial: http://kkovacs.eu/cassandra-vs-mongodb-vs-couchdb-vs-redis –

+0

esta pregunta debe cerrarse, no encaja TAN. –

Respuesta

6

Hay muchos sabores diferentes de las bases de datos "NoSQL". Si su aplicación es realmente como Wordnet, tal vez debería consultar una base de datos de gráficos como Neo4j.

0

Todos los productos diferentes y todos tienen sus pro y conn. ¿Qué tipo de problema tienes que resolver?

Enorme, como en TB's?

+0

E.g Tengo un conjunto de objetos y pesos de conexiones por estos objetos. Quiero encontrar todos los caminos posibles y sus pesos por dos objetos rápidamente. – Ivri

7

Le sugiero que analice su solicitud.

  1. Si vas con más agrupaciones, las máquinas toman NoSQL
  2. Si su modelo de datos es complicada - requieren 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 no necesita un rendimiento superior para solicitudes múltiples (como por ejemplo en redes sociales, donde muchos usuarios envían solicitudes HTTP), y no cree que involucre accesibilidad tome RDBMS (Postgres tiene algunas buenas funciones y estructuras que puedes usar, como tipo de columna de matriz).

Cassandra debería funcionar mejor con grandes escalas de datos, multiusos. neo4j - sería mejor para estructuras especiales, gráficos.

4

Cassandra y otras tiendas NoSQL se están utilizando para sitios basados ​​en redes 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.

Parece que es posible que desee ver Neo4J, solo en términos de las necesidades de su modelo de objeto.

8

No hay nada como Silver bullet, todo está construido para resolver un problema específico y tiene sus propios pros y contras. Depende de usted, qué enunciado de problema tiene y cuál es la mejor opción para la solución de ese problema. Ya sea que utilice Cassandra (NoSQL) o MySQL (RDBMS), todo se basa en los requisitos de su sistema. A continuación se encuentran las entradas que lo ayudarán a tomar una mejor decisión al decidir sobre la base de datos.

por qué utilizar 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, PostgreSQLin esta categoría ofrece casi el mismo tipo de soluciones orientadas a Propiedad ACID. Cuando se trata de NoSQL, la decisión se vuelve difícil porque cada base de datos NoSQL ofrece una solución diferente y debe entender cuál es la más adecuada para su aplicación/requerimiento del sistema. Por ejemplo, MongoDB es apto para cajas de uso donde su sistema requiere una tienda de documentos sin esquema. HBase podría ser adecuado para los motores de búsqueda, análisis de datos de registro, cualquier lugar donde escanear enormes tablas bidimensionales sin unión son un requisito.Redis está diseñado para proporcionar la búsqueda en memoria de diversas estructuras de datos como árbol, cola, lista de enlaces, etc. y puede ser una buena opción para crear tablas de clasificación en tiempo real, tipo sub-pub. Del mismo modo, hay otra base de datos en esta categoría (incluyendo Cassandra) que se ajustan a una declaración de problema diferente. Ahora pasemos a la pregunta original y respondamos una a una.

Cuándo utilizar Cassandra

Ser parte de la familia NoSQL Cassandra ofrece una solución para el problema donde el requisito es tener el sistema de escritura muy pesado y que desea tener sistema de información muy sensible en la parte superior de los datos almacenados . Considere el caso de uso de análisis web donde los datos de registro se almacenan para cada solicitud y desea construir una plataforma analítica para contar los aciertos por hora, por navegador, por IP, etc. 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 proporcionar ACID y propiedad de datos relacionales. Si tiene un fuerte requerimiento de propiedad de ACID (por ejemplo, datos financieros), Cassandra no encajaría en ese caso. Obviamente, puede hacer que funcione, sin embargo, terminará escribiendo gran cantidad de código de aplicación para manejar las propiedades de ACID y perderá tiempo para comercializar mal. También administrar ese tipo de sistema con Cassandra sería complejo y tedioso para ti.