2011-10-26 18 views
22

Estoy considerando una Prueba de concepto para manejar grandes volúmenes de datos como> 10 G que requieren al menos más de 200 escrituras por segundo y más de 50 lecturas por segundo de datos espaciales relacionados. Este es un sistema en crecimiento también. Actualmente estoy considerando mover estos datos de gran volumen a un tipo de tabla grande de NoSql por razones de rendimiento.Datos espaciales con mongodb o cassandra

He considerado y he echado un vistazo más de cerca a MongoDB y cassandra. En cuanto a mi lectura va,

MongoDB: - parece tener un problema de bloqueo de escritor - uno de los puestos en stackoverflow sugerido esta dB si no hay necesidad de múltiples servidores - índices mantienen en la memoria. Por lo tanto, cuanto mayor sea el crecimiento del índice, el rendimiento se deteriorará - la ventaja es que Mongodb tiene soporte directo para la indexación de datos espaciales & junto con características como encontrar ubicaciones cercanas, etc. - Veo este post Cassandra Or MongoDB For Our Location Based Application sugiriendo mongodb como la mejor opción

Cassandra:
- parece ser el mejor de entre los dbs relacionados - parece tener un gran escritura, así como el rendimiento de lectura - no forma nativa soporte de indexación espacial, pero esto puede extenderse a través de geohashing

Mi corazón realmente sale para mongodb debido a eso s buena documentación y soporte directo para datos espaciales. ¿Algún cuerpo ha tenido una mala experiencia al usar mongodb para sistemas tan grandes? De hecho, veo muchos mensajes en mongodb iostat para el rendimiento.

Si mongodb no es adecuado, ¿alguien puede dar algunos consejos sobre geohashing usando cassandra? Vi el enlace http://code.google.com/p/geospatialweb/ para crear los valores hash. Pero hay preguntas sobre cómo consultar, etc.

+1

Alguna idea sobre NoSQL almacenamiento spartial, 1+ años más tarde? –

+4

De hecho, no usamos Simplegeo debido a algunas razones, pero se mantuvo cassandra. Finalmente elegimos mantenerlo simple con latitud y longitud como valores separados y elegimos tener las teclas correctas. Estamos teniendo bastante éxito al distribuir esto con 8 servidores y obtener resultados en menos de un segundo tipo de rendimiento para consultas diarias y estamos contentos. – Muthu

+0

Excelente información, gracias Muthu. –

Respuesta

4

Me doy cuenta de que esta es una pregunta anterior y sé que no responde directamente a su pregunta, pero dependiendo de sus consultas, Cassandra puede no ser la mejor opción, y hacer que sus consultas funcionen con indexación en MongoDB puede ser problemático también (en mi propia experiencia). Mongo tiene una ligera ventaja sobre Cassandra para datos geograficos pesados ​​y consultas en el mismo lugar.

Sugiero que también considere buscar en ElasticSearch, que dependiendo de su forma de datos y de los tipos de consultas que realizará probablemente sea la mejor solución. Sin embargo, cuando publicaste tu pregunta, era menos una opción que hoy.

+0

Es cierto. Gracias por esto. Comprobaré ElasticSearch. Definitivamente útil. – Muthu

0

También usamos Cassandra por el momento y buscamos una solución de índice espacial. Acompañamos a Lucene para proporcionar texto completo y búsqueda atribuida, y junto con esto viene el soporte para la indexación espartial. Quizás quieras verificar esto también.

Nuestra implementación actual parece fragmentar la información basada en un árbol simple (basado en la cuadrícula) y cada fragmento es un índice Lucene y una vez que crece sobre un cierto tamaño, el índice se divide por x o y. Y dado que dicho fragmento tiene una representación binaria (la posición en la cuadrícula consta de dos bits, el siguiente nivel, los siguientes 2 bits, etc.), la posición emite una búsqueda y será respondida por cualquier código de sombre prefijo la posición/resolución de la cuadrícula . El sistema simple funciona bien hasta el momento, pero no se usa productivamente en este momento.

0

Probar Cassandra + Solr. Esto podría ser útil: http://digbigdata.com/geospatial-search-cassandra-datastax-enterprise/

Saludos, Goutham Kumar

+0

Si bien esto podría responder teóricamente a la pregunta, [sería preferible] (http://meta.stackoverflow.com/q/8259) incluir aquí las partes esenciales de la respuesta y proporcionar el enlace de referencia. –

Cuestiones relacionadas