Tema 5 - NoSQL Flashcards
Nombra 3 ventajas frente a los sistemas de bases de datos relacionales de los sistemas de bases de datos NoSQL
Mayor productividad
Mayor flexibilidad al contar con esquemas de información agregada
Pueden tratar con grandes volúmenes de datos ya que son altamente distribuidos
Que es el sharding
Consiste en la distribución horizontal de los datos de manera que los datos estén separados en varios nodos
Nombra 3 desventajas de usar sistemas de bases de datos NoSQL
No garantizan los principios ACID (Atomicity, Consistency, Isolation, Durability)
Falta madurez en los sitemas (son muy nuevos)
Falta compatibilidad con otros productos ya que NoSQL no tiene estándares fijados
Que es el triángulo CAP
El modelo CAP sostiene que no se puede dar Confidencialidad, disponibilidad y toleracia a particiones al mismo tiempo. Se agrupa en forma de triángulo de manera que tengamos las combinaciones pares: CA, CP, AP
Nombra 4 bases de datos que cumplan con CA
MySQL, Oracle, SQL server y PostgreSQL
Nombra 4 bases de datos que cumplan con AP
DynamoDB, CouchDB, Cassandra, Infinite Graph
Extra: Riak, Simple DB, Voldemort
Nombra 4 bases de datos que cumplan con CP
MongoDB, Hbase, Redis, Bigtable
Que es un RDBMS
Es un sistema de administración de bases de datos relacionales para crear, actualizar y administrar bases de datos
Cuales son los modelos NoSQL
1) Modelo clave-valor
2) Modelo documento
3) Modelo basado en grafos
4) Modelo XML
5) Modelo de familia de columnas
6) Modelo de objetos
Nombra 5 productos clave - valor y detalla si son MM (multi modelo)
1) REDIS
2) Riak
3) Voldemort
4) ArangoDB –> MM
5) OrientDB –> MM
6) DynamoDB –> MM
7) SimpleDB
Nombra 5 productos basado en grafos y detalla si son MM
1) Neo4j
2) OrientDB –> MM
3) FlockDB
4) Infinite Graph
5) Hyper graph
6) ArangoDB –> MM
7) AllegroGraph
Nombra 4 productos basado en familias de columnas y detalla si son MM
1) Cassandra
2) Hbase
3) Hypertable
4) Bigtable
Nombra 5 productos basado en documentos y detalla si son MM
1) Mongo DB
2) CouchDB
3) OrientDB –> MM
4) RavenDB
5) Terrastore
6) ArangoDB –> MM
7) DynamoDB –> MM
Nombra 3 productos basado en objetos
1) ObjectStore
2) ZooDB
3) DB4o
4) Versant
5) ObjectDB
6) Jade
7) Zope
Nombra 3 productos basado en XML
1) BaseX
2) Exist
3) Sedna
4) QuizX
5) BerkeleyDB XML
6) Apache Xindice
Explica brevemente el modelo clave valor
Tenemos una clave primaria que a su vez tiene dos claves (Partition Key y Sort Key) que son los identificadores y tenemos unos atributos
Que 4 tipos de datos tiene asociado REDIS para modelo clave valor y di dos comandos asociados para cada uno de ellos
1) Strings (Get y Set)
2) Sets (SADD, SMEMBERS)
3) Lists (Lpush, Lrange)
4) Hashes (HMSET, HGET, HGETALL)
Explica brevemente el modelo basado en grafos
Utilizan nodos para almacenar las entidades de datos y bordes para almacenar las relaciones
Existen propiedades tanto en los nodos como en las relaciones.
Implementan algoritmos como:
- PageRank
- Shortest Path (Dijkstra)
- Euclidean distance
- Strongly connected componentes on tarjan
Explica brevemente el modelo basado en familias de columnas
Podemos crecer la tabla como queramos. Cada registro de la tabla tiene una clave. Cada registro esta dividido en familias de columnas.
Tiene 4 dimensiones, [Keyspace][Familia de columnas][RowKey][Column]
Explica brevemente el modelo basado en documento
Se basa en manejar colecciones de documentos JSON donde no hace falta hacer el esquema. Los JSON estan en forma de árbol y tienen información agregada. Se pueden hacer operaciones CRUD (Create, Read, Update, Delete)
Nombra 4 operaciones CRUD del modelo basado en documentos
1) db.users.insertOne( {name: “Alber”, age: 22, status: “pending”})
2) db.users.find({ age: {$gt: 18}}, {name: 1, address: 1}).limit(5) –> Busca que age > 18 y que devuelva el nombre y dirección de cada documento para 5 documentos
3) db.users.updateOne(…)
4) db.users.deleteMany(…)
Que diferencia tiene el modelo basado en objetos al modelo basado en grafos
Que las aristas no contienen información en el modelo basado en objetos y en el basado en grafos si contiene
En big data existen dos aspectos principales, cuales son
Procesamiento y Almacenamiento
Que es y para que se usa Apache Hadoop (Para la parte de almacenamiento)
Es un sistema para manejar sistemas distribuidos (en batch) que ofrece una potencia de cómputo masiva y usa HDFS. Puedes manejar un cluster de nodos (con Yarn o Mesos) y en cada uno de esos nodos hay trocitos de información, a eso se le llama HDFS que es un sistema de ficheros distribuido.
Que es Batch
Consiste en procesar la información por grupos en base a unos parámetros
Que es la persistencia políglota
Utilización conjunta de distintas bases de datos
Que es apache Kafka
Integración de mensajería que permite compartir datos entre Hadoop y NoSQL
Decimos que en la parte de procesamiento se usa Map-Reduce para NoSQL y Hadoop. Que significa Map-Reduce
Es un divide y vencerás distribuido. Map se encarga de resolver un problema nodo por nodo y reduce de generalizar la solución del problema.
Que es Mahout
Es una biblioteca de aprendizaje automático para Hadoop
Nomra 3 programas que se usen en Big Data
Pig
Spark
Hive