Re: Insertar datos en tabla remota

From: Anthony Sotolongo <asotolongo(at)gmail(dot)com>
To: Alberto Cardenas Cardenas <alberto(dot)cardenas(dot)c(dot)68(at)gmail(dot)com>, Hellmuth Vargas <hivs77(at)gmail(dot)com>
Cc: pgsql-es-ayuda <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Insertar datos en tabla remota
Date: 2018-01-29 20:38:33
Message-ID: 36e3b2fd-a3ae-ac7b-ffcb-fa09aa53d342@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Hola nuevamente Alberto, Entiendo que Hellmuth lo que te describe es un
posible escenario de como resolver tu problemática,  en la documentación
del FDW se describe que puedes lograr con un FDW en PostgreSQL y creo
que te lo hemos descrito aquí de una forma u otra, como resolver tu
caso, aquí vamos nuevamente:

-crea en tu servidor local una tabla foránea con la estructura de tu
tabla en el servidor externo(que es la misma que retorna tus datos
procesados de tu funcion, [segun entiendo]) (para crear tu tabla foránea
debes crear el server y user mapping previamente)

luego haces algo como esto para insertar tus datos (insertar en tu tabla
foranea local, los datos de tu query ):

-insert into tabla_foranea_que_apunta_a_tabla_servidor_externo select *
from tu_funcion_procesadora_de_datos() [o tu query, asegúrate que
retorna la misma estructura de tu tabla]

tu tabla foranea local apuntará a tu tabla en el servidor externo e
insertará los datos allá

Saludos

On 29/01/18 17:14, Alberto Cardenas Cardenas wrote:
> Gracias Hellmuth, pero no funciona lo que me indicas.
>
> Lo que necesito es que datos que tengo en mi servidor local, puedan
> ser insertados en un servidor externo con postgresql tambien en una
> tabla con cierta estructura
>
> El 29 de enero de 2018, 15:36, Hellmuth Vargas <hivs77(at)gmail(dot)com
> <mailto:hivs77(at)gmail(dot)com>> escribió:
>
>
> Hola Alberto
>
> con postgres_fdw se puede inserta en una tabla remota
>
>
> -- en el servidor remoto:
> CREATE  TABLE remota(id int, texto text, fecha timestamp);
>
> -- no olvidar registrar en el pg_hba.conf
>
>
> -- en el servidor local
>
>
> CREATE EXTENSION postgres_fdw;
>
>
> CREATE SERVER postgresqlserver FOREIGN DATA WRAPPER postgres_fdw;
>
>
>
> CREATE SERVER postgresql_server
>         FOREIGN DATA WRAPPER postgres_fdw
>         OPTIONS (host '192.168.XX.YY', port '5432', dbname
> 'bd_remota');
>
>
> CREATE USER MAPPING FOR 'user_local'
>         SERVER postgresql_server
>         OPTIONS (user 'user_remoto', password 'pass_remoto');
>
>
>
> CREATE FOREIGN TABLE foreign_table (
>         id int, texto text, fecha timestamp
> )
>         SERVER postgresql_server
>         OPTIONS (schema_name 'public', table_name 'remota');
>
>
> INSERT INTO foreign_table(id,texto,fecha) VALUES(1,'a',now());
> INSERT INTO foreign_table(id,texto,fecha) VALUES (2,'b',now());
> INSERT INTO foreign_table(id,texto,fecha) VALUES (3,'c',now());
>
>
>
>
> El 29 de enero de 2018, 14:24, Anthony
> Sotolongo<asotolongo(at)gmail(dot)com <mailto:asotolongo(at)gmail(dot)com>>
> escribió:
>
> Hola Alberto,
>
>
> On 29/01/18 16:15, Alberto Cardenas Cardenas wrote:
>> Hola Hellmuth, no me sirve eso porque lo que necesito
>> insertar es el resultado de unas querys en la tabla remota,
>> no los mismos datos de la tabla origen, lo que debo insertar
>> son datos procesados obtenidos desde una funcion local
> ya esto cambia un poco de tu escenario inicial donde se
> entendía  que (las tablas eran la misma en ambos servidores ) :
> insert into <tabla_remota>
> select * from <tabla_local>
>
> pero bueno si lo que necesitas es un resultado procesado de
> una función, igual te ajusta el FDW, crea una tabla foránea en
> el local con la estructura que te devuelve esos datos
> procesados de tu función, donde esa tabla apunte en tu
> definición a la tabla remota e inserta en esa tabla foranea
> local y ella misma se hara cargo de enviártelos al remoto.
>
>
> Saludos
>
>
>
>>
>> Saludos
>>
>> El 29 de enero de 2018, 15:07, Hellmuth Vargas
>> <hivs77(at)gmail(dot)com <mailto:hivs77(at)gmail(dot)com>> escribió:
>>
>> Hola Lista
>>
>> dado que  esta empleando PostgreSQL 9.6 puede  hacer uso
>> de  postgres_fdw
>>
>> https://www.postgresql.org/docs/9.6/static/postgres-fdw.html
>> <https://www.postgresql.org/docs/9.6/static/postgres-fdw.html>
>>
>> "F.33.1.5. Updatability Options
>> By default all foreign tables using postgres_fdw are
>> assumed to be updatable. This may be overridden using the
>> following option:
>>
>> updatable
>> This option controls whether postgres_fdw allows foreign
>> tables to be modified using *INSERT*, UPDATE and DELETE
>> commands. It can be specified for a foreign table or a
>> foreign server. A table-level option overrides a
>> server-level option. The default is true."
>>
>>
>> El 29 de enero de 2018, 14:00, Alberto Cardenas
>> Cardenas<alberto(dot)cardenas(dot)c(dot)68(at)gmail(dot)com
>> <mailto:alberto(dot)cardenas(dot)c(dot)68(at)gmail(dot)com>> escribió:
>>
>> Estimada Lista:
>>
>> Tengo el siguiente problema, necesito insertar datos
>> desde una tabla local a una base de datos que esta en
>> otro servidor, la tabla es la misma en ambos
>> servidores, ambos motores son postgresql 9.6.
>>
>> Los datos que debo insertar son el resultado de un
>> select. He estado leyendo que lo puedo hacer con
>> dblink_exec, pero no se como hacerlo. Yo uso dblinks,
>> para consultar datos entre distindas bases de datos,
>> pero insertar de una base local a otra remota, no se
>> como hacerlo.
>>
>> en el fono lo que debo hacer es lo siguiente;
>>
>> insert into <tabla_remota>
>> select * from <tabla_local>
>>
>>
>> Les agradeceríamucho si alguien me pudiera ayudar con
>> mi problema
>>
>>
>> Saludos Cordiales
>>
>> Alberto
>>
>>
>>
>>
>> --
>> Cordialmente,
>>
>> Ing. Hellmuth I. Vargas S.
>> Esp. Telemática y Negocios por Internet
>> Oracle Database 10g Administrator Certified Associate
>> EnterpriseDB Certified PostgreSQL 9.3 Associate
>>
>>
>
>
>
>
> --
> Cordialmente,
>
> Ing. Hellmuth I. Vargas S.
> Esp. Telemática y Negocios por Internet
> Oracle Database 10g Administrator Certified Associate
> EnterpriseDB Certified PostgreSQL 9.3 Associate
>
>

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message gilberto.castillo 2018-01-29 20:39:50 Re: [MASSMAIL]Consulta de tabla con millones de registros
Previous Message Ovidio Jimenez 2018-01-29 20:34:24 Ayuda con Array