Re: Fwd: Actualizar o insertar datos en postgres de SQL Server

From: "jvenegasperu (dot)" <jvenegasperu(at)gmail(dot)com>
To: david buenaño <davidbuenanio(at)gmail(dot)com>
Cc: Francis Santiago <santiagocfc(at)gmail(dot)com>, pgsql-es-ayuda <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Fwd: Actualizar o insertar datos en postgres de SQL Server
Date: 2016-07-13 14:32:53
Message-ID: CA+KjtGcOoCy0sTb6VdvB=9O6AOwvuyzLFZEyHySK0J3piV=LJw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

David
Buen dia cuando tuve que lidiar con algo parecido al igual que tu pensaba
conectar directamente a Oracle en mi caso para tomar solo lo que necesito
pero finalmente opte por migrar toda la data a postgres ya que me permitia
mayores capacidades de analisis y reportes al trabajar con otras tablas en
mis sistemas.

Quiza tu preocupación sea el hecho de que habria que esperar a que postgres
este actualizado para poder trabajar y podrias evitar la espera conectando
directamente.

Yo diria que evalues la necesidad de tener la información online o si
puedes esperar un par de minutos es decir en mi caso por ejemplo migro de
oracle a postgres con pentaho aproximadamente 200 mil registros mensual.
OJO los datos se actualizan en ambos en algunos casos se actualiza de
oracle a postgres en otros de postgres a oracle.

En hardware no tengo mucho el equipo con postgres que lee de oracle tiene
este hardware
Servidor con 8 Gb de RAM procesador core i5 de 3 Ghz

El trabajo lo hace en tan solo 70 segundos usando JAVA a 64 bits dandole un
Giga de RAM para uso del pentaho.

Por otro lado como dice Gilberto probablemente un web service tambien te
sirva aunque cuando son datos en bloque yo particularmente prefiero
pentaho. la unica pega es que probablemente tendras que ver los tipos de
datos a mano en alguno que otro caso

El 13 de julio de 2016, 8:34, david buenaño <davidbuenanio(at)gmail(dot)com>
escribió:

> Hola, muchas gracias por la ayuda, ya voy a hacer lo que me indicas.
>
> efectivamente puede ser que esté subvalorando pentaho o quizás estoy
> explicando mal mi necesidad.
>
> El negocio básicamente es que tengo un sistema que administra el pago de
> un bono o subsidio en mi país para lo cual de acuerdo a la normativa que
> tiene este bono, tengo que realizar cruces de datos mensualmente con
> diferentes instituciones como por ejemplo para saber si la persona ha
> fallecido, entre mucha otra información que posee de otras instituciones.
> Sin embargo, en el mismo sistema parte del negocio, van ingresando
> información que recopilan en visitas domiciliarias que también influye para
> el pago o no.
>
> Actualmente las instituciones nos entregan en un archivo plano txt y
> manualmente cargo en una tabla y de esa tabla actualizo en las tablas que
> requiero.
>
> La razón por la cual planteo la consulta de la interconexión con sql
> server es que donde llegan directamente esos archivos es a otra instancia
> de esta institución, que ellos cargan en su base de datos y para no
> realizar un doble proceso de carga quiero consumir desde mi base de datos
> solo lo que requiero.
>
> Y con toda la información que se actualiza una vez por mes trabajan a
> diario todos los responsables vinculados a la gestión de este bono,
> verificando información de cada uno de los registros.
>
> Finalmente, expuesto lo anterior, creo que para lo que requiero, debido a
> que la necesidad es actualizar la información para el trabajo por cada uno
> de los registros que opera con mi aplicativo, no me serviría pentaho, pues
> necesitaría que la información esté actualizada en postgres para el consumo
> de la informació
>
> Espero haber aclarado más mi problema.
>
> PD: Tal vez por mi desconocimiento de pentaho, puede ser que esté
> equivocado y lo mejor sea utilizar esa herramienta, voy a leer la
> información proporcionada y les contaré como me fue. Muchas gracias
> nuevamente
>
> El 12 de julio de 2016, 23:45, jvenegasperu . <jvenegasperu(at)gmail(dot)com>
> escribió:
>
>> Hola David
>> Me sorprende que digas que Pentaho no te sirve o te estoy entendiendo mal
>> quiza
>>
>> Veras yo tengo una situación similar mensualmente debo actualizar mi base
>> de datos postgres de una base de datos oracle.de hecho en algunos casos
>> hago actualizaciones diarias otras semanales quincenales y mensuales
>>
>> Creo que lo que te sugiere Francis seria lo ideal pentaho es excelente
>> para estas situaciones.
>>
>> aqui te dejo el link de pentaho
>> http://community.pentaho.com/projects/data-integration/
>>
>> y aqui un buen manual
>> http://wiki.pentaho.com/display/EAIes/Manual+del+Usuario+de+Spoon
>>
>> Si te planteas las transformaciones y los jobs de pentaho como si fueran
>> capas o clases en programación de seguro migrar los datos a postgres te
>> resultara super facil seria mas o menos asi:
>>
>> 0.- Crea tus scripts con los datos que quieres obtener haciendo pruebas
>> primero dentro del propio motor de BD origen y destino luego usaras esos
>> scripts como primeros y ultimos pasos en las transformaciones
>>
>> 1.- crea las transformaciones en pentaho trabajando con pocas tablas
>> digamos unas 4 o 5 no importa si tienes que procesar 30 tablas te sugiero
>> hacer pequeñas transformaciones es como si en programacion estuvieras
>> separando en archivos para mejorar su mantenimiento.
>>
>> 2.- Crea un trabajo donde vayas juntando las transformaciones. esto debe
>> ser asi por si cambia la logica de negocio el trabajo seguira siendo el
>> mismo y probablemente solo tengas que alterar alguna de las
>> transformaciones sin tener que buscar dentro de todo un archivo complejo
>>
>> 3.- Genera una tarea programada para que ejecute el trabajo segun la
>> frecuencia que necesitas mientras te tomas un cafe ;-)
>>
>> saludos y espero te sirva
>>
>> PD: hay casos en los que pentaho te da tipo de dato UNKNOW y no se puede
>> migrar directo es decir alguien crea su propio tipo de dato que pentaho no
>> entiende pero que si lo revisas finalmente es un dato cadena fecha etc en
>> esos casos debes poner manualmente el tipo de dato que recibiras y luego si
>> quieres al recibirlo lo parseas con un trigger o algun otro mecanismo y ya
>> lo tienes igual que en el origen saludos.
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> El 12 de julio de 2016, 11:07, david buenaño <davidbuenanio(at)gmail(dot)com>
>> escribió:
>>
>>> Hola, Muchas gracias por la respuesta, sin embargo, para lo que requiero
>>> no me sirve, debido a que para las reglas del negocio y los controles
>>> puestos requiero que sea actualizado mes a mes la base de datos de postgres.
>>>
>>> Actualmente se realiza el el cruce y actualización de información en mi
>>> base de datos cargando varios archivos, básicamente un procesamiento por
>>> lotes. Pero para el negocio institucional, se alojarán todos los archivos
>>> de otras instituciones (7) en una base de datos en SQL Server (maneja un
>>> sistema más grande) y de ahí necesito actualizar en postgres.
>>>
>>> Muchas gracias nuevamente
>>>
>>>
>>>
>>> El 12 de julio de 2016, 10:31, Francis Santiago <santiagocfc(at)gmail(dot)com>
>>> escribió:
>>>
>>>> David!
>>>>
>>>> Haz pensado en utilizar herramientas adicionales como Pentaho? son
>>>> bastante buenas para resolver este tipo de inconvenientes. Creas una ETL y
>>>> listo. Creo es la solución más optima. Yo la he usado con MySQL, Oracle
>>>> hacia PostgreSQL, por ejemplo.
>>>>
>>>> Saludos;
>>>>
>>>> El 12 de julio de 2016, 11:14, david buenaño<davidbuenanio(at)gmail(dot)com>
>>>> escribió:
>>>>
>>>>> Hola, deseo actualizar algunos campos que tengo en una base de datos
>>>>> de postgres de una base de datos de SQL server que se encuentra en otro
>>>>> servidor.
>>>>>
>>>>> Actualmente, lo realizo manualmente descargandome un reporte de la
>>>>> base de datos de SQL server y manualmente lo cargo en una tabla que creo en
>>>>> postgres y actualizo los campos que requiero combinando según coincida, sin
>>>>> embargo, este es un proceso mensual que deseo automatizar.
>>>>>
>>>>> Adicionalmente hay que considerar que de la base de datos en SQL
>>>>> server solamente tengo privilegios de consulta, mientras que en la de
>>>>> postgres soy el DBA.
>>>>>
>>>>> Aproximadamente los registros a actualizar serían unos 70.000
>>>>>
>>>>> Me he planteado tres posibilidades:
>>>>>
>>>>> 1) Linkear de alguna manera entre las dos bases de datos y mediante
>>>>> procesos almacenados en postgres actualizar todos los campos que requiero y
>>>>> mediante un job o simplemente llamando a la función que crearía para
>>>>> actualizar o insertar los datos que requiero.
>>>>>
>>>>> 2) Mediante un aplicativo por ejemplo realizado en JAVA crear el
>>>>> procedimiento para que actualicen los registros.
>>>>>
>>>>> 3) Seguir realizando todo manualmente.
>>>>>
>>>>> Agradezco mucho su ayuda orientandome cual sería la mejor posibilidad
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> *Francis del Carmen Santiago Cermeño*
>>>> *Ingeniero en Informática *
>>>> *Certification PostgreSQL Associate*
>>>> *Certification **PostgreSQL 9.4 Professional*
>>>> *Twiter:* sancfc
>>>> *Celular: +56952456172 <%2B56952456172>*
>>>> [image: LinkedIn]
>>>> *https://www.linkedin.com/in/sancfc
>>>> <https://www.linkedin.com/in/sancfc>*
>>>>
>>>>
>>>>
>>>
>>
>>
>> --
>> José Mercedes Venegas Acevedo
>> cel Mov RPC 964185205
>>
>> skype jvenegasperu
>> facebook jvenegasperu
>> <jvenegasperu(at)gmail(dot)com>
>>
>
>

--
José Mercedes Venegas Acevedo
cel Mov RPC 964185205

skype jvenegasperu
facebook jvenegasperu
<jvenegasperu(at)gmail(dot)com>

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message david buenaño 2016-07-13 14:39:42 Re: Fwd: Actualizar o insertar datos en postgres de SQL Server
Previous Message Mario Soto Cordones 2016-07-13 14:27:24 RE: [MASSMAIL] Re: Fwd: Actualizar o insertar datos en postgres de SQL Server