2012-08-29 12 views
8

? He estado oyendo mucho sobre las bases de datos clave/valor nosql en línea ahora. ¿Puedes dar un ejemplo de para qué se usa? ¿Qué tipo de datos del mundo real es mejor para este tipo de bases de datos?¿Qué son las bases de datos NoSql Key/Value utilizadas para

+0

No entiendo el voto a favor? Esta es una pregunta válida, ¿verdad? –

Respuesta

5

Creo que 'What the heck are you actually using NoSQL for' es una excelente lectura para casos de uso de la vida real para bases de datos NoSQL. Permítanme citar algunos de ellos aquí:

  • gestión de grandes flujos de datos no transaccionales: registros de Apache, registros de aplicación, los registros de MySQL, de clics, etc.

  • sincronización en línea y fuera de línea de datos. Este es un nicho al que CouchDB ha apuntado. Tiempos de respuesta rápidos bajo todas las cargas.

  • Evitando combinaciones pesadas para cuando la carga de consulta para combinaciones complejas se vuelve demasiado grande para un RDBMS.

  • Sistemas blandos en tiempo real donde la baja latencia es crítica. Los juegos son un ejemplo.

  • Aplicaciones donde se necesita una gran variedad de patrones diferentes de escritura, lectura, consulta y consistencia. Hay sistemas optimizados para 50% de lecturas, 50% de escrituras, 95% de escrituras o 95% de lecturas.

  • Las aplicaciones de solo lectura que requieren velocidad y resistencia extremas, consultas sencillas , y pueden tolerar datos levemente obsoletos.

  • Aplicaciones que requieren un rendimiento moderado, acceso de lectura/escritura, consultas sencillas, datos autoritativos completos .

  • Aplicación de solo lectura que requiere requisitos complejos de consulta.

  • Equilibrio de carga para acomodar las concentraciones de datos y uso, y para ayudar a mantener ocupados a los microprocesadores.

  • Insertos, actualizaciones y consultas en tiempo real.

  • Datos jerárquicos como conversaciones con hilos y explosión de partes.

  • Creación dinámica de tablas.

  • Aplicaciones de dos niveles donde los datos de baja latencia están disponibles a través de una interfaz rápida NoSQL, pero los datos en sí pueden ser calculados y actualizados por aplicaciones Hadoop de alta latencia u otras aplicaciones de baja prioridad.

  • Lectura de datos secuenciales. Se debe seleccionar el modelo de almacenamiento de datos subyacente correcto. Un árbol B puede no ser el mejor modelo para lecturas secuenciales.

  • Cortando parte del servicio que pueda necesitar un mejor rendimiento/escalabilidad en su propio sistema. Por ejemplo, los inicios de sesión de los usuarios pueden necesitar un alto rendimiento y esta característica podría usar un servicio dedicado para cumplir esos objetivos.

  • Almacenamiento en caché. Un nivel de almacenamiento en caché de alto rendimiento para sitios web y otras aplicaciones. Ejemplo es un caché para el Sistema de Agregación de Datos utilizado por el Gran Colisionador de Hadrones.

  • Votación.

  • Contadores de vista de página en tiempo real.

  • Registro de usuario, perfil y datos de sesión.

  • Documentos, gestión de catálogos y sistemas de gestión de contenido. Estos se ven facilitados por la capacidad de almacenar documentos complejos que tienen un todo más que organizado como tablas relacionales. Se aplica una lógica similar al inventario, los carritos de compra y otros tipos de datos estructurados.

  • Archivo. Almacenamiento de una gran cantidad de datos continuos que aún se puede acceder en línea.

  • Bases de datos orientadas a documentos con un esquema flexible que puede manejar los cambios de esquema a lo largo del tiempo.

  • Analytics. Use MapReduce, Hive o Pig para realizar consultas analíticas y sistemas de escalabilidad que admitan altas cargas de escritura.

+0

Gracias ... pensé que podría usarlo en mi próximo proyecto, pero supongo que no. Creo que una base de datos de gráficos puede ser más apropiada. nuevamente gracias por tu explicación. – Luke101

Cuestiones relacionadas