Accediendo a SQLITE desde PostgreSQL

Como bien he comentado en otros blogs, de los temas que más me fascinan de PostgreSQL es la posibilidad de extensión que posee y en este caso mostraremos como utilizar una extensión de los FDW, específicamente de como acceder a una base de datos SQLITE desde PostgreSQL.

Hace unos días encontré la extensión sqlite_fdw y me decidí a probarla, la cual me resulto fantástica.

Comencemos:
Sigue leyendo

Probando cstore_fdw

Hola a todos como ya saben tengo mi pasión por los FDW de PostgreSQL, tengo un post previo referente a dump_fdw, el cual es muy útil para acceder a información almacenada en archivos de backups realizados por pg_dump.

En esta ocasión les muestro el uso de cstore_fdw, el cual es desarrollado por la empresa citusdata, el mismo implementa un mecanismo de almacenamiento columnar y utiliza el formato Optimized Row Columnar (ORC), el cual puede ser ventajoso en los casos donde se realizan análisis de datos, y las principales ventajas son:

  • Compresión:  Reduce considerablemente el espacio en disco y memoria.
  • Proyección de columnas: solamente lee las columnas necesarias para la consulta.

Sigue leyendo

pgsmtp: enviando correos desde PostgreSQL

En la realización de una migración de datos desde otro gestor hacia PostgreSQL, tuvimos la necesidad de enviar correos electrónicos desde dentro del gestor, es decir desde dentro lo lógica de negocio en las funciones, PostgreSQL no brinda esta funcionalidad como nativa, pero gracias a la extensibilidad del gestor se puede desarrollar dicha funcionalidad. Por supuesto antes vimos alguna que otra solución al respecto, por ejemplo esta, la cual es en plTCL, y hace años está sin soporte,  también analizamos alguna que otra solución aislada, de las cuales decidimos hacer una nueva y compartirla con ustedes :D. Sigue leyendo

Peticiones http desde PostgreSQL

Hola a todos, pues si como se lee en el título de la entrada, hacer peticiones http desde dentro del motor de base de datos de código abierto más avanzado del mundo es posible, y todo gracias al mecanismo de extensiones que posee PostgreSQL, del cual ya he dicho que soy FAN. Que podemos hacer un un cliente http desde dentro de PostgreSQL, pues hacer peticiones WEB a sitios o servicios  restful, etc. Por ejemplo, puede que necesitemos hacer desde el motor la descarga de un sitio web para su posterior procesamiento y simplemente leer un JSON que retorna una petición restful. Para todo esto se puede utilizar la extensión pgsql-http, desarrollada por Paul Ramsey, que también tiene otras contribuciones a PostgreSQL.

Pues manos a la obra, instalaremos y probemos que tal Sigue leyendo

Trabajando con unidades de medida en PostgreSQL

En ocasiones necesitamos realizar algunas operaciones o  conversiones con unidades de medidas, lo cual puede ser un poco engorroso pues se tienen que hacer casteos, concatenaciones o fórmulas matemáticas, por ejemplo:

Tenemos un atributo que almacena el valor en bytes:

CREATE TABLE bytes (i int8);
INSERT INTO bytes VALUES(2000), (3000), (40000);

Necesitamos mostrar el valor en kB y además con la unidad de medidas, pues diran es simple, se castea a numeric,  se divide entre 1024, se redondea, se convierte a texto, y se concatena con ‘kB’

select round((i::numeric/1024),2)::text || 'kB' as en_Kb from bytes ;
en_kb
 ---------
 1.95kB
 2.93kB
 39.06kB
(3 rows)

Y si por casualidad se tiene almacenado el valor en texto como por ejemplo ‘1000 B’ como mil bytes, es un dolor de cabeza hacer la conversión, el casteo u operaciones matemáticas 😦

postgresql-unit al rescate

Sigue leyendo

Tipo de dato UUID en PostgreSQL

Aunque el tipo de dato UUID existe en PostgreSQL desde la versión 8.3, a veces los desarrolladores no lo utilizan mucho y prefieren usar Serial para generar PK o codificar el UUID en texto, desconociendo las utilidades y ventajas de usar UUID nativo, sobre todo en el tema de espacio como lo muestra en este blog. En esta entrada veremos algunas características y funciones para trabajar con dicho tipo de dato en PostgreSQL.

Para conocer generalidades de lo que es UUID en PostgreSQL puede ver en la documentación,

Ejemplos de uso y funciones:

Sigue leyendo

pg_recall, extesión para leer datos modificados de una tabla

Hace un tiempo se publicó una entrada que le permitía leer filas “sucias” en PostgreSQL, es decir filas que han sido modificadas o eliminadas sin que se les haya realizado VACCUM a la tabla. Siguiendo con el mismo tema de leer datos de una tabla que han sido modificados, les quiero mostrar una extensión llamada pg_recall realizada y mantenida por Manuel Reithuber, que la misma lo que realiza es llevar un registro de los datos de las tablas en el tiempo, lo que nos permite por  ejemplo, consultar la tabla X hace 5 minutos atrás. Pues  a ver que tal funciona:

Primero la descargamos de aqui Sigue leyendo