Pgpymongo y pgpycouch

22
Anthony R. Sotolongo León([email protected]) Dpto. PostgreSQL- Universidad de Ciencias Informáticas

description

extensiones de postgresql para acceder a BD mongoDB y couchDB

Transcript of Pgpymongo y pgpycouch

Page 1: Pgpymongo y pgpycouch

Anthony R. Sotolongo

León([email protected])

Dpto. PostgreSQL- Universidad

de Ciencias Informáticas

Page 2: Pgpymongo y pgpycouch

• Introducción a NoSQL.

• Características de mongoDB y couchDB.

• PostgreSQL y las NoSQL.

• Extensiones en PostgreSQL.

• Pgpymongo y Pgpycouch.

Page 3: Pgpymongo y pgpycouch

Como se clasifican

NOSQL tendencias actuales en el uso de TI (Qcon,2012)

Page 4: Pgpymongo y pgpycouch

Clasificación *

* Von der Weth. (2012) C.; Datta, A. Multiterm Keyword Search in NoSQL

Systems, Internet Computing, IEEE

Page 5: Pgpymongo y pgpycouch

CassandraBIGTABLE

CouchDBmongoDB

Redis y Hbase

Page 6: Pgpymongo y pgpycouch

Documentos en

formato JSON

Page 7: Pgpymongo y pgpycouch

• Tipo de dato Hstore

Page 8: Pgpymongo y pgpycouch

• Tipo de dato Hstore

audit_log-> Jaime Casanova

Page 9: Pgpymongo y pgpycouch

• Tipo de dato Hstore

audit_log-> Jaime Casanova

• FDW para Redis y couchDB

(extensiones).

Page 10: Pgpymongo y pgpycouch

• Tipo de dato Hstore

audit_log-> Jaime Casanova

• FDW para Redis y couchDB

(extensiones).

Descargar de www.pgxn.org

93 Extensiones

9 extensiones de FDW

Page 11: Pgpymongo y pgpycouch

• Multicorn (python extension)

Permite crear FDW desde python

Page 12: Pgpymongo y pgpycouch

• Permiten agregar al gestor nuevas

funcionalidades, suelen incluir múltiples

objetos de SQL, por ejemplo, un nuevo

tipo de datos o nuevas funciones. 35.15.

Packaging Related Objects into an

Extension

• Dos archivos como mínimo

.control .SQL

• Incluirlas en directorio extension.

CREATE EXTESION nombre_de_extensión

Page 13: Pgpymongo y pgpycouch

• pgmongo.control

# extension

comment = 'extension …postgresql'

default_version = '0.1‘

superuser = true

• pgmongo--0.1.SQL

Clásicos comandos SQL(DDL,DCL,DML)

Page 14: Pgpymongo y pgpycouch

AppApp gestión de

información

¿?

Page 15: Pgpymongo y pgpycouch

AppApp gestión de

información

Pgpymongo.

Page 16: Pgpymongo y pgpycouch

AppApp gestión de

información

Pgpymongo y Pgpycouch.

Page 17: Pgpymongo y pgpycouch

Lenguaje Plpython.

Funcionalidades de las extensiones.

Gestión de una Base de datos (creación,

eliminación, obtención).

Gestión de documentos (creación,

eliminación, modificación y obtención).

Ejecución de funciones Map/Reduce.

Page 18: Pgpymongo y pgpycouch

Listado de funciones.

• collectionfind: Buscar documentos en una

colección.

• collectionfindone: Buscar un documentos

específico en una colección.

• collectioninsert: Insertar un documento en una

colección.

• createcolleccion: Crear una colección.

• createdb: Crear una base de datos.

• getdatabases: Obtener las bases de datos.

Page 19: Pgpymongo y pgpycouch

CREATE OR REPLACE FUNCTION

pgpymongo.createdb(pserver text, pport integer,

pname text)

RETURNS text AS $$

from pymongo import Connection

#servidor puerto

servidor=Connection(pserver,pport)

for bd in servidor.database_names():

if bd == pname:

return ""“La BDs ya existe!!!"""

servidor[pname].collection_names()

return 'Base de datos creada : '+ str(servidor[pname])

$$ LANGUAGE plpythonu VOLATILE;

Page 20: Pgpymongo y pgpycouch

Ejemplos:

select pgpymongo.createdb('localhost', 27017, 'nueva')

Resultado- "Base de datos creada: -

Database(Connection('localhost', 27017), u'nueva')“

select pgpymongo.collectionfindone('localhost', 27017,

'nueva', 'micoleccion','{"valor2":"prueba"}')

Resultado-"{u'valor1': 1, u'valor2': u'prueba', u'_id':

ObjectId('5027cbf32229710460000002')}"

select pgpymongo.collectioninsert('localhost', 27017,

'nueva', 'micoleccion', '{"valor1":2,"valor2":"prueba2"}')

Resultado- "5027cbf32229710460000003"

Page 21: Pgpymongo y pgpycouch

• Existe un uso creciente de las bases de datos

NoSQL.

• Se evidenció la capacidad de extensibilidad

que tiene PostgreSQL incluso en otros

lenguajes diferentes al que fue creado.

• Pgpymongo y Pgpycouch ejemplos de

extensiones para PostgreSQL.

Page 22: Pgpymongo y pgpycouch

Anthony R. Sotolongo

León([email protected])

Dpto. PostgreSQL- Universidad

de Ciencias Informáticas