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.
1. [+34] 902 20 25 52 hablemos@beeva.com www.beeva.com
BASES DE DATOS NO RELACIONALES
MongoDB, Neo4J, RedShift
2. 2014 2
¿Qué consideramos un Modelo No Relacional (o NoSQL)?
► No utilizan un Modelo de Datos Relacional (ACID).
► Están diseñados para ejecutarse de manera eficiente en Clusters.
► Son generalmente OpenSource.
► Carecen de esquema, lo que permite añadir/eliminar campos libremente sin
tener que definir ni modificar previamente la estructura.
MODELOS NoSQL
5. 2014 5
Orientadas a Clave-Valor
► Almacena los datos bajo una Clave o Par de Claves único
► Alta Disponibilidad y Consistencia (Bajo Clave)
► Alto rendimiento en escrituras
► Alto rendimiento en lecturas por Clave
► Queries muy limitadas
► Penaliza las Queries que no consultan la Clave
► ¿Qué ocurre si no conocemos la Clave?
BASES DE DATOS: CLAVE-VALOR
6. 2014 6
Orientadas a Columnas
► Alto rendimiento en operaciones de Escritura
► Alto rendimiento en lecturas por Clave
► Almacena los datos bajo una Clave única
► Bajo la Clave, se agrupan varios atributos de tipo Clave-Valor, cada
agrupación es una: Columna
MODELOS NoSQL
7. 2014 7
Orientadas a Documento
► Almacena los datos en Documentos (XML, JSON, BSON)
► Cada Documento se indexa bajo una Clave Única
► Permiten crear índices (simples/complejos) para cualquier atributo
► Amplio espectro en las Queries
► Son Consistentes, lo que penaliza la escritura de los datos
► Si el “formato” de cada Documento varía mucho con respecto al resto,
penalizará el rendimiento de los índices
MODELOS NoSQL
8. 2014 8
Orientadas a Grafo
► Nuevo paradigma de Almacenamiento
► Registros pequeños con relaciones complejas
► Los registros se denominan Nodos y las relaciones Arcos
► Los Nodos se conectan mediante los Arcos
► Queries con caracter semántico
► Al tener relaciones tan fuertes entre los datos, son poco recomendables
para un entorno distribuído
► Cuando queramos actualizar una gran cantidad de nodos
MODELOS NoSQL
9. 2014 9
Bases de datos NoSQL con las que trabajamos en BEEVA
Amazon
Redshift
DynamoDB
Bases de Datos como Servicio en AWS Bases de Datos Open Source
MODELOS NoSQL
10. 2014 10
Amazon Redshift (1/2) Amazon
Redshift
Qué es
• Data Warehouse como servicio gestionado en Cloud, Basado en tecnología MPP
Compatibilidad e integración
• Basado en Postgres, SQL estándar: Conector ODBC y JDBC
• Compatible con herramientas de ETL de mercado (PowerCenter, Talend, etc.)
• Compatible con herramientas de BI y visualización de mercado (Mirostrategy, Tableau, etc.)
• Migración de datos a bases de datos relacionales transparente (requiere gestión índices y claves)
MODELOS NoSQL
11. 2014 11
Amazon Redshift (2/2) Amazon
Redshift
Detalle técnico
• Direct-attach storage y bloques de memoria de 1MB
• Compresión 2-4x: diferente algoritmo en función del tipo de dato
• Zone maps: optimización en la query
• Opción de HW basado en discos SSD
• Paralelización y distribución en query plan (C++)
• Back-up automático, asíncrono, a S3; replicación síncrona en el cluster
• Posibilidad de realizar snapshots on-demand o planificados
• Redimensionamiento sencillo: se reconfigura automáticamente el SQL end-point
• SSL en el leader node
• Cifrado de datos en el cluster: AES-256
Principales beneficios
• Data Warehouse a bajo coste, en pago por uso con Alto rendimiento en consultas
• Servicio gestionado por AWS
• Compatibilidad Postgres, SQL estándar
MODELOS NoSQL
12. 2014 12
MongoDB (1/2)
Qué es
• BBDD Open Source NoSQL orientada a documentos
• Basada en documentos JSON (Binary-JSON)
• Escalabilidad horizontal en HW
Detalle técnico diferencial
• Esquema dinámico
• Adición de múltiples índices secundarios
• Adición de índices Geoespaciales
• Escalado horizontal mediante Sharding (NO Autoescalado)
• Permite configuraciones de Alta Disponibilidad mediante Replica Sets
• Posee integración nativa con Hadoop
• Cada Documento puede almacenar un máximo de 16Mb
• Se pueden almacenar objetos BLOB: Imágenes, videos, …
• Framework Aggregation
MODELOS NoSQL
13. 2014 13
MongoDB (2/2)
Compatibilidad e integración
• Para migrar información es necesario desarrollar un agente SW o proceso batch
específico que lleve a cabo la tarea.
• Consideraciones sobre migraciones:
• De SQL a NoSQL se pierden las relaciones entre tablas y las claves foráneas
• Replantear la estrategia de índices para optimizar el rendimiento de las
queries
• De NoSQL a SQL, es necesario replantear la estrategia de tablas, relaciones y
claves foráneas a utilizar y comprobar la estructura de los Documentos para
normalizar los campos
Principales beneficios
• Alto rendimiento en Queries; escalabilidad
• Versatilidad en las Queries
• Open Source
• Reducción de: Impedance Mismatch
MODELOS NoSQL
14. 2014 14
Neo4j (1/3)
Qué es
• Base de datos Open Source orientada a grafos
• Cumple ACID
Detalle técnico diferencial
• Esquema dinámico
• Neo4j es idóneo para resolver problemas de relaciones entre objetos o relaciones
entre personas (social networks)
• Neo4j sigue el modelo ‘property graph’ o grafo de propiedades
• Formas de utilizar Neo4j:
• Utiliza Cypher como lenguaje declarativo de consulta
• API REST con algo más de funcionalidad que Cypher (esta tendencia va
cambiando en las últimas versiones)
• En casos especiales podemos utilizar plugins vía API
• La versión Neo4j Community vs Neo4j Enterprise (licencia GPLv3 y comercial)
• Permite realizar transacciones
MODELOS NoSQL
15. 2014 15
Neo4j (2/3)
Compatibilidad e integración
• No compatible con otros modelos de almacenamiento
• Una solución habitual es complementar Neo4j con MongoDB
Valoración: puntos positivos
• Modelo de Datos basado en Relaciones Fuertes
• Open Source
• Comunidad muy Activa
• Muy rápida para consultas de pocos grados de profundidad y miles de
nodos
• Consola de administración
• Fácil importación de formatos propios .csv con plugin batch-import
• Servidor fácil de configurar
• Visualización Gráfica de las Respuestas
• Permiten usar Neo4j de forma embedded a través de la API de Java para
crear endpoints específicos.
MODELOS NoSQL
16. 2014 16
Neo4j (3/3)
Valoración: puntos negativos
• Neo4j Community no es escalable para cantidades de datos muy grandes
• Consultas ineficientes si se almacena mucha información en los nodos
• Neo4j prefiere que se almacene todo el grafo en memoria pero es ineficiente
cachear todo si no todo se utiliza.
• No permite sharding.
• Neo4j no tiene gestión de usuarios ni autenticación: hay una extensión para
autenticar, o como alternativa, se puede poner un proxy delante de la BD para
autenticar.
• No permite la exportación de datos
• No recomendados cambios de versiones:
• Existen cambios entre versiones en el formato binario de las BDs
MODELOS NoSQL
17. CONTÁCTANOS
902 20 25 52
hablemos@beeva.es
www.beeva.es
@beeva_es
AUTOR
Puesto del autor en BEEVA
email@beeva.com