example - mongodb español
¿Cómo decidir qué tecnología NoSQL usar? (6)
Artículo bastante decente aquí en MongoDB y NoRM (extensiones .net para MongoDB) http://lukencode.com/2010/07/09/getting-started-with-mongodb-and-norm/
¿Cuáles son los pros y los contras de MongoDB (basado en documentos), HBase (basado en columnas) y Neo4j (gráfico de objetos)?
Estoy particularmente interesado en conocer algunos de los casos de uso típicos de cada uno.
¿Cuáles son buenos ejemplos de problemas que las gráficas pueden resolver mejor que la alternativa?
¿Tal vez cualquier presentación digna de Slideshare o Scribd?
Compruebe esto para una comparación de vista de NoSQL dbs:
Sé que esto puede parecer un lugar extraño, pero Heroku se ha vuelto loco con sus ofertas noSQL y tiene una buena visión general de muchos de los proyectos actuales. No es de ninguna manera una prensa de Slideshare pero le ayudará a comenzar el proceso de comparación:
MongoDB:
MongoDB es una base de datos de documentos a diferencia de la base de datos relacional. El documento almacena datos semi estructurados como objeto JSON (sin esquema)
Características clave:
- El esquema puede cambiar sobre la evolución de la aplicación.
- Indexación completa
- Equilibrio de carga y fragmentación de datos
- Replicación de datos
- Consistencia y partición en la teoría de la PAC (consistencia-disponibilidad-partición)
Cuándo usar:
- Analítica en tiempo real
- Registro de alta velocidad
- Gestión de datos semiestructurados.
Cuando no usar:
- Aplicaciones altamente transaccionales con fuertes propiedades ACID (Atomicidad, consistencia, aislamiento y durabilidad). Se prefiere RDBMS en este caso de uso.
- Operando en conjuntos de datos que involucran relaciones - claves externas, etc.
HBASE:
HBase es una base de datos de familia de columnas distribuida, no relacional, de código abierto.
Características clave:
- Proporciona una forma tolerante a los fallos de almacenar grandes cantidades de datos dispersos (pequeñas cantidades de información capturada dentro de una gran colección de datos vacíos o sin importancia, como encontrar los 50 elementos más grandes en un grupo de 2 mil millones de registros, o encontrar el no cero artículos que representan menos del 0.1% de una gran colección)
- Es compatible con el esquema variable donde cada fila es diferente
- Puede servir como entrada y salida para el trabajo MapReduce
- Filtros de compresión, operación en memoria y Bloom en una columna (una estructura de datos diseñada para informarle, de manera rápida y eficiente en memoria, si un elemento está presente en un conjunto) 5.Acumar CP en CAP
Cuándo usar HBase:
- Si está cargando datos por clave, busque datos por clave (o rango), sirva datos por clave, consulte datos por clave
- Almacenar datos por fila que no se ajustan bien a un esquema (esquema variable)
Cuando no usar HBase:
- Para analítica relacional.
- Exploraciones de tabla completa
- Datos a ser agregados, analizados por filas en lugar de columnas.
Neo4j:
Neo4j es una base de datos gráfica que utiliza el modelo de datos del gráfico de propiedades (los datos se almacenan como un gráfico y nodos y relaciones con las propiedades)
Características clave:
- Es compatible con todas las reglas de ACID (Atomicidad, consistencia, aislamiento y durabilidad)
- Soporta índices utilizando Apache Lucence
- Esquema libre, diseño de modelo de datos de abajo hacia arriba
- Se ha logrado una alta escalabilidad debido al almacenamiento compacto y al almacenamiento en caché de memoria disponible para los gráficos
Cuándo usar:
- Gestión de datos maestros
- Red y operaciones de TI
- Recomendaciones en tiempo real
- Detección de fraude
- Red social (como facebook)
Cuando no usar:
- Consultas masivas / exploraciones
- Si su aplicación requiere partición y fragmentación de datos
Echa un vistazo a la comparación de varias tecnologías NoSQL en este kkovacs.eu/cassandra-vs-mongodb-vs-couchdb-vs-redis
Fuentes:
Wiki, Slide share , Cloudera , Tutorials Point , Neo4j
MongoDB
Escalabilidad: altamente disponible y consistente, pero apesta en las relaciones y en muchas escrituras distribuidas. Su principal beneficio es almacenar e indexar documentos sin esquemas. El tamaño del documento está limitado a 4 mb y la indexación solo tiene sentido para una profundidad limitada. Consulte http://www.paperplanes.de/2010/2/25/notes_on_mongodb.html
Ideal para: Estructuras de árboles con profundidad limitada.
Casos de uso: jerarquías de diversos tipos, sistemática biológica, catálogos de bibliotecas
Neo4j
Escalabilidad: Altamente disponible pero no distribuida. Potente marco transversal para recorridos de alta velocidad en el espacio de nodos. Limitado a gráficos alrededor de varios miles de millones de nodos / relaciones. Consulte http://highscalability.com/neo4j-graph-database-kicks-buttox
Ideal para: Gráficos profundos con profundidad ilimitada y conexiones cíclicas ponderadas
Casos de uso: redes sociales, análisis topológico, datos de la web semántica, inferencia
HBase
Escalabilidad: almacenamiento confiable y consistente en los petabytes y más allá. Admite una gran cantidad de objetos con un conjunto limitado de atributos dispersos. Trabaja en conjunto con Hadoop para grandes trabajos de procesamiento de datos. http://www.ibm.com/developerworks/opensource/library/os-hbase/index.html
Ideal para: gráficos acíclicos, dirigidos.
Casos de uso: análisis de registros, datos de la web semántica, aprendizaje automático