[+34] 902 20 25 52 hablemos@beeva.com www.beeva.com
BASES DE DATOS NO RELACIONALES
MongoDB, Neo4J, RedShift
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
2014 3
Tipos de Bases de Datos NoSQL
BASES DE DATOS
2014 4
C
A
P
TEOREMA DE CAP
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
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
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
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
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
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
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
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
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
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
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
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
CONTÁCTANOS
902 20 25 52
hablemos@beeva.es
www.beeva.es
@beeva_es
AUTOR
Puesto del autor en BEEVA
email@beeva.com

Bases de Datos No Relacionales

  • 1.
    [+34] 902 2025 52 hablemos@beeva.com www.beeva.com BASES DE DATOS NO RELACIONALES MongoDB, Neo4J, RedShift
  • 2.
    2014 2 ¿Qué consideramosun 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
  • 3.
    2014 3 Tipos deBases de Datos NoSQL BASES DE DATOS
  • 4.
  • 5.
    2014 5 Orientadas aClave-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 aColumnas ► 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 aDocumento ► 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 aGrafo ► 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 dedatos 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) Compatibilidade 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) Compatibilidade 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 2552 hablemos@beeva.es www.beeva.es @beeva_es AUTOR Puesto del autor en BEEVA email@beeva.com