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