El 18/02/2021 a las 1:01, Horacio Miranda escribió:


On 18/02/2021 8:55 am, Anthony Sotolongo wrote:

Hola Kernel, como comentas puedes usar STDOUT, el cual te enviará los datos a tu client, por ejemplo con psql:


psql -U postgres -h tu_server_en_la_nube -c "COPY (select * from tu_tabla) to STDOUT WITH CSV HEADER DELIMITER ',';" > tu_archivo.csv


Los servidores pueden mandar email tambien.

Puedes hacer esta logica si quieres en el server en la nube que es mas rapido ejecutar cosas locales.

#!/bin/bash

PGUSER=<USER>
PGPASSWORD=<PASS>
PGPORT=<PUERTO>
PGDATABASE=<BASE>
PGHOST=<HOST>

psql -c "COPY (select * from tu_tabla) to STDOUT WITH CSV HEADER DELIMITER ',';" > /tmp/tu_archivo.csv

cd /tmp  # Esto solo es para evitar que en el ZIP esten los path como /tmp
zip tu_archivo.csv.zip tu_archivo.csv
uuencode tu_archivo.csv tu_archivo.csv | mail -s "export_desde_lanube_$(hostname)" algun_m...@domain.com

uuencode lo encuentras como parte del sharutils si usas algo como rpm puedes hacer "yum provides */uuencode"

Ahora puedes hacer un sftp, o cualquier cosa que quieras para traerte el archivo.

Si lo quieres local puedes hacer un rsync tambien, posibilidades hay muchas. Ahora si este archivo es algo que se genera para un cliente, que se envie un email de forma automatica creo que puede ser bien interesante.


Saludos


On 2/17/21 4:14 PM, kernel wrote:

Hola,

Necesito generar un fichero csv desde una aplicación, hasta la fecha llamaba a una función , la cual me ejecutaba una sentencia copy de un query determinado y lo sacaba a un fichero local.

Si contrato algún servicio de DB en la nube no voy a poder dejar el fichero en local. He visto que la función copy tiene algo de stdout , pero no se como conectarlo son mi aplicación.

El lenguaje que utilizo es 4GL , solo  puedo hacer querys cuyo resultado lo recojo en variables

me pregunto si existe alguna función en la que pueda generar un csv desde una consulta y me lo devuelva en un tipo de variable byte o algo asi,  que luego yo pueda guardar donde yo quiera|.||||
|

no se si he sido capaz de explicarme.

Gracias

Un Saludo

hola no se si me he explicado bien, lo que tengo en la nube no es un servidor, es un servicio postgresql , nada mas , por eso el problema

Gracias



Reply via email to