2011-07-04 16 views
9

Soy relativamente nuevo en las bases de datos NoSQL y tengo que evaluar diferentes soluciones NoSQL para una herramienta de supervisión.¿Puede CouchDB manejar 15 millones de registros diariamente?

La situación es la siguiente: Un dato es de unos 100 bytes grandes, pero en realidad son muchos. Durante un día obtenemos alrededor de 15 millones de registros ... Así que actualmente estoy probando con 900 millones de registros (alrededor de 15GB como SQL-Insert Script)

Mi pregunta es: ¿Couchdb se ajusta a mis necesidades? Necesito hacer consultas de rango (en la fecha en que se crearon los registros) y resumir algunas de las columnas que corresponden a grupos definidos por "índices secundarios" almacenados en el datum.) Sé que MapReduce es probablemente la mejor solución para calcular , pero, ¿es el JavaScript de CouchDB capaz de hacer esto en un tiempo aceptable?

Ya probé MongoDB pero es realmente pobre MapReduce hizo un trabajo horrible ... También leí sobre HBase y Cassandra. Pero tal vez CouchDB también es una buena posibilidad

Espero haberle dado toda la información necesaria ... ¡Gracias por su ayuda!

Andy

+1

En primer lugar, la única forma de conocer el rendimiento es midiéndolo, ya que hay demasiadas variables para adivinar. En segundo lugar, no se sienta atraído por el almacenamiento estructurado cuando disponga de medio siglo de experiencia en RDBM para manejar sus datos de 100 octetos. Supongo que 100B/row, sus datos no son muy variados (donde SS sobresale). – msw

+0

Buenos puntos, @msw. Por supuesto, la forma de * definitivamente * conocer el rendimiento es la medición; sin embargo, supongo que es válido para solicitar estimaciones de aproximación de primera aproximación. Modifiqué el título de la pregunta para ser un poco más blanco y negro. (No estoy seguro de si votó para cerrar o si fue otra persona, pero en mi humilde opinión es una pregunta justa). Finalmente, totalmente en lo cierto sobre RDBM. Son más valiosos de lo que damos crédito. – JasonSmith

+0

Actualmente, los datos que estoy evaluando son manejados por un servidor SQL realmente sólido. Pero no puede manejar las solicitudes enviadas por el usuario para obtener información de la masa de datos. Simplemente necesita mucho tiempo. Es por eso que buscamos soluciones NoSQL con la capacidad de escalar horizontalmente. – andy

Respuesta

9

Francamente, en este momento, a menos que tenga muy buen hardware, Apache CouchDB puede tener problemas. Mapa/reducir probablemente estará bien. El mapa/reducción incremental de de CouchDB es ideal para sus necesidades.

Como desarrollador, ¡te encantará! Desafortunadamente, como administrador de sistema, puede notar más uso de disco y más de lo esperado.

Sugiero que lo intente. Al ser HTTP y Javascript, es fácil hacer una prueba de viabilidad. Solo recuerde, la construcción de la vista inicial llevará mucho tiempo (supongamos que por argumento lleva más tiempo que cualquier otra base de datos competidora). Pero ese momento será nunca gastar de nuevo. Asignar/reducir ejecuta solo una vez por documento (en realidad, por actualización de documento).

Si la marca Apache CouchDB es lenta, pero le gusta relajarse en el sofá, entonces un clúster BigCouch definitivamente manejará esa carga sin problemas. Estoy bastante seguro de que hay clústeres BigCouch con datos y requisitos de E/S mucho mayores que este.

+1

+1 Sin embargo, es justo señalar que "nunca" aquí significa "hasta que, algunos cambios en el documento de diseño provocan una reconstrucción de la vista". Solo para prepararte para esto ... :) –

+4

Para uso de producción, hay una solución para eso. Si preguntas cómo, estaré encantado de dar detalles. Versión corta: envíe un nuevo documento de diseño con una identificación diferente. Consulta para construir el índice.Cuando se complete, use HTTP COPY para cambiar el nombre del nuevo sobre el antiguo. Actualización atómica, sin tiempo de inactividad. – JasonSmith

+0

+1 'es una pregunta justa y una respuesta justa (y trato de ser amable con los miembros más nuevos, por lo que no tengo que votar de cerca sin una explicación (ya que me lo pidieron oblicuamente)). – msw

Cuestiones relacionadas