bases de datos nosql multi-modelos, caso de estudio: orientdb

74
Bases de datos NoSQL Multi-Modelos, caso de estudio: OrientDB Frank T, Vanessa T, Wilmer G. Universidad Central de Venezuela Bases de datos NoSQL February 2, 2016 Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 1 / 54

Upload: wilmer-gonzalez

Post on 11-Apr-2017

1.383 views

Category:

Software


3 download

TRANSCRIPT

Page 1: Bases de datos NoSQL Multi-Modelos, caso de estudio: OrientDB

Bases de datos NoSQL Multi-Modelos,caso de estudio:

OrientDB

Frank T, Vanessa T, Wilmer G.

Universidad Central de Venezuela

Bases de datos NoSQL

February 2, 2016

Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 1 / 54

Page 2: Bases de datos NoSQL Multi-Modelos, caso de estudio: OrientDB

Contenido

1 Conceptos basicos.2 Caso de estudio - OrientDB:3 Comparaciones4 Conclusiones

”... 1st generation NoSQLproducts, where each tool wasonly good at a few use cases...2nd generation NoSQL isMulti-Model...”

Luca Garulli - Author of OrientDBMarch 26, 2015

Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 2 / 54

Page 3: Bases de datos NoSQL Multi-Modelos, caso de estudio: OrientDB

Conceptos basicos. Antecedentes a NoSQL

1 Conceptos basicos.

2 Caso de estudio - OrientDB:

3 Comparaciones

4 Conclusiones

Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 3 / 54

Page 4: Bases de datos NoSQL Multi-Modelos, caso de estudio: OrientDB

Conceptos basicos. Antecedentes a NoSQL

Conceptos basicos123

Integracion de base dedatos compartida.

Desajuste de impedancia.

Integracion en unica base de datosdesde multiples aplicaciones ocomponentes.

Alternativa

Arquitectura de Base de DatosPolıglota:...The most important result of therise of NoSQL is PolyglotPersistence...

1NoSQL Distilled - M. Fowler & P. Sadalage2One Size Fits All: An Idea Whose Time Has Come and Gone. - M. Stonebracker3Advancing Distributed Systems. - Eric Brewer

Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 4 / 54

Page 5: Bases de datos NoSQL Multi-Modelos, caso de estudio: OrientDB

Conceptos basicos. Antecedentes a NoSQL

Conceptos basicos123

Integracion de base de datoscompartida.

Desajuste de impedancia.

La dificultad generada por ladiferencia entre estructuras de datosen memoria y el modelo relacional.

Alternativa

Arquitectura de Base de DatosPolıglota:...The most important result of therise of NoSQL is PolyglotPersistence...

1NoSQL Distilled - M. Fowler & P. Sadalage2One Size Fits All: An Idea Whose Time Has Come and Gone. - M. Stonebracker3Advancing Distributed Systems. - Eric Brewer

Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 4 / 54

Page 6: Bases de datos NoSQL Multi-Modelos, caso de estudio: OrientDB

Conceptos basicos. Antecedentes a NoSQL

Conceptos basicos123

Integracion de base de datoscompartida.

Desajuste de impedancia.

Alternativa

Arquitectura de Base de DatosPolıglota:...The most important result of therise of NoSQL is PolyglotPersistence...

1NoSQL Distilled - M. Fowler & P. Sadalage2One Size Fits All: An Idea Whose Time Has Come and Gone. - M. Stonebracker3Advancing Distributed Systems. - Eric Brewer

Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 4 / 54

Page 7: Bases de datos NoSQL Multi-Modelos, caso de estudio: OrientDB

Conceptos basicos. Arquitectura de Base de Datos Polıglota

Persistencia Polıglota

Definicion Uso de diferentes bases de datos para cada requerimiento delsistema.

Implicaciones Requiere una capa de integracion que interprete loslenguajes de los DBMS subyacentes y asegure la consistenciaentre las bases de datos.

Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 5 / 54

Page 8: Bases de datos NoSQL Multi-Modelos, caso de estudio: OrientDB

Conceptos basicos. Arquitectura de Base de Datos Polıglota

Persistencia Polıglota

Definicion Uso de diferentes bases de datos para cada requerimiento delsistema.

Implicaciones Requiere una capa de integracion que interprete loslenguajes de los DBMS subyacentes y asegure la consistenciaentre las bases de datos.

Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 5 / 54

Page 9: Bases de datos NoSQL Multi-Modelos, caso de estudio: OrientDB

Conceptos basicos. Arquitectura de Base de Datos Polıglota

Persistencia Polıglota4

4de Polyglot programing. - Neal FordFrank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 6 / 54

Page 10: Bases de datos NoSQL Multi-Modelos, caso de estudio: OrientDB

Conceptos basicos. Arquitectura de Base de Datos Polıglota

Consideraciones6

Ventajas Desventajas

Compatibilidad hacıa atras con sistemas legados. Interoperabilidad.Multiples herramientas ⇒ multiples habilidades.Acceso no uniforme.Consistencia.Redundancia logica.*Seguridad.Tolerancia a fallos.*5

En el 90% de los casos de uso Base de Datos NoSQL son usados comosegundo DBMS.

5Polyglot Persistence or Multiple Data Models? - Stephen Pimentel. Author ofFoundationDB

6Polyglot database architectures = polyglot challenges. - Lena WiseFrank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 7 / 54

Page 11: Bases de datos NoSQL Multi-Modelos, caso de estudio: OrientDB

Conceptos basicos. Arquitectura de Base de Datos Polıglota

Arquitecturas Lambda

Definicion Arquitecturas que combinan una capa de procesamiento porlotes(lenta) con una capa de procesamiento en tiempo real,para proveer respuestas de baja latencia.

Alta velocidad

Analisis o consultassolo sobre los datosmas recientes (pila).

Procesamiento porlotes

Historico de (todos)los datos que se hanrecopilado,generalmente usadospara analisis.

Servicio

Combina las consultasde las capas anterioresen una solaestructura.

Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 8 / 54

Page 12: Bases de datos NoSQL Multi-Modelos, caso de estudio: OrientDB

Conceptos basicos. Arquitectura de Base de Datos Polıglota

Arquitecturas Lambda

Definicion Arquitecturas que combinan una capa de procesamiento porlotes(lenta) con una capa de procesamiento en tiempo real,para proveer respuestas de baja latencia.

Alta velocidad

Analisis o consultassolo sobre los datosmas recientes (pila).

Procesamiento porlotes

Historico de (todos)los datos que se hanrecopilado,generalmente usadospara analisis.

Servicio

Combina las consultasde las capas anterioresen una solaestructura.

Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 8 / 54

Page 13: Bases de datos NoSQL Multi-Modelos, caso de estudio: OrientDB

Conceptos basicos. Arquitectura de Base de Datos Polıglota

Arquitecturas Lambda

Definicion Arquitecturas que combinan una capa de procesamiento porlotes(lenta) con una capa de procesamiento en tiempo real,para proveer respuestas de baja latencia.

Alta velocidad

Analisis o consultassolo sobre los datosmas recientes (pila).

Procesamiento porlotes

Historico de (todos)los datos que se hanrecopilado,generalmente usadospara analisis.

Servicio

Combina las consultasde las capas anterioresen una solaestructura.

Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 8 / 54

Page 14: Bases de datos NoSQL Multi-Modelos, caso de estudio: OrientDB

Conceptos basicos. Arquitectura de Base de Datos Polıglota

Arquitecturas Lambda

Definicion Arquitecturas que combinan una capa de procesamiento porlotes(lenta) con una capa de procesamiento en tiempo real,para proveer respuestas de baja latencia.

Alta velocidad

Analisis o consultassolo sobre los datosmas recientes (pila).

Procesamiento porlotes

Historico de (todos)los datos que se hanrecopilado,generalmente usadospara analisis.

Servicio

Combina las consultasde las capas anterioresen una solaestructura.

Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 8 / 54

Page 15: Bases de datos NoSQL Multi-Modelos, caso de estudio: OrientDB

Conceptos basicos. Arquitectura de Base de Datos Polıglota

Arquitecturas Lambda

7

7voltdb.com/products/alternatives/lambda-architectureFrank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 9 / 54

Page 16: Bases de datos NoSQL Multi-Modelos, caso de estudio: OrientDB

Conceptos basicos. Arquitectura de Base de Datos Polıglota

Consideraciones9

Ventajas Desventajas

Pureza de los datos de entrada. Mantenimiento y complejidad de codigo.Enfatiza Reprocesamiento de los datos.Disminuye el impacto del teorema CAP.8

8How to beat the CAP theorem. - Nathan Marz, Author of Storm & ElephantDB9Questioning the Lambda Architecture. - Jay Kreps

Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 10 / 54

Page 17: Bases de datos NoSQL Multi-Modelos, caso de estudio: OrientDB

Conceptos basicos. Arquitectura de Base de Datos Polıglota

Bases de datos Multi-Modelos

Definicion Bases de datos que soportan diferentes modelos dentro de sumotor o proveen capas para ellos colocadas sobre un motorde un solo modelo.

Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 11 / 54

Page 18: Bases de datos NoSQL Multi-Modelos, caso de estudio: OrientDB

Conceptos basicos. Arquitectura de Base de Datos Polıglota

Consideraciones

Modelo de datos

Representacion de laorganizacion de losdatos y sus relaciones.

Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 12 / 54

Page 19: Bases de datos NoSQL Multi-Modelos, caso de estudio: OrientDB

Conceptos basicos. Arquitectura de Base de Datos Polıglota

Consideraciones

Modelo de datos

Representacion de laorganizacion de losdatos y sus relaciones.

Motor dealmacenamiento

Componente quepermite lasoperaciones CRUD,mediante API ointerfaz del DMBS.

Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 12 / 54

Page 20: Bases de datos NoSQL Multi-Modelos, caso de estudio: OrientDB

Conceptos basicos. Arquitectura de Base de Datos Polıglota

Consideraciones

Modelo de datos

Representacion de laorganizacion de losdatos y sus relaciones.

Motor dealmacenamiento

Componente quepermite lasoperaciones CRUD,mediante API ointerfaz del DMBS.

Lenguaje de consulta

Lenguaje usado paraobtener respuestasbasadas en hechosrepresentados en elsistema.

Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 12 / 54

Page 21: Bases de datos NoSQL Multi-Modelos, caso de estudio: OrientDB

Conceptos basicos. Arquitectura de Base de Datos Polıglota

Consideraciones

Modelo de datos

Representacion de laorganizacion de losdatos y sus relaciones.

Motor dealmacenamiento

Componente quepermite lasoperaciones CRUD,mediante API ointerfaz del DMBS.

Lenguaje de consulta

Lenguaje usado paraobtener respuestasbasadas en hechosrepresentados en elsistema.

Tipo Motor de almacenamiento Modelo de datos Motor de Consulta

Uni-Modelo(Nativo) Multi-Capas Unico Unico, diferentes APIs Dependiente del APIMulti-Modelo(Nativo) Variado Variado Mixto

Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 12 / 54

Page 22: Bases de datos NoSQL Multi-Modelos, caso de estudio: OrientDB

Conceptos basicos. Arquitectura de Base de Datos Polıglota

Bases de datos Multi-Modelos

10

10orientdb.comFrank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 13 / 54

Page 23: Bases de datos NoSQL Multi-Modelos, caso de estudio: OrientDB

Conceptos basicos. Arquitectura de Base de Datos Polıglota

Consideraciones

Ventajas Desventajas

Facilidad de administracion. Paradigma reciente.Integracion de componentes de bajo nivel.* Analisis reduccionista de desempenoTolerancia a fallos.Escalabilidad.

Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 14 / 54

Page 24: Bases de datos NoSQL Multi-Modelos, caso de estudio: OrientDB

Caso de estudio - OrientDB:

1 Conceptos basicos.

2 Caso de estudio - OrientDB:

3 Comparaciones

4 Conclusiones

Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 15 / 54

Page 25: Bases de datos NoSQL Multi-Modelos, caso de estudio: OrientDB

Caso de estudio - OrientDB: Criterio

OrientDB

En desarrollo desde 1998publicada en 2010, por lacompanıa OrientTechnologies.

Licenciada bajo Apache 2Open Source, libre paracualquier proposito.

Ultima version liberada:2.1.7 el 9 de diciembre.

Desarrollada en Java.

Luca Garulli:”The First Ever Multi-Model Database Combining Flexibility of

Documents with Connectedness of Graphs”.

Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 16 / 54

Page 26: Bases de datos NoSQL Multi-Modelos, caso de estudio: OrientDB

Caso de estudio - OrientDB: Criterio

OrientDB

Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 17 / 54

Page 27: Bases de datos NoSQL Multi-Modelos, caso de estudio: OrientDB

Caso de estudio - OrientDB: Criterio

Popularidad

Data

Data by itself has little value, it’s the relationship between data that givesit incredible value.a

aHow graph databases started the multi-model revolution. - Luca Garulli

Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 18 / 54

Page 28: Bases de datos NoSQL Multi-Modelos, caso de estudio: OrientDB

Caso de estudio - OrientDB: Criterio

Tendencia

Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 19 / 54

Page 29: Bases de datos NoSQL Multi-Modelos, caso de estudio: OrientDB

Caso de estudio - OrientDB: Criterio

Cuadrantes de complejidad de datos y relaciones

Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 20 / 54

Page 30: Bases de datos NoSQL Multi-Modelos, caso de estudio: OrientDB

Caso de estudio - OrientDB: Caracterısticas

Esquema

Schema-full

Permite definirpropiedades a nivel declases, camposmandatorios yrestricciones.

Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 21 / 54

Page 31: Bases de datos NoSQL Multi-Modelos, caso de estudio: OrientDB

Caso de estudio - OrientDB: Caracterısticas

Esquema

Schema-full

Permite definirpropiedades a nivel declases, camposmandatorios yrestricciones.

1 OClass account = d a t a b a s e . getMetadata ( ) . getSchema ( ) .c r e a t e C l a s s ( ” Account ” ) ;

2 account . c r e a t e P r o p e r t y ( ” i d ” , OType . I n t e g e r ) ;3 account . c r e a t e P r o p e r t y ( ” b i r t h D a t e ” , OType . Date ) ;

Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 21 / 54

Page 32: Bases de datos NoSQL Multi-Modelos, caso de estudio: OrientDB

Caso de estudio - OrientDB: Caracterısticas

Esquema

Schema-full

Permite definirpropiedades a nivel declases, camposmandatorios yrestricciones.

1 p r o f i l e . c r e a t e P r o p e r t y ( ” n i c k ” , OType . STRING) . setMin ( ”3” ) .setMax ( ”30” ) . setMandatory ( t r u e ) . s e t N o t N u l l ( t r u e ) ;

2 p r o f i l e . c r e a t e I n d e x ( ” n i c k I d x ” , OClass . INDEX TYPE . UNIQUE , ”n i c k ” ) ; // C r e a t e s u n i q u e c o n s t r a i n t

Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 21 / 54

Page 33: Bases de datos NoSQL Multi-Modelos, caso de estudio: OrientDB

Caso de estudio - OrientDB: Caracterısticas

Esquema

Schema-full

Permite definirpropiedades a nivel declases, camposmandatorios yrestricciones.

Schema-less

Permite clases sinpropiedades, en lasque los objetospueden tener camposarbitrarios.

Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 21 / 54

Page 34: Bases de datos NoSQL Multi-Modelos, caso de estudio: OrientDB

Caso de estudio - OrientDB: Caracterısticas

Esquema

Schema-full

Permite definirpropiedades a nivel declases, camposmandatorios yrestricciones.

Schema-less

Permite clases sinpropiedades, en lasque los objetospueden tener camposarbitrarios.

Schema-mixed

Permite clases conalgunas propiedades,cuyos objetos puedentener camposarbitrarios.

Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 21 / 54

Page 35: Bases de datos NoSQL Multi-Modelos, caso de estudio: OrientDB

Caso de estudio - OrientDB: Caracterısticas

Transacciones

Atomicidad

Ejecucion completa o nula de latransaccion.OrientDB almacena lastransacciones en la RAM delcliente, i.e. tamano de latransaccion depende de la RAMasignada a JVM.

Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 22 / 54

Page 36: Bases de datos NoSQL Multi-Modelos, caso de estudio: OrientDB

Caso de estudio - OrientDB: Caracterısticas

Transacciones

Consistencia

Cada transaccion lleva la base dedatos de un estado consistente alotro.OrientDB usa MVCC, ımplicitoen API de grafos y explıcito enAPI de documentos.

1 db . open ( ” remote : l o c a l h o s t :7777/ p e t s h o p ” ) ;2 t r y { db . b e g i n (TXTYPE. OPTIMISTIC ) ;3 // TRANSACTION4 db . commit ( ) ; }5 c a t c h ( E x c e p t i o n e ) { db . r o l l b a c k ( ) ;}6 f i n a l l y { db . c l o s e ( ) ; }

Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 23 / 54

Page 37: Bases de datos NoSQL Multi-Modelos, caso de estudio: OrientDB

Caso de estudio - OrientDB: Caracterısticas

Transacciones

Aislamiento

Ejecucion concurrente detransacciones debe serequivalente a la ejecucion serialde las mismas.OrientDB permite dos niveles:READ COMMITTED yREPEATABLE READS

1 db . b e g i n ( )2 db . g e t T r a n s a c t i o n ( ) . s e t I s o l a t i o n L e v e l ( OTransact ion .

ISOLATION LEVEL . REPEATABLE READ) ;

Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 24 / 54

Page 38: Bases de datos NoSQL Multi-Modelos, caso de estudio: OrientDB

Caso de estudio - OrientDB: Caracterısticas

Transacciones

Durabilidad

Una vez que la transaccion hizocommit ya perdura a pesar defallos.En coneccion remota conOrientDB Server, si la aplicacionfalla las transacciones pendientesharan rollback al recuperarseAuto-recovery

Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 25 / 54

Page 39: Bases de datos NoSQL Multi-Modelos, caso de estudio: OrientDB

Caso de estudio - OrientDB: Caracterısticas

APIs

Lenguaje de consulta a grafos: Gremlin & Blueprint API.

Lenguaje de consulta relacional: SQL, extendido confuncionalidades para grafos.

Estandar de conexion: JDBC, para herramientas de Inteligencia deNegocios.

Drivers:Java,Node.js,Ruby,Clojure,Scala,R,Python,PHP,.NET,Perl,c/c++.

Rest/JSON: Directamente con TCP/IP.

Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 26 / 54

Page 40: Bases de datos NoSQL Multi-Modelos, caso de estudio: OrientDB

Caso de estudio - OrientDB: Caracterısticas

APIs

Lenguaje de consulta a grafos: Gremlin & Blueprint API.

Lenguaje de consulta relacional: SQL, extendido confuncionalidades para grafos.

Estandar de conexion: JDBC, para herramientas de Inteligencia deNegocios.

Drivers:Java,Node.js,Ruby,Clojure,Scala,R,Python,PHP,.NET,Perl,c/c++.

Rest/JSON: Directamente con TCP/IP.

Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 26 / 54

Page 41: Bases de datos NoSQL Multi-Modelos, caso de estudio: OrientDB

Caso de estudio - OrientDB: Caracterısticas

APIs

Lenguaje de consulta a grafos: Gremlin & Blueprint API.

Lenguaje de consulta relacional: SQL, extendido confuncionalidades para grafos.

Estandar de conexion: JDBC, para herramientas de Inteligencia deNegocios.

Drivers:Java,Node.js,Ruby,Clojure,Scala,R,Python,PHP,.NET,Perl,c/c++.

Rest/JSON: Directamente con TCP/IP.

Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 26 / 54

Page 42: Bases de datos NoSQL Multi-Modelos, caso de estudio: OrientDB

Caso de estudio - OrientDB: Caracterısticas

APIs

Lenguaje de consulta a grafos: Gremlin & Blueprint API.

Lenguaje de consulta relacional: SQL, extendido confuncionalidades para grafos.

Estandar de conexion: JDBC, para herramientas de Inteligencia deNegocios.

Drivers:Java,Node.js,Ruby,Clojure,Scala,R,Python,PHP,.NET,Perl,c/c++.

Rest/JSON: Directamente con TCP/IP.

Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 26 / 54

Page 43: Bases de datos NoSQL Multi-Modelos, caso de estudio: OrientDB

Caso de estudio - OrientDB: Caracterısticas

APIs

Lenguaje de consulta a grafos: Gremlin & Blueprint API.

Lenguaje de consulta relacional: SQL, extendido confuncionalidades para grafos.

Estandar de conexion: JDBC, para herramientas de Inteligencia deNegocios.

Drivers:Java,Node.js,Ruby,Clojure,Scala,R,Python,PHP,.NET,Perl,c/c++.

Rest/JSON: Directamente con TCP/IP.

Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 26 / 54

Page 44: Bases de datos NoSQL Multi-Modelos, caso de estudio: OrientDB

Caso de estudio - OrientDB: Caracterısticas

Modelo de datos

M. Relacional M. Documental M. Grafo M. Objetos Modelo de OrientDB

Tabla Coleccion Clase de Vertice / Enlace ClaseClase o Cluster /

Clase que hereda de Vertice / EnlaceFila Documento Vertice Objeto Documento / Vertice

Columna Clave - valor Propiedades de Vertice / Enlace Propiedad de objetoClave - valor del documento /propiedad de Vertice / Enlace

Relacion Embeber / Referenciar Enlace Apuntador Links*

Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 27 / 54

Page 45: Bases de datos NoSQL Multi-Modelos, caso de estudio: OrientDB

Caso de estudio - OrientDB: Caracterısticas

Modelo de datos

Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 28 / 54

Page 46: Bases de datos NoSQL Multi-Modelos, caso de estudio: OrientDB

Caso de estudio - OrientDB: Caracterısticas

Modelo de datos

Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 29 / 54

Page 47: Bases de datos NoSQL Multi-Modelos, caso de estudio: OrientDB

Caso de estudio - OrientDB: Caracterısticas

Modelo de datos

Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 30 / 54

Page 48: Bases de datos NoSQL Multi-Modelos, caso de estudio: OrientDB

Caso de estudio - OrientDB: Caracterısticas

Modelo de datos

Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 31 / 54

Page 49: Bases de datos NoSQL Multi-Modelos, caso de estudio: OrientDB

Caso de estudio - OrientDB: Caracterısticas

Modelo de datos

Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 32 / 54

Page 50: Bases de datos NoSQL Multi-Modelos, caso de estudio: OrientDB

Caso de estudio - OrientDB: Caracterısticas

Modelo de datos

Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 33 / 54

Page 51: Bases de datos NoSQL Multi-Modelos, caso de estudio: OrientDB

Caso de estudio - OrientDB: Operaciones

Operaciones

Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 34 / 54

Page 52: Bases de datos NoSQL Multi-Modelos, caso de estudio: OrientDB

Caso de estudio - OrientDB: Operaciones

Basicas (gui)11

1 /∗ C r e a c i o n de c l a s e s : ∗/2 c r e a t e c l a s s Person e x t e n d s V3 /∗Ceac ion de p r o p i e d a d e s : ∗/4 c r e a t e p r o p e r t y Person . f i r s t N a m e s t r i n g5 /∗ I n s e r t a r d a t o s : ∗/6 i n s e r t i n t o Person ( f i r s t N a m e , lastName ) v a l u e s ( ” Wilmer ” , ”

G o n z a l e z ” ) , ( ” Vanessa ” , ” Tovar ” ) , ( ” Frank ” , ” T r a v i e s o ” )7 /∗O: ∗/8 i n s e r t i n t o Company s e t name = ”UCV org . ”9 /∗ C r e a r e n l a c e s : ∗/

10 c r e a t e edge WorksAt from #12:1 to #13:011 /∗ i n s e r t w i t h c o n t e n t ∗/12 i n s e r t i n t o C L u s t e r c o n t e n t {”name” : ” C h a r l i e ” , ” age ” : 1 0}

11udemy.com/orientdb-getting-startedFrank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 35 / 54

Page 53: Bases de datos NoSQL Multi-Modelos, caso de estudio: OrientDB

Caso de estudio - OrientDB: Operaciones

Basicas (consola)

1 /∗ C r e a r db∗/2 c r e a t e d a t a b a s e remote : l o c a l h o s t / [NAME] [ USER NAME ] [PASSW] [

STORAGE]3 /∗Ejemplo ∗/4 c r e a t e d a t a b a s e remote : l o c a l h o s t / ConsoleDemo r o o t h e l l o

p l o c a l5 /∗ d e s c o n e c t a r s e ∗/6 d i s c o n n e c t7 /∗ c o n e c t a r s e s e r v i d o r ∗/8 c o n n e c t remote : l o c a l h o s t r o o t h e l l o9 /∗ l i s t a r db∗/

10 l i s t d a t a b a s e s11 /∗ c o n e c t a r s e a a l g u n a db∗/12 c o n n e c t remote : l o c a l h o s t / d a t a b a s e s / ConsoleDemo13 admin admin /∗ d e f a u l t u s e r c r e a t e d ∗/14 /∗ c o n n e c t l o c a l ∗/15 c o n n e c t p l o c a l : . . / d a t a b a s e s / ConsoleDemo admin admin16 /∗ backup d a t a b a s e ∗/17 backup d a t a b a s e d i r / to / backup

Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 36 / 54

Page 54: Bases de datos NoSQL Multi-Modelos, caso de estudio: OrientDB

Caso de estudio - OrientDB: Operaciones

Manejo de clases

1 CREATE CLASS Person2 CREATE CLASS Person EXTENDS V3 CREATE CLASS v e h i c l e CLUSTER 44 CREATE CLASS DataItem ABSTRACT5 /∗ ˆNo puede a lmacenar d a t o s d i r e c t a m e n t e ∗/6 ALTER CLASS Person NAME I n d i v i d u a l7 ALTER CLASS Acount ADDCLUSTER EuropeA8 ALTER CLASS c a r CLUSTERSELECTION round−r o b i n9 DROP CLASS Person

10 TRUNCATE CLASS Lead

Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 37 / 54

Page 55: Bases de datos NoSQL Multi-Modelos, caso de estudio: OrientDB

Caso de estudio - OrientDB: Operaciones

Manejo de clusters

1 CREATE CLUSTER AccountArg2 CREATE CLUSTER AccountVe POSITION 43 ALTER CLUSTER AccountArg NAME Argent inaA4 ALTER CLUSTER Europe COMPRESSION g z i p5 ALTER CLUSTER V CONFLICTSTRATEGY automerge6 DROP CLUSTER AccountArg7 DROP CLUSTER 48 TRUNCATE CLUSTER America9 ALTER CLASS Person CLUSTERSELECTION b a l a n c e d

Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 38 / 54

Page 56: Bases de datos NoSQL Multi-Modelos, caso de estudio: OrientDB

Caso de estudio - OrientDB: Operaciones

Manejo grafos

1 CREATE VERTEX Person CLUSTER i t a l y SET f i r s t n a m e = ’BOB ’2 DELETE VERTEX #20:8653 DELETE VERTEX Person WHERE i n . @Class = ’ Membersh ipExpi red ’4 CREATE EDGE FROM #10:6 TO #10:85 /∗no g e n e r a documento∗/6 CREATE EDGE FROM #10:6 TO #10:8 CONTENT { v a l u e : 120}7 SELECT FROM Person WHERE any ( ) t r a v e r s e ( 0 , 3 ) ( f i r s t n a m e = ’

C a r l ’ )8 SELECT FROM ( TRAVERSE f r i e n d s FROM #10:5 WHILE $depth <= 3 )

WHERE $depth > 19 SELECT i n ( ’ i s M o d e l ’ ) . c o l o r FROM #10:7

10 SELECT outV ( ) FROM Bought WHERE P u r c h a s e P r i c e > 100011 SELECT s h o r t e s t p a t h (#19:5 ,#82:6 , ’BOTH ’ )12 SELECT d i j k s t r a (#15:7 ,#19:8 , ’ w e i g h t ’ ) FROM V

Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 39 / 54

Page 57: Bases de datos NoSQL Multi-Modelos, caso de estudio: OrientDB

Caso de estudio - OrientDB: Operaciones

Manejo grafos

Otras funciones in(), out(), both(), outE(), inE(), bothE(), outV(), inV(),traversedElement(), traversedEdge(), traversedVertex(),shortestPath(), dijkstra().

Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 40 / 54

Page 58: Bases de datos NoSQL Multi-Modelos, caso de estudio: OrientDB

Caso de estudio - OrientDB: Operaciones

Seguridad

Orientada a roles,predefinidos:admin,reader,writer.

A nivel de registro, mediantecampos especiales:allowRead, allow, allowUpdate, allowDelete

1 INSERT INTO OUser SET name= ’ j a y ’ , password = ’ JaY’ , s t a t u s = ’ACTIVE ’ ,r o l e s = (SELECT FROMORole WHERE name = ’r e a d e r ’ )

Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 41 / 54

Page 59: Bases de datos NoSQL Multi-Modelos, caso de estudio: OrientDB

Caso de estudio - OrientDB: Operaciones

Seguridad

Orientada a roles,predefinidos:admin,reader,writer.

A nivel de registro,mediante campos especiales:allowRead, allow, allowUpdate, allowDelete

1 CREATE CLASS Order EXTENDSV, O R e s t r i c t e d

2 UPDATE #43:22 ADDa l l o w R e a d #5:10

Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 41 / 54

Page 60: Bases de datos NoSQL Multi-Modelos, caso de estudio: OrientDB

Caso de estudio - OrientDB: Arquitectura

Arquitectura - Multi-Maestro12

12Implementacion de HazelCast.Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 42 / 54

Page 61: Bases de datos NoSQL Multi-Modelos, caso de estudio: OrientDB

Caso de estudio - OrientDB: Arquitectura

Arquitectura

Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 43 / 54

Page 62: Bases de datos NoSQL Multi-Modelos, caso de estudio: OrientDB

Caso de estudio - OrientDB: Arquitectura

Arquitectura

Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 43 / 54

Page 63: Bases de datos NoSQL Multi-Modelos, caso de estudio: OrientDB

Caso de estudio - OrientDB: Arquitectura

Arquitectura

Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 43 / 54

Page 64: Bases de datos NoSQL Multi-Modelos, caso de estudio: OrientDB

Caso de estudio - OrientDB: Arquitectura

Arquitectura - Distribucion de la configuracion

Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 44 / 54

Page 65: Bases de datos NoSQL Multi-Modelos, caso de estudio: OrientDB

Caso de estudio - OrientDB: Arquitectura

Arquitectura

Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 45 / 54

Page 66: Bases de datos NoSQL Multi-Modelos, caso de estudio: OrientDB

Caso de estudio - OrientDB: Arquitectura

Arquitectura - Cambio automatico de servidor

Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 46 / 54

Page 67: Bases de datos NoSQL Multi-Modelos, caso de estudio: OrientDB

Caso de estudio - OrientDB: Arquitectura

Arquitectura - Actualizacion de las configuraciones

Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 47 / 54

Page 68: Bases de datos NoSQL Multi-Modelos, caso de estudio: OrientDB

Caso de estudio - OrientDB: Arquitectura

Otros detalles

Indice MVRB-tree, RB-Tree con multiples valores en los nodos.13

Multi-Maestro Implementacion de HazelCast.

Fallas temporales Hinted handoff & Sloppy quorum?

13Andrey Lomakin groups.google.com/orient-databaseFrank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 48 / 54

Page 69: Bases de datos NoSQL Multi-Modelos, caso de estudio: OrientDB

Caso de estudio - OrientDB: Limitaciones

Limitaciones14

hotAlignment:Usado para mantener mensajes al nodoinalcanzable.Si esta habilitado puede llevar a inconsistencia de la basede datos, si no, puede no guardarse toda la informacion del sharding.

Sharding: No soporta auto-sharding.

Tamano del registro Documentos, vertices y enlaces sonalmacenados como registros de hasta 2GB.

Map-Reduce Solo puede ser simulado con consultas distribuıdas

14Mas detalles en orientdb.com/docs/last/Limits.htmlFrank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 49 / 54

Page 70: Bases de datos NoSQL Multi-Modelos, caso de estudio: OrientDB

Caso de estudio - OrientDB: Usos

Usos

15

15casos comunes incluyen: series de tiempo, motores de chat,almacenamiento enclave-valor, entre otros.

Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 50 / 54

Page 71: Bases de datos NoSQL Multi-Modelos, caso de estudio: OrientDB

Comparaciones

Tendencia

Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 51 / 54

Page 72: Bases de datos NoSQL Multi-Modelos, caso de estudio: OrientDB

Conclusiones

1 Conceptos basicos.

2 Caso de estudio - OrientDB:

3 Comparaciones

4 Conclusiones

Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 52 / 54

Page 73: Bases de datos NoSQL Multi-Modelos, caso de estudio: OrientDB

Conclusiones

Discusion

¿Preguntas o comentarios?

Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 53 / 54

Page 74: Bases de datos NoSQL Multi-Modelos, caso de estudio: OrientDB

Conclusiones

Agradecimientos17

16

¡Gracias!

Disponible en:bit.do/MultiModel pre

16xkcd.com/32717Realizado en Overleaf.com

Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 54 / 54