Pgpymongo y pgpycouch
-
Upload
anthony-sotolongo -
Category
Technology
-
view
79 -
download
0
description
Transcript of Pgpymongo y pgpycouch
![Page 2: Pgpymongo y pgpycouch](https://reader033.fdocuments.ec/reader033/viewer/2022052900/55630a6ad8b42a4b1d8b5195/html5/thumbnails/2.jpg)
• 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](https://reader033.fdocuments.ec/reader033/viewer/2022052900/55630a6ad8b42a4b1d8b5195/html5/thumbnails/3.jpg)
Como se clasifican
NOSQL tendencias actuales en el uso de TI (Qcon,2012)
![Page 4: Pgpymongo y pgpycouch](https://reader033.fdocuments.ec/reader033/viewer/2022052900/55630a6ad8b42a4b1d8b5195/html5/thumbnails/4.jpg)
Clasificación *
* Von der Weth. (2012) C.; Datta, A. Multiterm Keyword Search in NoSQL
Systems, Internet Computing, IEEE
![Page 5: Pgpymongo y pgpycouch](https://reader033.fdocuments.ec/reader033/viewer/2022052900/55630a6ad8b42a4b1d8b5195/html5/thumbnails/5.jpg)
CassandraBIGTABLE
CouchDBmongoDB
Redis y Hbase
![Page 6: Pgpymongo y pgpycouch](https://reader033.fdocuments.ec/reader033/viewer/2022052900/55630a6ad8b42a4b1d8b5195/html5/thumbnails/6.jpg)
Documentos en
formato JSON
![Page 7: Pgpymongo y pgpycouch](https://reader033.fdocuments.ec/reader033/viewer/2022052900/55630a6ad8b42a4b1d8b5195/html5/thumbnails/7.jpg)
• Tipo de dato Hstore
![Page 8: Pgpymongo y pgpycouch](https://reader033.fdocuments.ec/reader033/viewer/2022052900/55630a6ad8b42a4b1d8b5195/html5/thumbnails/8.jpg)
• Tipo de dato Hstore
audit_log-> Jaime Casanova
![Page 9: Pgpymongo y pgpycouch](https://reader033.fdocuments.ec/reader033/viewer/2022052900/55630a6ad8b42a4b1d8b5195/html5/thumbnails/9.jpg)
• Tipo de dato Hstore
audit_log-> Jaime Casanova
• FDW para Redis y couchDB
(extensiones).
![Page 10: Pgpymongo y pgpycouch](https://reader033.fdocuments.ec/reader033/viewer/2022052900/55630a6ad8b42a4b1d8b5195/html5/thumbnails/10.jpg)
• 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](https://reader033.fdocuments.ec/reader033/viewer/2022052900/55630a6ad8b42a4b1d8b5195/html5/thumbnails/11.jpg)
• Multicorn (python extension)
Permite crear FDW desde python
![Page 12: Pgpymongo y pgpycouch](https://reader033.fdocuments.ec/reader033/viewer/2022052900/55630a6ad8b42a4b1d8b5195/html5/thumbnails/12.jpg)
• 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](https://reader033.fdocuments.ec/reader033/viewer/2022052900/55630a6ad8b42a4b1d8b5195/html5/thumbnails/13.jpg)
• 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](https://reader033.fdocuments.ec/reader033/viewer/2022052900/55630a6ad8b42a4b1d8b5195/html5/thumbnails/14.jpg)
AppApp gestión de
información
¿?
![Page 15: Pgpymongo y pgpycouch](https://reader033.fdocuments.ec/reader033/viewer/2022052900/55630a6ad8b42a4b1d8b5195/html5/thumbnails/15.jpg)
AppApp gestión de
información
Pgpymongo.
![Page 16: Pgpymongo y pgpycouch](https://reader033.fdocuments.ec/reader033/viewer/2022052900/55630a6ad8b42a4b1d8b5195/html5/thumbnails/16.jpg)
AppApp gestión de
información
Pgpymongo y Pgpycouch.
![Page 17: Pgpymongo y pgpycouch](https://reader033.fdocuments.ec/reader033/viewer/2022052900/55630a6ad8b42a4b1d8b5195/html5/thumbnails/17.jpg)
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](https://reader033.fdocuments.ec/reader033/viewer/2022052900/55630a6ad8b42a4b1d8b5195/html5/thumbnails/18.jpg)
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](https://reader033.fdocuments.ec/reader033/viewer/2022052900/55630a6ad8b42a4b1d8b5195/html5/thumbnails/19.jpg)
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](https://reader033.fdocuments.ec/reader033/viewer/2022052900/55630a6ad8b42a4b1d8b5195/html5/thumbnails/20.jpg)
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](https://reader033.fdocuments.ec/reader033/viewer/2022052900/55630a6ad8b42a4b1d8b5195/html5/thumbnails/21.jpg)
• 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.