Haber te he entendido bien

¿ quieres decir que el gestor postgres siempre tiene acceso al /tmp?

si es así puedo crear un función que ejecute la sentencia copy que necesito, lo vuelque en el /tmp , ¿pero  luego lo puedo leerlo desde postgresql? , ¿tendré permisos?

Un Saludo



El 23/02/2021 a las 10:29, Horacio Miranda escribió:

Toma la idea y revisa que servicio cada cliente tiene.

Si quieres algo rapido claro esta, la gracia es que sea latencia baja. Puede ser archivo local o en el /tmp.

Toda maquina tiene acceso a un /tmp independiente de lo que sea.

/dev/shm es otra alternativa pero usa RAM y solo el 50% de la RAM de la maquina.

On 23/02/2021 10:27 pm, kernel wrote:

Puede se cualquiera que te de el servicio, ovh por ejemplo te da el servicio asi

https://www.ovh.es/cloud-databases/

Estoy buscando una manera de hacerlo sin depender de quien da el servicio y sin tener que hacer nada especial para cada proveedor

Un Saludo

El 23/02/2021 a las 10:12, Horacio Miranda escribió:

Que cosa es ? si no es amazon ?

On 23/02/2021 8:16 pm, kernel wrote:


El 18/02/2021 a las 23:31, Horacio Miranda escribió:


On 18/02/2021 8:01 pm, kernel wrote:


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

Oracle tiene algo llamado Oracle way. postgresql tiene algo llamado PostgreSQL way y RDS de Amazon tiene Amazon way.
Esta es la forma de exportar algo desde un RDS.

https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/postgresql-s3-export.html

Luego lees el s3 ( solo asegurate que el s3 sea seguro ), sí esta abierto a todo el mundo sin clave vas a compartir tus exports con el planeta.


Gracias por tu respuesta , el problema es que no es amazon.

Gracias

Gracias



Reply via email to