Donar $20 Donar $50 Donar $100 Donar mensualmente
 


Enviar respuesta 
 
Calificación:
  • 0 votos - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Buscar en el tema
[Aporte][Final] Implementación de Bases de Datos NoSQL - 21/12/15
Autor Mensaje
sinnick Sin conexión
Campeon del cubo Rubik
Sin estado
****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 152
Agradecimientos dados: 8
Agradecimientos: 107 en 27 posts
Registro en: Feb 2011
Mensaje: #1
[Aporte][Final] Implementación de Bases de Datos NoSQL - 21/12/15 Finales Implementación de Bases de datos NoSQL
Buenas ¿Cómo andan? Les dejo lo que recuerdo del final que tomaron hoy en Implementación de Bases de Datos NoSQL.

1. A. Indique que motivos utilizaría para recomendar una Base de Datos de tipo Graph. B. Escriba un ejemplo de cuando utilizar este tipo de Bases de Datos.
2. Una empresa de transporte quiere realizar un sistema mobile donde los chóferes tengan acceso a la hoja de ruta que se hace desde un sistema batch. Por otro lado quieren registrar cada 30 segundos diversos datos (no recuerdo) y que se guarden en un sistema central que se encuentra en el camión siendo prioritario la velocidad de escritura. Indique que Bases de Datos NoSQL utilizaría y justifique su respuesta.
3. MongoDB. Describa como implementa: Operaciones Atómicas, Transacciones, Escalabilidad, Disponibilidad, y Map Reduce.
4. La definición de Map Reduce dice: "Es un modelo de programación que permite procesar y generar grandes volúmenes de datos en paralelo". A partir de esto ¿Que cuestiones lógicas derivan de ella y que características tiene? (No recuerdo la pregunta pero era más o menos así).

Algunas cuestiones respecto del final:
  • Eramos 5 personas rindiendo.
  • Llegaron pasadas las 7.20, hasta creímos que se habían olvidado.
  • Todas las preguntas se responden en la hoja que te dan. Tenes media carilla para cada pregunta.

Espero que les sirva

Saludos
Sinnick
(Este mensaje fue modificado por última vez en: 22-12-2015 10:01 por sinnick.)
21-12-2015 21:58
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] sinnick recibio 2 Gracias por este post
DarkCrazy (21-12-2016), lucascla (23-09-2017)
eltipito Sin conexión
Profesor del Modulo A
^^
*****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 387
Agradecimientos dados: 74
Agradecimientos: 32 en 16 posts
Registro en: May 2008
Last.fm
Mensaje: #2
RE: [Aporte][Final] Implementación de Bases de Datos NoSQL - 21/12/15
1-

Estas bases de datos permiten almacenar entidades y relaciones entre esas entidades. Las entidades se denominan nodos. Tanto los nodos como las relaciones tienen sus propiedades asociadas. Los nodos están organizados por relaciones que nos permiten encontrar patrones entre estos. La organización del Grafo permite que los datos sean almacenados una vez y luego interpretados de distintas maneras basándonos en sus relaciones. Recomendaría para representar un dominio del problema donde los datos estén altamente relacionados. Usaría bases de datos de tipo graph en los casos que quiera representar un modelo de negocio como por ejmplo una red social entre amigos, red social empresarial, relaciones entre entidades de dominio, servicios de ruteo, despacho, motores de recomendaciones, búsquedas recursivas, búsqueda de patrones.


2-
Hoja de ruta, db graph based, Neo4J
Datos sistema central, document based, MongoDB (logueo)

3-
MongoDB
Transacciones: no existen las transacciones en mongoDB
Escalabilidad y Disponibilidad: se puede escalar horizontalmente a tráves de la replicación, el particionamiento (sharding) o una combinación de ambas. MongoDB lo implementa a tráves de una estructura denominada ReplicaSet. Un replicaSet es un conjunto de procesos Mongo que mantienen el mismo conjunto de datos. Los replicaSet proveen redundancia y alta disponiblidad. Utilizan un esquema derivado del Maestro-Esclavo.
MongoDB soporta el particionamiento a tráves de clusters particionados. Un cluster particionado tiene tres componentes:

Particiones: cada partición almacena los datos. Para proveer alta disponibilidad y consistencia de datos cada partición debe ser un Replica Set.
Ruteadores de Consultas: Son la interfaz con las aplicaciones, procesan y dirigen cada operación a la partición correspondiente. Un cluster puede tener más de un ruteador de consulta, para distribuir también la carga de los clientes a los ruteadores.
Servidores de Configuración: almacenan la metadata del cluster, que contiene un mapeo de los datos del cluster a cada partición. El ruteador la utiliza para direccionar las operaciones a la partición correspondiente. En general los clusters de producción tienen tres.

Para particionar es necesaria una clave de partición. La clave de partición o “shard key” es un campo indexado existente en cada documento de un agregado. MongoDB divide los valores a través de la clave de partición en chunks y distribuye los chunks en cada partición. Para dividir las claves de partición en Chunks, MongoDB usa dos posibles esquemas: por rangos y por hash.
Map-Reduce:
db.nombreColección.mapReduce(mapFunction,reduceFunction, options);


Operaciones Atómicas: una operación de escritura es átomica solo en el nivel de un único documento, aún si la operación modifica múltiples documentos embebidos
dentro de un mismo documento. Cuando una sola operación de escritura modifica varios documentos, la modificación de cada documento es atómica, pero la operación en su conjunto no es atómica y otras operaciones puede intercalarse. Sin embargo, se puede aislar una única operación de escritura que afecta a varios documentos utilizando el operador $isolated
$isolated Operator
Usando el operador $isolated, una operación de escritura que afecta a varios documentos pueden impedir que otros procesos se entremezclen una vez que la operación de escritura modifique el primer documento. Esto asegura que ningún cliente ve los cambios hasta que la operación de escritura o errores a cabo.
El operador $isolated no funciona con sharded clusters.
Una operación de escritura aislada no proporciona una atomicidad "todo o nada". Es decir, un error durante la operación de escritura no deshace todos sus cambios que precedieron el error. (NO EXISTE EL ROLLBACK)

4-Map-Reduce es un modelo de programación para procesar grandes conjuntos de información en un sistema distribuído. La función map toma los datos de entradas planos y los transforma en un conjunto de claves, valor; luego la función reduce toma como entrada la salida del map y los transforma en realizando algún cálculo, dependiendo del problema particular.
La ejecución en paralelo da grandes beneficios, pero es difícil por:
El manejo de excepciones, el debugging, la tolerancia a fallos, la distribución de los datos, el balanceo de carga. Sin embargo, MapReduce se encarga de abstraer y de ocuparse de todo el trabajo pesado



Les parece bien?
Saludos!
28-02-2016 21:51
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] eltipito recibio 2 Gracias por este post
holautn (14-07-2016), lucascla (23-09-2017)
Buscar en el tema
Enviar respuesta 




Usuario(s) navegando en este tema: 1 invitado(s)



    This forum uses Lukasz Tkacz MyBB addons.