Este documento presenta una introducción al modelo de datos clave-valor. Explica que este modelo asocia claves con valores de forma eficiente, permitiendo el acceso rápido a los elementos almacenados mediante una clave. También describe algunas técnicas comunes como el hashing consistente para la distribución de datos en sistemas distribuidos, y presenta Redis como un caso de estudio, explicando sus operaciones, arquitectura, replicación y usos comunes.
También conocido como no sólo sql (Not only sql) es una amplia clase de sistemas de gestión de datos, caracterizado por no usar SQL como el principal lenguaje de consultas. Capaz de almacenar grandes cantidades de datos facilitando un crecimiento horizontal, enfocándose en rendimiento más que en consistencia.
“NoSQL realmente es NoREL, es decir, Base de Datos No-Relacional”
Esta presentación explica como funciona el modelo relacional en una base de datos y como aplicarlo.
This presentation explains how the relational model works in a database and how to apply
También conocido como no sólo sql (Not only sql) es una amplia clase de sistemas de gestión de datos, caracterizado por no usar SQL como el principal lenguaje de consultas. Capaz de almacenar grandes cantidades de datos facilitando un crecimiento horizontal, enfocándose en rendimiento más que en consistencia.
“NoSQL realmente es NoREL, es decir, Base de Datos No-Relacional”
Esta presentación explica como funciona el modelo relacional en una base de datos y como aplicarlo.
This presentation explains how the relational model works in a database and how to apply
Una breve panorámica sobre el contexto en el que surgen las bases de datos NoSQL, las limitaciones de los sistemas de gestión de bases de datos relacionales que las soluciones NoSQL intentan superar, así como una presentación de los principales productos NoSQL.
Curso impartido en Curso de Verano Big Data & Data Science, Universidade de Santiago de Compostela, CITIUS (http://www.citius.usc.es/), 18 de Julio 2013
Conceptos básicos de NoSQL. Introducción a Cassandra, CouchDB, MongoDB y Neo4j.
Thinking has always been a characteristic of designing, but design is unable to think about itself. It has never developed its own theories, unlike art. What is called design ? A short lecture in Art Academy of Latvia, on October 6th, 2011.
Want to exercise without going to a gym?
Walking is a great form of exercise that you can do alone, with others, outside or inside.
Follow these great tips to make the most out of your next walk!
Charla impartida por Marco Antonio Sanz Molina Prados, Fundador de CloudAppi, que repasa las tecnologías más habituales del mundo Big Data y su aplicación en el desarrollo de las Apis.
En la ponencia se tratan os siguientes puntos:
• Arquitectura Lambda
• Arquitectura de APIs
• Bases de datos noSQL
• Datawarehouses Big Data
• Ejemplos de arquitecturas
Profundo análisis de las tecnologías Big Data y como aplicarlas en el desarrollo de las Apis. Se analizan las bases de datos noSQL y aquellas tecnologías (Storm, Hadoop...) que pueden ayudar al desarrollo. Además, se analizan ejemplos de arquitecturas de Apis Big Data y como se han aplicado estas tecnologías.
Breve introducción a las bases de datos NoSQL, es decir, no relacionadas, que tuvo lugar en @cycle_it durante uno de los laboratorios de innovación.
Se trataron las bases de datos NoSQL, hablando de las principales categorías: Columna, Documento, Clave-Valor y Grafo. Se mencionan algunos ejemplos de vendedores en cada categoría como Cassandra, Hadoop/HBase, Redis, MongoDB, Riak, Neo4J, etc.
La caché es una memoria más pequeña y rápida que la de nuestro almacén de información, por lo que su uso se ha extendido desde el hardware hasta el software. Con la evolución de las tecnologías hacia internet y la utilización de diferentes servidores en entornos cloud, se ha creado la necesidad de desarrollar sistemas de caché distribuidos. Microsoft Azure nos provee de diferentes servicios de caché distribuida, pero debemos aprender a utilizarlos de la forma más eficiente. A lo largo de esta charla revisaremos los sistemas de caché disponibles y cómo podemos explotarlos en nuestras aplicaciones.
Te explicamos el qué se considera un Modelo No Relacional. Clasificando los tipos de Bases de Datos: Orientadas a Clave-Valor, Columna, Documentos o Grafos. Además te enseñamos con qué Bases de Datos trabajamos en BEEVA: Bases de Datos como Servicio en AWS y Bases de Datos Open Source.
Presentación de la conferencia CorunaDev 2015 ( Coruña developers)
El Big Data ha llegado para quedarse. Y lo está cambiando todo. Cualquier aplicación reciente necesita funcionalidades Big Data. Hacer aplicaciones como antes tiene cada vez menos sentido.
Y sí, *como programador te afecta. Y mucho.*
Las opciones de almacenamiento, paralelización, concurrencia, escalabilidad o arquitecturas de aplicación están evolucionado rápidamente.
Programación reactiva, microservicios, cassandra, hadoop, spark,
¿Te atreves a ponerte al día en 40 min?
Web framework ligeros y micros en java barcamp 2014Carlos Camacho
Presentación enfocada a mostrar las funcionalidades más importante de los micro framework Spark y Ratpack. Dando una inducción a los conceptos básicos en su utilización del protocolo HTTP y los servicios REST.
Impartida en la segunda edición en el Barcamp 2014, Pontificia Universidad Católica Madre y Maestra (PUCMM), Santiago de los Caballeros, República Dominicana.
Comúnmente conocemos redis como un sistema de caché distribuido que podemos usar en modo PaaS gracias a la plataforma de azure. Pero redis se define como un sistema de base de datos NoSql de tipo clave valor, que funciona perfectamente como memoria caché, pero que además tiene muchas características adcionales. A lo largo de esta charla comentaremos las posibilidades de este servicio y cómo podemos explotarlas.
El Administra de BD debe conocer como se organizan los archivos de datos para tener criterios de selección de la organización que incida en el rendimiento de la Base de Datos
Las capacidades sociomotrices son las que hacen posible que el individuo se pueda desenvolver socialmente de acuerdo a la actuación motriz propias de cada edad evolutiva del individuo; Martha Castañer las clasifica en: Interacción y comunicación, introyección, emoción y expresión, creatividad e imaginación.
Un libro sin recetas, para la maestra y el maestro Fase 3.pdfsandradianelly
Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestr
3. Modelo de datos
Una tabla hash, matriz asociativa, mapa
hash, tabla de dispersión o tabla fragmentada
◦ Es una estructura de datos que asocia llaves o claves con
valores.
◦ La operación principal que soporta de manera eficiente es
la búsqueda: permite el acceso a los elementos (teléfono y
dirección, por ejemplo) almacenados a partir de una clave
generada
4. Distribución de los datos
Para agilizar las búsquedas por la clave se utilizan
normalmente funciones de asociación que son las
que definen donde se almacenará el dato y luego
permiten su rápido acceso
5. Distribución de los datos
Pero en sistemas distribuidos donde los nodos pueden entrar
y salir de manera dinámica (p2p) este esquema es complejo
de manejar
En estos casos se propone el uso de la técnica como “Hashing
Consistente” que requiere el diseño de Tablas hashing
distribuidas
6. Almacenamiento
Si cada nodo tiene un conjunto de claves aleatorias,
internamente puede almacenarse de distintas
maneras:
◦ Tabla hash
◦ arboles B+ (Tokyo Cabinet)
Tipos de registros
◦ <key, value>
◦ Tupla<key, v1,. ., vn>
7. Operaciones
Operaciones simples
◦ Set(key, value) o put (key, value)
◦ Get (key) : value
◦ Delete (key)
Otras operaciones
◦ Operaciones sobre listas, conjuntos, mapas, entre otros
◦ Push, Insert, remove, count, leng, etc.
◦ mapreduce(keyList, mapFunc, reduceFunc)
◦ Depende de la base de datos
9. Técnicas usadas
Voldemort, Riak, Redis, Scalaris, Tokyo Cabinet,
Memcached/Membrain/Membase
◦ Hashig Consistente(DHT)
◦ Solo indices primarios: búsqueda por clave
◦ No manejan índices secundarios
◦ Transacciones: actuakizacion simple o multiple.
◦ Concurrencia: bloqueos o MVCC
10. Ejemplo – DynamoDB
Problema Técnica Ventaja
Arquitectura P2P Escalabilidad transparente
Sharding Hashing Consistente Escalabilidad Incremental
Alta disponibilidad de escrituras
Relojes de vector con
reconciliación durante lecturas
Tamaño de versiones está
desacoplada de las tasas de
actualización.
Manejo de fallas temporales Sloppy Quorum y hinted handoff
Proporciona alta disponibilidad y
garantía de durabilidad cuando
algunas de las réplicas no están
disponibles.
Recuperación de fallas
permanentes
Anti entropía con árboles Merkle
Sincroniza réplicas divergentes en
background
Entrada y salida de nodos
Protocolo de membresía y
detección de fallos basado en
Gossip
Conserva la simetría y evita tener
un registro centralizado para el
almacenamiento de membresía e
información de nodos activos .
11. Caso de estudio - Redis
Es una almacén de clave valor de código abierto
◦ Primera versión: abril 2009 (actualmente 3.2.1 V estable)
◦ Escrito en C
◦ Multiplataforma (menos Windows)
◦ Licencia Creative Commons CC BY-SA 4.0
◦ Arquitectura maestro-esclavo (clúster)
◦ Sitio web: http://redis.io
Maneja varios tipos de datos indexados por la clave como:
◦ Cadena de caracteres (string) seguras binarias
◦ hashes,
◦ Listas (lists)
◦ conjuntos y conjuntos ordenados (set, sorted set)
◦ Arreglos de bits (bitmaps)
◦ Hyperlogs: datos probabilísticos para estimar la cardinalidad de un conjunto
12. Caso de estudio - Redis
Trabaja en memoria principal lo que disminuye los tiempos de respuesta
◦ Cada segundo Redis puede manejar mas de 100.000 operaciones de Lectura/Escritura
Es posible tener persistencia
◦ volcar el conjunto de datos en el disco de acuerdo a la tasa de actualizaciones
◦ o añadiendo cada comando en un registro log.
Particionamiento
◦ Por rango de claves: haciendo corresponder un rango a una instancia de Redis
◦ Ventaja: sencillo de implementar
◦ Desventaja: requiere llevar una tabla de correspondencia entre los rangos y las instancias
◦ Por hashing: requiere una función que hash que convierta un string en un número y luego
la función módulo n donde n es el número de instancias de redis. Ejemplo para instancias
R0..R3 de redis
◦ Se aplica la fución crc32 a la clave: crc32(foobar)93024922.
◦ 93024922 mod 4 = 2 (se guarda en la instancia R2)
13. Caso de estudio - Redis
Particionamiento
◦ Partición del lado del cliente: el cliente selecciona el nodo donde almacenar la clave,
usando rango de claves o hashing
◦ Partición asistida por proxy: Se configura el esquema de partición en un proxy y este se
encarga de transmitan los datos a la instancia correspondiente
◦ Enrutamiento de consultas: la consulta puede dirigirse a cualquier nodo y este se
asegurará que llegue al nodo correcto
◦ No implementa Hash Consistente
Consideraciones
◦ No soporta consultas a múltiples claves que están en instancias diferentes
◦ No soporta transacciones que involucren varias claves
◦ El manejo de datos es complejo cuando se usa sharding
◦ Agregar o quitar nodos es complejo
14. Caso de estudio - Redis
Replicación
◦ Usa replicación asíncrona, con una configuración maestro-esclavo
◦ Un maestro puede tener varios esclavos
◦ Usa MVCC para la concurrencia, sin bloqueos del maestro o los esclavos
◦ Si un maestro falla (es inalcanzable) se promueve un esclavo como nuevo maestro
◦ Más información http://redis.io/topics/replication
15. Caso de estudio – Redis
Arquitectura
Todos los nodos se
conectan directamente
con los demás a través
del “Redis Cluster Bus”
Usa gossip para la
eliminación o ingreso
de nuevos nodos
(membresía)
http://redis.io/topics/cluster-spec
16. Caso de estudio – Redis
Seguridad
◦ Diseñado para ser accedido por los clientes de confianza
◦ Si el acceso no es de confianza debe estar mediado por una
capa de la aplicación de auditoria.
◦ Aunque no implementa control de acceso ofrece una capa
de autenticación que se activa en el archivo redis.conf
◦ Redis no implementa cifrado de datos
◦ Es muy difícil la inyección de código por no tener código de
escape
17. Caso de estudio - Redis
Tiene API’s para diferentes lenguajes
◦ PHP,
◦ Java,
◦ Python,
◦ Ruby,
◦ Perl,
◦ Scala,
◦ C, C++,Objective C, Node.js,
◦ Muchos más…
18. Caso de estudio - Redis
Algunos usos de Redis
◦ Mensajería
◦ Mostrar últimos artículos listados en su página principal.
◦ Supresión y filtrado.
◦ Tablas de clasificación y problemas relacionados
◦ Colas
◦ Análisis en tiempo real de lo que sucede, estadísticas, anti
spam.
◦ Caching
◦ Muchos más ...
20. Clave valor
Investigar en Riak
◦ Tipos de datos y operaciones
◦ Arquitectura
◦ Fragmentación y replicación (técnicas)
◦ Seguridad
◦ Usos
21. Cuando usar almacenes
clave-valor
Cuando la capacidad de
almacenar y recuperar
grandes volúmenes de
datos es importante
No es importante
almacenar las
relaciones entre los
elementos
La data es no
estructurada
Util para el desarrollo
rápido de prototipos
Manejo del crecimiento
rápido de la lista de
elementos: twitter,
registros históricos de
internet, blogs
No se requiere la
implementación de
validaciones lógicas o
restricciones de los
datos en la BD
22. Limitaciones de clave-valor
Falta de estándares para el manejo de datos
Lenguajes de consulta no son de alto nivel
Herramientas para su uso y configuración
Consultas y ordenamiento solamente por clave
primaria
23. Próxima clase
BD NoSQL Documento:
◦ Modelo de datos
◦ Operaciones
◦ Técnicas usadas
◦ Caso de estudio