Re: sentencia copy a cliente

From: kernel <jucabapa(at)gmail(dot)com>
To: Horacio Miranda <hmiranda(at)gmail(dot)com>, Ayuda <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: sentencia copy a cliente
Date: 2021-02-23 09:49:21
Message-ID: 9384e92e-137a-416b-039e-fcd389a6fe2c@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

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_mail(at)domain(dot)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
>>>>>>
>>>>>>
>>>>>>

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Horacio Miranda 2021-02-23 09:58:16 Re: sentencia copy a cliente
Previous Message Alvaro Herrera 2021-02-23 00:13:32 Re: Problema con pgbench y versiones de Postgresql.