SlideShare una empresa de Scribd logo
1 de 46
Descargar para leer sin conexión
Postgres como base de
datos NoSQL
Rubén Gómez GarcíaMADRID· NOV 27-28 ·2015
MADRID· NOV 27-28 ·2015
Presentación
Rubén Gómez García
Formador desde 2011 en
Muchas disciplinase inquietudes
Sobre todo Devop!
@rubgomez
es.linkedin.com/in/rubgomez
MADRID· NOV 27-28 ·2015
Descripción del sistema de almacenamiento y
explotación de base de datos NoSQL
PostgreSQL
MADRID· NOV 27-28 ·2015
Sistema de almacenamiento NoSQL
Crecimiento masivo de bases dedatos NoSQL
Están “de moda” pero no seconocen sus beneficios
No pretenden sustituir a una base de datos relacional
Gran variedad de productos
MADRID· NOV 27-28 ·2015
Sistema de almacenamiento NoSQL
Gran popularidad de bases dedatos relacionales
Normalización
Escalado aceptable ($)
Persistencia avanzada
¿Pero, hasta donde podemos llegar con laescalabilidad?
MADRID· NOV 27-28 ·2015
Sistema de almacenamiento NoSQL
Problemas de bases de datos relacionales:
La complejidad de lasconsultas SQL
Rendimientos difícilesde mantener
JOINS!
MADRID· NOV 27-28 ·2015
Sistema de almacenamiento NoSQL
Necesitamos sistemas más versátiles, pero nada es gratis.
¿Esquema?
¿Escalabilidad?
¿Velocidad?
A cambio de qué!
MADRID· NOV 27-28 ·2015
Sistema de almacenamiento NoSQL
Que sacrificamos?
JOINS?
Esquemas?
Normalización?
Claves foráneas?
Validaciones?
Transacciones en basede datos?
MADRID· NOV 27-28 ·2015
Características NoSQL en PostgreSQL
PostgreSQL 9.4
MADRID· NOV 27-28 ·2015
NoSQL en PostgreSQL 9.4
PostgreSQL pretende no sacrificartotalmente lascaracterísticas
de una base de datos relacional.
Posee diversas soluciones
tipos de datos como HSTORE
Soporte para JSON
Soporte para JSONB (no BSON!)
MADRID· NOV 27-28 ·2015
HSTORE
Almacenamiento clave-valor en Postgres
No se trata de una tabla,sino de un tipo de dato!
MADRID· NOV 27-28 ·2015
HSTORE
Se trata deuna tabla hash almacenada PORCAMPO!
Podemos definir características para cada uno de los individuos.
MADRID· NOV 27-28 ·2015
HSTORE
MADRID· NOV 27-28 ·2015
HSTORE
Pero sieso lopuedo guardar igual en un campo de texto!
Ni siquiera podemos tratarlo como campo de texto!
Ni funciones ni operadores detexto!
Como puedo acceder a la información almacenada!
Preguntando…
MADRID· NOV 27-28 ·2015
HSTORE
Podemos preguntar a cualquier miembro de la tabla hash
Genial!
Pero… Si devuelve texto!
MADRID· NOV 27-28 ·2015
HSTORE
Efectivamente, devuelve texto, pero no sufras!
Ahora sí!
MADRID· NOV 27-28 ·2015
HSTORE
Soporte GIN yGIST para generación de índices en columnas
HSTORE.
Extremadamente eficiente.
Si disponemos de ello desde… PostgreSQL 8.4!
MADRID· NOV 27-28 ·2015
HSTORE
GiN o GIST! Depende
GIN es tres veces más rápido buscando.
GIN Tarda tres veces másen construirse
GIN es más lento en actualizaciones.
GIN ocupa entre dos ytres veces másque GIST
Regla general. Datos estáticos, GIN,Datos dinámicos GIST.
MADRID· NOV 27-28 ·2015
HSTORE
Que sería denosostros sin … “Operadores”:
MADRID· NOV 27-28 ·2015
HSTORE
Y más que faltaban!
MADRID· NOV 27-28 ·2015
JSON / JSONB
Ojo ,nada que ver con BSON (MongoDB)
JSON: Representación en texto
JSONB: Representación en binario
MADRID· NOV 27-28 ·2015
JSON
JavaScript Object Notation
Postgres posee soporte básico JSON desde haceaños.
Desde PostgreSQL 9.3sepermiten operadores con JSON que
permite acciones más avanzadas.
MADRID· NOV 27-28 ·2015
JSON
El almacenamiento en JSON permite validación dedocumentos.
Se suele mantener si senecesita el orden delas claves
MADRID· NOV 27-28 ·2015
JSON
El almacenamiento en JSON permite validación dedocumentos.
Se suele mantener si senecesita el orden delas claves
Su acceso es similaral HSTORE
MADRID· NOV 27-28 ·2015
JSONB
Almacenamiento de información JSON en formato binario.
Soporte en PostgreSQL 9.4
Formato compacto y eficiente.
Permite acceso avanzado y operadores de comparación
Permite GIN,GIST, hash y btree
MADRID· NOV 27-28 ·2015
JSONB
Tamaño reducido en disco
Muy inferior al tamaño JSON
Organizado como un diccionario (una tabla hash), cuyo acceso es
tremendamente rápido,sin embargo, el orden no es preservado.
JSONB es compatible con lasoperaciones JSON
MADRID· NOV 27-28 ·2015
JSONB
EL TRATO ES IGUAL, SIN EMBARGO, SE APRECIAN VISUALMENTE
DIFERENCIAS
MADRID· NOV 27-28 ·2015
JSONB
EL ORDEN NO ES RESPETADO.
SE GUARDA COMO UN DICCIONARIO
RÁPIDO
EFICIENTE
SOPORTE DE LAS MISMAS FUNCIONES QUE EL TIPO JSON!
NO ES BSON!
MADRID· NOV 27-28 ·2015
JSON/JSONB
Soporte de operadores
Específicos de JSONB
MADRID· NOV 27-28 ·2015
JSONB
Gran cantidad de funciones!
MADRID· NOV 27-28 ·2015
Comparativa con MongoDB
PostgreSQL 9.4
MADRID· NOV 27-28 ·2015
PostgreSQL vs MongoDB
Diferencias más interesantes:
Soporte para transacciones a nivel de basede datos.
MongoDB posee soporte detransacciones atómicas a nivel de
documento.
PostgreSQL posee soporte de transacciones a nivel de base de
datos (MVCC)
MADRID· NOV 27-28 ·2015
PostgreSQL vs MongoDB
Diferencias más interesantes:
JSONB VS BSON
SISTEMAS TOTALMENTE DISTINTOS.
BSON POSEE LIMITACIONES EN ALMACENAMIENTO DE PRECISIÓN
ALTA.
MADRID· NOV 27-28 ·2015
PostgreSQL vs MongoDB
Rendimiento: Carga yoperaciones
Using the NoSQLCapabilities in Postgres – EnterpriseDB Whitepaper
MADRID· NOV 27-28 ·2015
PostgreSQL vs MongoDB
Rendimiento: Gráfico
Using the NoSQLCapabilities in Postgres – EnterpriseDB Whitepaper
MADRID· NOV 27-28 ·2015
PostgreSQL vs MongoDB
Otras consideraciones.
MongoDB posee unas características muy interesantes en
concepto de sharding y réplica:
Son sencillos de creary demodificar.
Postgres posee “artificios” para obtenerlos
No son tan sencillos como MongoDB
MADRID· NOV 27-28 ·2015
PostgreSQL vs MongoDB
Lasversiones superiores de MongoDB poseen nuevos sistemas de
gestión de almacenamiento como WiredTiger o el MMAP, que
solucionan losproblemas debloqueos en versiones 2.6 o
inferiores.
Aumenta el rendimiento!
MongoDb siguesin ser una basede datos de crecimiento lineal.
Problemas con consultas que afecten a más deuna colección.
Soporte de MapReduce retirado!
MADRID· NOV 27-28 ·2015
ToroDB
PostgreSQL 9.4
MADRID· NOV 27-28 ·2015
TORODB
BASE DE DATOS DE SOFTWARE LIBRE EJECUTADA SOBRE
POSTGRESQL
PROYECTO ESPAÑOL!
ALMACENAMIENTO JSON RELACIONAL, NO EN JSONB (I/O
REDUCIDA)
COMPATIBILIDAD CON PROTOCOLOPROPIETARIO MONGODB
MADRID· NOV 27-28 ·2015
TORODB
EVITA EL ALMACENAMIENTO DE METAINFORMACIÓN REPETIDA
SOPORTE DE TRANSACCIONES
ACTUALIZACIONES SOBREDOCUMENTOS JSON
LICENCIA AGPLv3
DESARROLLADO EN JAVA
CODIGO FUENTE EN GITHUB
MADRID· NOV 27-28 ·2015
TORODB
MÁS QUE UN CONECTOR DE POSTGRESQL
ALTA CONCURRENCIA Y RENDIMIENTO
PERMITE REALIZAR UN CAMBIO APOSTGRES TRANSPARENTE.
OPERACIONES JSON COMPATIBLES DE MONGODB.
MADRID· NOV 27-28 ·2015
TORODB
SE ENCUENTRA EN :
github.com/torodb
LANZADO EN 2014 COMO DEVELOPER PREVIEW
SOPORTE CRUD Y CASI TODO EL API DE SELECT.
TODAVÍA NO TENEMOS UNAVERSIÓN 1.0
ESTAMOS EN LAVERSIÓN 0.23
MADRID· NOV 27-28 ·2015
TORODB
CREAR UNA BASE DE DATOS
MADRID· NOV 27-28 ·2015
TORODB
EJECUTAR EL JAR DEL PROYECTO
CONECTAR ALASHELL CON EL CLIENTE MONGO
MADRID· NOV 27-28 ·2015
TORODB
PROYECTO PROMETEDOR
SIEMPRE SE NECESITA COLABORACIÓN!
CÓDIGO TOTALMENTE DISPONIBLE EN GITHUB
SERÁ INTERESANTE COMPROBAR LOSRENDIMIENTOS EN SU
VERSIÓN 1.0!
MADRID· NOV 27-28 ·2015
FIN
MongoDB vs PostgreSQL

Más contenido relacionado

La actualidad más candente

Geo network 4 elasticsearch (1)
Geo network 4   elasticsearch (1)Geo network 4   elasticsearch (1)
Geo network 4 elasticsearch (1)Daliya Spasova
 
Sql server ha muerto, larga vida a sql server
Sql server ha muerto, larga vida a sql serverSql server ha muerto, larga vida a sql server
Sql server ha muerto, larga vida a sql serverEnrique Catala Bañuls
 
Primeros pasos con neo4j
Primeros pasos con neo4jPrimeros pasos con neo4j
Primeros pasos con neo4jUbaldo Taladriz
 
Capas de acceso a datos .net escalables de verdad contra SQL Server
Capas de acceso a datos .net escalables de verdad contra SQL ServerCapas de acceso a datos .net escalables de verdad contra SQL Server
Capas de acceso a datos .net escalables de verdad contra SQL ServerEnrique Catala Bañuls
 
¿Por que cambiar de Apache Hadoop a Apache Spark?
¿Por que cambiar de Apache Hadoop a Apache Spark?¿Por que cambiar de Apache Hadoop a Apache Spark?
¿Por que cambiar de Apache Hadoop a Apache Spark?Socialmetrix
 
Sistema gestor de base de datos( mongobd)
Sistema gestor de base de datos( mongobd)Sistema gestor de base de datos( mongobd)
Sistema gestor de base de datos( mongobd)Shon AE
 
Evolución y avances del Gestor PostgreSQL
Evolución y avances del  Gestor PostgreSQLEvolución y avances del  Gestor PostgreSQL
Evolución y avances del Gestor PostgreSQLAnthony Sotolongo
 
SQL 2016 Column Store Index
SQL 2016 Column Store IndexSQL 2016 Column Store Index
SQL 2016 Column Store IndexEduardo Castro
 
Primeros pasos con Neo4j
Primeros pasos con Neo4jPrimeros pasos con Neo4j
Primeros pasos con Neo4jUbaldo Taladriz
 
postGIS raster en gvsig
postGIS raster en gvsigpostGIS raster en gvsig
postGIS raster en gvsignbrodin
 
Bases NoSQL y su implementación con Azure DocumentDB
Bases NoSQL y su implementación con Azure DocumentDBBases NoSQL y su implementación con Azure DocumentDB
Bases NoSQL y su implementación con Azure DocumentDBJulito Avellaneda
 
Redis: servidor de estructuras de datos
Redis: servidor de estructuras de datosRedis: servidor de estructuras de datos
Redis: servidor de estructuras de datosAntonio Ognio
 

La actualidad más candente (17)

Geo network 4 elasticsearch (1)
Geo network 4   elasticsearch (1)Geo network 4   elasticsearch (1)
Geo network 4 elasticsearch (1)
 
Sql server ha muerto, larga vida a sql server
Sql server ha muerto, larga vida a sql serverSql server ha muerto, larga vida a sql server
Sql server ha muerto, larga vida a sql server
 
Que es MongoDB
Que es MongoDBQue es MongoDB
Que es MongoDB
 
Primeros pasos con neo4j
Primeros pasos con neo4jPrimeros pasos con neo4j
Primeros pasos con neo4j
 
Capas de acceso a datos .net escalables de verdad contra SQL Server
Capas de acceso a datos .net escalables de verdad contra SQL ServerCapas de acceso a datos .net escalables de verdad contra SQL Server
Capas de acceso a datos .net escalables de verdad contra SQL Server
 
¿Por que cambiar de Apache Hadoop a Apache Spark?
¿Por que cambiar de Apache Hadoop a Apache Spark?¿Por que cambiar de Apache Hadoop a Apache Spark?
¿Por que cambiar de Apache Hadoop a Apache Spark?
 
Sistema gestor de base de datos( mongobd)
Sistema gestor de base de datos( mongobd)Sistema gestor de base de datos( mongobd)
Sistema gestor de base de datos( mongobd)
 
Evolución y avances del Gestor PostgreSQL
Evolución y avances del  Gestor PostgreSQLEvolución y avances del  Gestor PostgreSQL
Evolución y avances del Gestor PostgreSQL
 
Paralelismo en SQL Server
Paralelismo en SQL ServerParalelismo en SQL Server
Paralelismo en SQL Server
 
SQL 2016 Column Store Index
SQL 2016 Column Store IndexSQL 2016 Column Store Index
SQL 2016 Column Store Index
 
MongoDB
MongoDBMongoDB
MongoDB
 
Foro de Arquitectos: caché en azure a fondo
Foro de Arquitectos: caché en azure a fondoForo de Arquitectos: caché en azure a fondo
Foro de Arquitectos: caché en azure a fondo
 
MONGODB - NOSQL
MONGODB - NOSQLMONGODB - NOSQL
MONGODB - NOSQL
 
Primeros pasos con Neo4j
Primeros pasos con Neo4jPrimeros pasos con Neo4j
Primeros pasos con Neo4j
 
postGIS raster en gvsig
postGIS raster en gvsigpostGIS raster en gvsig
postGIS raster en gvsig
 
Bases NoSQL y su implementación con Azure DocumentDB
Bases NoSQL y su implementación con Azure DocumentDBBases NoSQL y su implementación con Azure DocumentDB
Bases NoSQL y su implementación con Azure DocumentDB
 
Redis: servidor de estructuras de datos
Redis: servidor de estructuras de datosRedis: servidor de estructuras de datos
Redis: servidor de estructuras de datos
 

Similar a Postgres como base de datos NoSQL. Codemotion 2015

Bases de Datos No Relacionales
Bases de Datos No RelacionalesBases de Datos No Relacionales
Bases de Datos No RelacionalesBEEVA_es
 
Big Data Open Source Analytics (español)
Big Data Open Source Analytics (español)Big Data Open Source Analytics (español)
Big Data Open Source Analytics (español)Stratebi
 
Sql server 2016 novedades para desarrolladores
Sql server 2016 novedades para desarrolladoresSql server 2016 novedades para desarrolladores
Sql server 2016 novedades para desarrolladoresEnrique Catala Bañuls
 
Big data y las apis (big data spain)
Big data y las apis (big data spain)Big data y las apis (big data spain)
Big data y las apis (big data spain)CloudAppi
 
El mundo Big Data y las APIs
El mundo Big Data y las APIsEl mundo Big Data y las APIs
El mundo Big Data y las APIsBig Data Spain
 
Las principales bases de datos existentes
Las principales bases de datos existentesLas principales bases de datos existentes
Las principales bases de datos existentesDolores Leonor
 
Base de datos no sql
Base de datos no sqlBase de datos no sql
Base de datos no sqlhnacostan
 
Las principales bases de datos existentes
Las principales bases de datos existentesLas principales bases de datos existentes
Las principales bases de datos existentesDolores Leonor
 
Bd eq. #3 actividad extra comparacion oracle y mysql
Bd eq. #3 actividad extra comparacion oracle y mysqlBd eq. #3 actividad extra comparacion oracle y mysql
Bd eq. #3 actividad extra comparacion oracle y mysqlKARY
 
Bd eq. #3 actividad 2 unidad 2 comparacion oracle y mysql
Bd eq. #3 actividad 2 unidad 2 comparacion oracle y mysqlBd eq. #3 actividad 2 unidad 2 comparacion oracle y mysql
Bd eq. #3 actividad 2 unidad 2 comparacion oracle y mysqlKARY
 
Sql o NoSql en Informática Médica
Sql o NoSql en Informática MédicaSql o NoSql en Informática Médica
Sql o NoSql en Informática MédicaLiz Armenteros
 
Bd eq. #3 actividad 2 unidad 2 comparacion oracle y mysql
Bd eq. #3 actividad 2 unidad 2 comparacion oracle y mysqlBd eq. #3 actividad 2 unidad 2 comparacion oracle y mysql
Bd eq. #3 actividad 2 unidad 2 comparacion oracle y mysqlKARY
 
Bd eq. #3 actividad 2 unidad 2 oracle y mysql
Bd eq. #3 actividad 2 unidad 2 oracle y mysqlBd eq. #3 actividad 2 unidad 2 oracle y mysql
Bd eq. #3 actividad 2 unidad 2 oracle y mysqlKARY
 

Similar a Postgres como base de datos NoSQL. Codemotion 2015 (20)

Bases de Datos No Relacionales
Bases de Datos No RelacionalesBases de Datos No Relacionales
Bases de Datos No Relacionales
 
Big Data Open Source Analytics (español)
Big Data Open Source Analytics (español)Big Data Open Source Analytics (español)
Big Data Open Source Analytics (español)
 
Sql server 2016 novedades para desarrolladores
Sql server 2016 novedades para desarrolladoresSql server 2016 novedades para desarrolladores
Sql server 2016 novedades para desarrolladores
 
Big data y las apis (big data spain)
Big data y las apis (big data spain)Big data y las apis (big data spain)
Big data y las apis (big data spain)
 
El mundo Big Data y las APIs
El mundo Big Data y las APIsEl mundo Big Data y las APIs
El mundo Big Data y las APIs
 
Las principales bases de datos existentes
Las principales bases de datos existentesLas principales bases de datos existentes
Las principales bases de datos existentes
 
Base de datos rmf
Base de datos rmfBase de datos rmf
Base de datos rmf
 
Base de datos no sql
Base de datos no sqlBase de datos no sql
Base de datos no sql
 
Act1.7 nosql terminado corregido
Act1.7 nosql terminado corregidoAct1.7 nosql terminado corregido
Act1.7 nosql terminado corregido
 
Actividad 1.7: NoSQL
Actividad 1.7: NoSQLActividad 1.7: NoSQL
Actividad 1.7: NoSQL
 
Act1.7 nosql terminado
Act1.7 nosql terminadoAct1.7 nosql terminado
Act1.7 nosql terminado
 
SGBD NoSQL
SGBD NoSQLSGBD NoSQL
SGBD NoSQL
 
Las principales bases de datos existentes
Las principales bases de datos existentesLas principales bases de datos existentes
Las principales bases de datos existentes
 
Couchdb
CouchdbCouchdb
Couchdb
 
Bd eq. #3 actividad extra comparacion oracle y mysql
Bd eq. #3 actividad extra comparacion oracle y mysqlBd eq. #3 actividad extra comparacion oracle y mysql
Bd eq. #3 actividad extra comparacion oracle y mysql
 
Bd eq. #3 actividad 2 unidad 2 comparacion oracle y mysql
Bd eq. #3 actividad 2 unidad 2 comparacion oracle y mysqlBd eq. #3 actividad 2 unidad 2 comparacion oracle y mysql
Bd eq. #3 actividad 2 unidad 2 comparacion oracle y mysql
 
Actividad 4
Actividad 4Actividad 4
Actividad 4
 
Sql o NoSql en Informática Médica
Sql o NoSql en Informática MédicaSql o NoSql en Informática Médica
Sql o NoSql en Informática Médica
 
Bd eq. #3 actividad 2 unidad 2 comparacion oracle y mysql
Bd eq. #3 actividad 2 unidad 2 comparacion oracle y mysqlBd eq. #3 actividad 2 unidad 2 comparacion oracle y mysql
Bd eq. #3 actividad 2 unidad 2 comparacion oracle y mysql
 
Bd eq. #3 actividad 2 unidad 2 oracle y mysql
Bd eq. #3 actividad 2 unidad 2 oracle y mysqlBd eq. #3 actividad 2 unidad 2 oracle y mysql
Bd eq. #3 actividad 2 unidad 2 oracle y mysql
 

Postgres como base de datos NoSQL. Codemotion 2015

  • 1. Postgres como base de datos NoSQL Rubén Gómez GarcíaMADRID· NOV 27-28 ·2015
  • 2. MADRID· NOV 27-28 ·2015 Presentación Rubén Gómez García Formador desde 2011 en Muchas disciplinase inquietudes Sobre todo Devop! @rubgomez es.linkedin.com/in/rubgomez
  • 3. MADRID· NOV 27-28 ·2015 Descripción del sistema de almacenamiento y explotación de base de datos NoSQL PostgreSQL
  • 4. MADRID· NOV 27-28 ·2015 Sistema de almacenamiento NoSQL Crecimiento masivo de bases dedatos NoSQL Están “de moda” pero no seconocen sus beneficios No pretenden sustituir a una base de datos relacional Gran variedad de productos
  • 5. MADRID· NOV 27-28 ·2015 Sistema de almacenamiento NoSQL Gran popularidad de bases dedatos relacionales Normalización Escalado aceptable ($) Persistencia avanzada ¿Pero, hasta donde podemos llegar con laescalabilidad?
  • 6. MADRID· NOV 27-28 ·2015 Sistema de almacenamiento NoSQL Problemas de bases de datos relacionales: La complejidad de lasconsultas SQL Rendimientos difícilesde mantener JOINS!
  • 7. MADRID· NOV 27-28 ·2015 Sistema de almacenamiento NoSQL Necesitamos sistemas más versátiles, pero nada es gratis. ¿Esquema? ¿Escalabilidad? ¿Velocidad? A cambio de qué!
  • 8. MADRID· NOV 27-28 ·2015 Sistema de almacenamiento NoSQL Que sacrificamos? JOINS? Esquemas? Normalización? Claves foráneas? Validaciones? Transacciones en basede datos?
  • 9. MADRID· NOV 27-28 ·2015 Características NoSQL en PostgreSQL PostgreSQL 9.4
  • 10. MADRID· NOV 27-28 ·2015 NoSQL en PostgreSQL 9.4 PostgreSQL pretende no sacrificartotalmente lascaracterísticas de una base de datos relacional. Posee diversas soluciones tipos de datos como HSTORE Soporte para JSON Soporte para JSONB (no BSON!)
  • 11. MADRID· NOV 27-28 ·2015 HSTORE Almacenamiento clave-valor en Postgres No se trata de una tabla,sino de un tipo de dato!
  • 12. MADRID· NOV 27-28 ·2015 HSTORE Se trata deuna tabla hash almacenada PORCAMPO! Podemos definir características para cada uno de los individuos.
  • 13. MADRID· NOV 27-28 ·2015 HSTORE
  • 14. MADRID· NOV 27-28 ·2015 HSTORE Pero sieso lopuedo guardar igual en un campo de texto! Ni siquiera podemos tratarlo como campo de texto! Ni funciones ni operadores detexto! Como puedo acceder a la información almacenada! Preguntando…
  • 15. MADRID· NOV 27-28 ·2015 HSTORE Podemos preguntar a cualquier miembro de la tabla hash Genial! Pero… Si devuelve texto!
  • 16. MADRID· NOV 27-28 ·2015 HSTORE Efectivamente, devuelve texto, pero no sufras! Ahora sí!
  • 17. MADRID· NOV 27-28 ·2015 HSTORE Soporte GIN yGIST para generación de índices en columnas HSTORE. Extremadamente eficiente. Si disponemos de ello desde… PostgreSQL 8.4!
  • 18. MADRID· NOV 27-28 ·2015 HSTORE GiN o GIST! Depende GIN es tres veces más rápido buscando. GIN Tarda tres veces másen construirse GIN es más lento en actualizaciones. GIN ocupa entre dos ytres veces másque GIST Regla general. Datos estáticos, GIN,Datos dinámicos GIST.
  • 19. MADRID· NOV 27-28 ·2015 HSTORE Que sería denosostros sin … “Operadores”:
  • 20. MADRID· NOV 27-28 ·2015 HSTORE Y más que faltaban!
  • 21. MADRID· NOV 27-28 ·2015 JSON / JSONB Ojo ,nada que ver con BSON (MongoDB) JSON: Representación en texto JSONB: Representación en binario
  • 22. MADRID· NOV 27-28 ·2015 JSON JavaScript Object Notation Postgres posee soporte básico JSON desde haceaños. Desde PostgreSQL 9.3sepermiten operadores con JSON que permite acciones más avanzadas.
  • 23. MADRID· NOV 27-28 ·2015 JSON El almacenamiento en JSON permite validación dedocumentos. Se suele mantener si senecesita el orden delas claves
  • 24. MADRID· NOV 27-28 ·2015 JSON El almacenamiento en JSON permite validación dedocumentos. Se suele mantener si senecesita el orden delas claves Su acceso es similaral HSTORE
  • 25. MADRID· NOV 27-28 ·2015 JSONB Almacenamiento de información JSON en formato binario. Soporte en PostgreSQL 9.4 Formato compacto y eficiente. Permite acceso avanzado y operadores de comparación Permite GIN,GIST, hash y btree
  • 26. MADRID· NOV 27-28 ·2015 JSONB Tamaño reducido en disco Muy inferior al tamaño JSON Organizado como un diccionario (una tabla hash), cuyo acceso es tremendamente rápido,sin embargo, el orden no es preservado. JSONB es compatible con lasoperaciones JSON
  • 27. MADRID· NOV 27-28 ·2015 JSONB EL TRATO ES IGUAL, SIN EMBARGO, SE APRECIAN VISUALMENTE DIFERENCIAS
  • 28. MADRID· NOV 27-28 ·2015 JSONB EL ORDEN NO ES RESPETADO. SE GUARDA COMO UN DICCIONARIO RÁPIDO EFICIENTE SOPORTE DE LAS MISMAS FUNCIONES QUE EL TIPO JSON! NO ES BSON!
  • 29. MADRID· NOV 27-28 ·2015 JSON/JSONB Soporte de operadores Específicos de JSONB
  • 30. MADRID· NOV 27-28 ·2015 JSONB Gran cantidad de funciones!
  • 31. MADRID· NOV 27-28 ·2015 Comparativa con MongoDB PostgreSQL 9.4
  • 32. MADRID· NOV 27-28 ·2015 PostgreSQL vs MongoDB Diferencias más interesantes: Soporte para transacciones a nivel de basede datos. MongoDB posee soporte detransacciones atómicas a nivel de documento. PostgreSQL posee soporte de transacciones a nivel de base de datos (MVCC)
  • 33. MADRID· NOV 27-28 ·2015 PostgreSQL vs MongoDB Diferencias más interesantes: JSONB VS BSON SISTEMAS TOTALMENTE DISTINTOS. BSON POSEE LIMITACIONES EN ALMACENAMIENTO DE PRECISIÓN ALTA.
  • 34. MADRID· NOV 27-28 ·2015 PostgreSQL vs MongoDB Rendimiento: Carga yoperaciones Using the NoSQLCapabilities in Postgres – EnterpriseDB Whitepaper
  • 35. MADRID· NOV 27-28 ·2015 PostgreSQL vs MongoDB Rendimiento: Gráfico Using the NoSQLCapabilities in Postgres – EnterpriseDB Whitepaper
  • 36. MADRID· NOV 27-28 ·2015 PostgreSQL vs MongoDB Otras consideraciones. MongoDB posee unas características muy interesantes en concepto de sharding y réplica: Son sencillos de creary demodificar. Postgres posee “artificios” para obtenerlos No son tan sencillos como MongoDB
  • 37. MADRID· NOV 27-28 ·2015 PostgreSQL vs MongoDB Lasversiones superiores de MongoDB poseen nuevos sistemas de gestión de almacenamiento como WiredTiger o el MMAP, que solucionan losproblemas debloqueos en versiones 2.6 o inferiores. Aumenta el rendimiento! MongoDb siguesin ser una basede datos de crecimiento lineal. Problemas con consultas que afecten a más deuna colección. Soporte de MapReduce retirado!
  • 38. MADRID· NOV 27-28 ·2015 ToroDB PostgreSQL 9.4
  • 39. MADRID· NOV 27-28 ·2015 TORODB BASE DE DATOS DE SOFTWARE LIBRE EJECUTADA SOBRE POSTGRESQL PROYECTO ESPAÑOL! ALMACENAMIENTO JSON RELACIONAL, NO EN JSONB (I/O REDUCIDA) COMPATIBILIDAD CON PROTOCOLOPROPIETARIO MONGODB
  • 40. MADRID· NOV 27-28 ·2015 TORODB EVITA EL ALMACENAMIENTO DE METAINFORMACIÓN REPETIDA SOPORTE DE TRANSACCIONES ACTUALIZACIONES SOBREDOCUMENTOS JSON LICENCIA AGPLv3 DESARROLLADO EN JAVA CODIGO FUENTE EN GITHUB
  • 41. MADRID· NOV 27-28 ·2015 TORODB MÁS QUE UN CONECTOR DE POSTGRESQL ALTA CONCURRENCIA Y RENDIMIENTO PERMITE REALIZAR UN CAMBIO APOSTGRES TRANSPARENTE. OPERACIONES JSON COMPATIBLES DE MONGODB.
  • 42. MADRID· NOV 27-28 ·2015 TORODB SE ENCUENTRA EN : github.com/torodb LANZADO EN 2014 COMO DEVELOPER PREVIEW SOPORTE CRUD Y CASI TODO EL API DE SELECT. TODAVÍA NO TENEMOS UNAVERSIÓN 1.0 ESTAMOS EN LAVERSIÓN 0.23
  • 43. MADRID· NOV 27-28 ·2015 TORODB CREAR UNA BASE DE DATOS
  • 44. MADRID· NOV 27-28 ·2015 TORODB EJECUTAR EL JAR DEL PROYECTO CONECTAR ALASHELL CON EL CLIENTE MONGO
  • 45. MADRID· NOV 27-28 ·2015 TORODB PROYECTO PROMETEDOR SIEMPRE SE NECESITA COLABORACIÓN! CÓDIGO TOTALMENTE DISPONIBLE EN GITHUB SERÁ INTERESANTE COMPROBAR LOSRENDIMIENTOS EN SU VERSIÓN 1.0!
  • 46. MADRID· NOV 27-28 ·2015 FIN MongoDB vs PostgreSQL