Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

reporte/almacén con datos de postgresql+mysql

Estas en el tema de reporte/almacén con datos de postgresql+mysql en el foro de Bases de Datos General en Foros del Web. Saludos Estamos desarrollando/migrando un sistema de información regional. Se inició en mysql y se está (progresivamente) migrando a postgresql. Actualmente estoy trabajando con un módulo ...
  #1 (permalink)  
Antiguo 26/11/2007, 12:22
 
Fecha de Ingreso: agosto-2005
Ubicación: Mérida, Venezuela
Mensajes: 732
Antigüedad: 18 años, 8 meses
Puntos: 7
reporte/almacén con datos de postgresql+mysql

Saludos

Estamos desarrollando/migrando un sistema de información regional. Se inició en mysql y se está (progresivamente) migrando a postgresql.

Actualmente estoy trabajando con un módulo (servicios públicos) cuyas variables principales están en postgresql, pero que para ciertas variables (población) calculadas requieren de 2 campos de una tabla en mysql.

Por ahora, veo 2 opciones:
  1. Al momento de ingresar datos al formulario de la tabla de servicios públicos, recupero los datos de población, calculo, y almaceno en la tabla de servicios públicos el valor calculado
  1. Al momento de hacer una consulta/reporte de servicios públicos, recupero los datos que necesito de población, calculo y muestro el valor calculado

Pensando en la migración a postgresql, da la impresión que la segunda alternativa sería la correcta, pero... ¿iré a tener problemas de rendimiento?

Ideas?
__________________
Gracias de todas todas
-----
Linux!
  #2 (permalink)  
Antiguo 27/11/2007, 04:57
 
Fecha de Ingreso: febrero-2007
Mensajes: 1.292
Antigüedad: 17 años, 2 meses
Puntos: 13
Re: reporte/almacén con datos de postgresql+mysql

Hola,
Yo personalmente, migraria provisionalmente los 2 datos que necesitas a postgres para acceder directamente a ellos mientras que la migracion definitiva avanza.
Yo estoy migrando una BD sqlserver a postgres, linkada sqlserver desde postgres el rendimiento cae en picado.

Un saludo
  #3 (permalink)  
Antiguo 27/11/2007, 06:17
 
Fecha de Ingreso: agosto-2005
Ubicación: Mérida, Venezuela
Mensajes: 732
Antigüedad: 18 años, 8 meses
Puntos: 7
Re: reporte/almacén con datos de postgresql+mysql

Si, así lo hice con otras tablas, el problema con esta (población) es que no la han cargado ni en un 10% y me complicaría la cosa para "replicar" los datos...

Al menos nunca he visto nada que permita replicar datos entre BDs diferentes
__________________
Gracias de todas todas
-----
Linux!
  #4 (permalink)  
Antiguo 27/11/2007, 07:17
 
Fecha de Ingreso: febrero-2007
Mensajes: 1.292
Antigüedad: 17 años, 2 meses
Puntos: 13
Re: reporte/almacén con datos de postgresql+mysql

no entiendo.. mientras menos carga tenga mejor -> menos tienes que copiar.
A que te refieres con "replicar"?
  #5 (permalink)  
Antiguo 27/11/2007, 08:09
 
Fecha de Ingreso: agosto-2005
Ubicación: Mérida, Venezuela
Mensajes: 732
Antigüedad: 18 años, 8 meses
Puntos: 7
Re: reporte/almacén con datos de postgresql+mysql

El asunto es que la información de la tabla población, no está cargada del todo, te decía que va como por el 10%, entonces, sí hago una copia y la pego a postgres, tendría que estar pendiente y replicando de mysql a postgresql... lo cual no me parece nada funcional
__________________
Gracias de todas todas
-----
Linux!
  #6 (permalink)  
Antiguo 27/11/2007, 09:39
 
Fecha de Ingreso: febrero-2007
Mensajes: 1.292
Antigüedad: 17 años, 2 meses
Puntos: 13
Re: reporte/almacén con datos de postgresql+mysql

¿por que la tabla origen de la BD que quieres migrar esta al 10%??

Veo 2 opciones posibles:
1. Cuando cargas mysql cargas también en postgres
2. Conectas las BD para acceder desde postgres a mysql, al menos, hasta que la carga llegue al 100% (DBI-link)

Un saludo
  #7 (permalink)  
Antiguo 28/11/2007, 07:04
 
Fecha de Ingreso: agosto-2005
Ubicación: Mérida, Venezuela
Mensajes: 732
Antigüedad: 18 años, 8 meses
Puntos: 7
Re: reporte/almacén con datos de postgresql+mysql

Cita:
Iniciado por seyko Ver Mensaje
¿por que la tabla origen de la BD que quieres migrar esta al 10%??
Porque el sistema se está cargando... son varios módulos que se han creado, y se han ido cargando de acuerdo al que ha estado listo, además que los transcriptores no son muchos (2) y tampoco son rápidos...

Cita:
Iniciado por seyko Ver Mensaje
Veo 2 opciones posibles:
1. Cuando cargas mysql cargas también en postgres
2. Conectas las BD para acceder desde postgres a mysql, al menos, hasta que la carga llegue al 100% (DBI-link)
la segunda opción me parece más viable... no soy el responsable de los módulos que están sobre mysql, más sí sobre los de postgresql (y del servidor de BD pg)

Estoy revisando la doc que hay en:
http://pgfoundry.org/docman/?group_id=1000045

Pero no me ayuda mucho... algún enlace con receta/manual/tutorial interesante?
__________________
Gracias de todas todas
-----
Linux!
  #8 (permalink)  
Antiguo 29/11/2007, 03:40
 
Fecha de Ingreso: febrero-2007
Mensajes: 1.292
Antigüedad: 17 años, 2 meses
Puntos: 13
Re: reporte/almacén con datos de postgresql+mysql

no encontre nada cuando lo busque.
Te puedo ayudar con mi experiencia, que no es mucha. Pero tampoco es muy complicado.

1. create language plperlu;
2. lanzas dbi_link.sql ( te crea el esquema y las funciones necesarias)
3. Conectar con la BD, yo conecto con SQLServer, pero en examples/,mysql tienes el sql para conectar.

A la espera, un saludo
  #9 (permalink)  
Antiguo 30/11/2007, 08:34
 
Fecha de Ingreso: agosto-2005
Ubicación: Mérida, Venezuela
Mensajes: 732
Antigüedad: 18 años, 8 meses
Puntos: 7
Re: reporte/almacén con datos de postgresql+mysql

Gracias seyko, los pasos 1 y 2 están claramente en la doc, pero conectar, ejecutar, eso no lo veo... tengo la carpeta examples/mysql:

probé de tirar, tal y como está en el ejemplo:

Código:
SELECT dbi_link.make_accessor_functions(
    'dbi:mysql:database=sir;host=localhost',
    'root',
    '',
    '---
AutoCommit: 1
RaiseError: 1
',
    NULL,
    NULL,
    NULL,
    'sir'
);
__________________
Gracias de todas todas
-----
Linux!
  #10 (permalink)  
Antiguo 30/11/2007, 08:37
 
Fecha de Ingreso: agosto-2005
Ubicación: Mérida, Venezuela
Mensajes: 732
Antigüedad: 18 años, 8 meses
Puntos: 7
Re: reporte/almacén con datos de postgresql+mysql

y me devolvió:

Código:
CONTEXT:  sentencia SQL: «SELECT dbi_link.dbi_link_init()»
NOTICE:  Setting get_dbh in %_SHARED hash. at line 25.

CONTEXT:  sentencia SQL: «SELECT dbi_link.dbi_link_init()»
NOTICE:  Setting remote_exec_dbh in %_SHARED hash. at line 25.

CONTEXT:  sentencia SQL: «SELECT dbi_link.dbi_link_init()»
NOTICE:  SELECT dbi_link.set_up_connection(
    'dbi:mysql:database=sir;host=localhost',
    'root',
    '',
    '---
AutoCommit: 1
RaiseError: 1
',
    NULL,
    NULL,
    NULL,
    'sir'
)

NOTICE:  SELECT count(*) AS "driver_there"
FROM dbi_link.available_drivers()
WHERE available_drivers = 'dbi:mysql:database=sir;host=localhost'

CONTEXT:  sentencia SQL: «SELECT dbi_link.set_up_connection(
    'dbi:mysql:database=sir;host=localhost',
    'root',
    '',
    '---
AutoCommit: 1
RaiseError: 1
',
    NULL,
    NULL,
    NULL,
    'sir'
)
»
NOTICE:  Checking whether 'dbi:mysql:database=sir;host=localhost' has table_info... at line 59.

CONTEXT:  sentencia SQL: «SELECT dbi_link.set_up_connection(
    'dbi:mysql:database=sir;host=localhost',
    'root',

    '',
    '---
AutoCommit: 1
RaiseError: 1
',
    NULL,
    NULL,
    NULL,
    'sir'
)
»
NOTICE:  'dbi:mysql:database=sir;host=localhost' has table_info :) at line 61.

CONTEXT:  sentencia SQL: «SELECT dbi_link.set_up_connection(
    'dbi:mysql:database=sir;host=localhost',
    'root',
    '',
    '---
AutoCommit: 1
RaiseError: 1
',
    NULL,
    NULL,
    NULL,
    'sir'
)
»
NOTICE:  Checking whether 'dbi:mysql:database=sir;host=localhost' has column_info... at line 59.

CONTEXT:  sentencia SQL: «SELECT dbi_link.set_up_connection(
    'dbi:mysql:database=sir;host=localhost',
    'root',
    '',
    '---
AutoCommit: 1
RaiseError: 1
',
    NULL,
    NULL,
    NULL,
    'sir'
)
»
NOTICE:  'dbi:mysql:database=sir;host=localhost' has column_info :) at line 61.

CONTEXT:  sentencia SQL: «SELECT dbi_link.set_up_connection(
    'dbi:mysql:database=sir;host=localhost',
    'root',
    '',
    '---
AutoCommit: 1
RaiseError: 1
',
    NULL,
    NULL,
    NULL,
    'sir'
)
»
NOTICE:  Checking whether 'dbi:mysql:database=sir;host=localhost' has quote... at line 59.

CONTEXT:  sentencia SQL: «SELECT dbi_link.set_up_connection(
    'dbi:mysql:database=sir;host=localhost',
    'root',
    '',
    '---
AutoCommit: 1
RaiseError: 1
    '',
    '---
AutoCommit: 1
RaiseError: 1
',
    NULL,
    NULL,
    NULL,
    'sir'
)
»
NOTICE:  'dbi:mysql:database=sir;host=localhost' has table_info :) at line 61.

CONTEXT:  sentencia SQL: «SELECT dbi_link.set_up_connection(
    'dbi:mysql:database=sir;host=localhost',
    'root',
    '',
    '---
AutoCommit: 1
RaiseError: 1
',
    NULL,
    NULL,
    NULL,
    'sir'
)
»
NOTICE:  Checking whether 'dbi:mysql:database=sir;host=localhost' has column_info... at line 59.

CONTEXT:  sentencia SQL: «SELECT dbi_link.set_up_connection(
    'dbi:mysql:database=sir;host=localhost',
    'root',
    '',
    '---
AutoCommit: 1
RaiseError: 1
',
    NULL,
    NULL,
    NULL,
    'sir'
)
»
NOTICE:  'dbi:mysql:database=sir;host=localhost' has column_info :) at line 61.

CONTEXT:  sentencia SQL: «SELECT dbi_link.set_up_connection(
    'dbi:mysql:database=sir;host=localhost',
    'root',
    '',
    '---
AutoCommit: 1
RaiseError: 1
',
    NULL,
    NULL,
    NULL,
    'sir'
)
»
NOTICE:  Checking whether 'dbi:mysql:database=sir;host=localhost' has quote... at line 59.

CONTEXT:  sentencia SQL: «SELECT dbi_link.set_up_connection(
    'dbi:mysql:database=sir;host=localhost',
    'root',
    '',
    '---
AutoCommit: 1
RaiseError: 1
',
    NULL,
    NULL,
    NULL,
    'sir'
)
»
NOTICE:  'dbi:mysql:database=sir;host=localhost' has quote :) at line 61.

CONTEXT:  sentencia SQL: «SELECT dbi_link.set_up_connection(
    'dbi:mysql:database=sir;host=localhost',
    'root',
    '',
    '---
AutoCommit: 1
RaiseError: 1
',
    NULL,
    NULL,
    NULL,
    'sir'
)
»
NOTICE:  INSERT INTO dbi_link.dbi_all_connection_info (
    data_source,
    user_name,
    auth,
    dbh_attributes,
    dbi_connection_environment,
    remote_schema,
    remote_catalog,
    local_schema
) VALUES (
    'dbi:mysql:database=sir;host=localhost',
    'root',
    '',
    '---
AutoCommit: 1
RaiseError: 1
',
    NULL,
    NULL,
    NULL,
    'sir'
)

CONTEXT:  sentencia SQL: «SELECT dbi_link.set_up_connection(
    'dbi:mysql:database=sir;host=localhost',
    'root',
    '',
    '---
AutoCommit: 1
RaiseError: 1
',
    NULL,
    NULL,
    NULL,
    'sir'
)
»

ERROR:  error from Perl function: error from Perl function: llave duplicada viola restricción unique «dbi_connection_data_source_key» at line 94. at line 35.



',
    NULL,
    NULL,
    NULL,
    'sir'
)
»
NOTICE:  'dbi:mysql:database=sir;host=localhost' has quote :) at line 61.

CONTEXT:  sentencia SQL: «SELECT dbi_link.set_up_connection(
    'dbi:mysql:database=sir;host=localhost',
    'root',
    '',
    '---
AutoCommit: 1
RaiseError: 1
',
    NULL,
    NULL,
    NULL,
    'sir'
)
»
NOTICE:  INSERT INTO dbi_link.dbi_all_connection_info (
    data_source,
    user_name,
    auth,
    dbh_attributes,
    dbi_connection_environment,
    remote_schema,
    remote_catalog,
    local_schema
) VALUES (
    'dbi:mysql:database=sir;host=localhost',
    'root',
    '',
    '---
AutoCommit: 1
RaiseError: 1
',
    NULL,
    NULL,
    NULL,
    'sir'
)

CONTEXT:  sentencia SQL: «SELECT dbi_link.set_up_connection(
    'dbi:mysql:database=sir;host=localhost',
    'root',
    '',
    '---
AutoCommit: 1
RaiseError: 1
',
    NULL,
    NULL,
    NULL,
    'sir'
)
»

ERROR:  error from Perl function: error from Perl function: llave duplicada viola restricción unique «dbi_connection_data_source_key» at line 94. at line 35.
__________________
Gracias de todas todas
-----
Linux!
  #11 (permalink)  
Antiguo 03/12/2007, 04:49
 
Fecha de Ingreso: febrero-2007
Mensajes: 1.292
Antigüedad: 17 años, 2 meses
Puntos: 13
Re: reporte/almacén con datos de postgresql+mysql

mmm pues la verdad no se que pasa, a mi me costo un poco conectar, tuve que jugar un poco con la sql.

UPDATE
pg_catalog.pg_settings
SET
setting =
CASE WHEN 'dbi_link' = ANY(string_to_array(setting, ','))
THEN setting
ELSE 'dbi_link,' || setting
END
WHERE
name = 'search_path'
;

SELECT make_accessor_functions(
'dbi:Sybase:aquiSoloTengoLaIpDelHost', (sin esquema ni BD)
'user',
'pass', (no tiene pass el root de tu BD?)
'
AutoCommit: 1
RaiseError: 1
', (Si le quito esto no me dejaba conectar)
NULL,
NULL,
NULL,
'esquema_donde_replica'
);

Para desinstalar solo tienes que eliminar el esquema dbi_link, por si quieres volver a probar.

No se si puedo ayudarte mucho más, sorry :(

Un saludo
  #12 (permalink)  
Antiguo 03/12/2007, 08:31
 
Fecha de Ingreso: agosto-2005
Ubicación: Mérida, Venezuela
Mensajes: 732
Antigüedad: 18 años, 8 meses
Puntos: 7
Re: reporte/almacén con datos de postgresql+mysql

Espérate que no entiendo...

Con tus líneas, me hizo algo, leyó las tablas que hay en la BD mysql, y me las creo en el esquema que le dije... obviamente cambiando por mis datos de BD, IP, etc... los datos los veo en vistas...

Explícame algo (no sé por qué me da la impresión que de aquí en adelante la cosa es conceptual), ¿de qué se trata esto, a qué se debe que vea los datos en vistas? ¿puedo "sincronizar" para que al "tocarse" la BD de mysql se toqué la de pg?
__________________
Gracias de todas todas
-----
Linux!
  #13 (permalink)  
Antiguo 04/12/2007, 03:31
 
Fecha de Ingreso: febrero-2007
Mensajes: 1.292
Antigüedad: 17 años, 2 meses
Puntos: 13
Re: reporte/almacén con datos de postgresql+mysql

ok, te cuento.
Al linkarla lo que hace es "replicarte" el esquema de mysql en un esquema de postgres, a base de vistas.
Cuando haces una select sobre el esquema replicado, conecta con mysql y te devuelve lo que hay en ese momento en mysql, es decir, si insertas o borras datos en mysql, la select sobre postgres te los muestra. Asi tienes el esquema actualizado para poder acceder directamente desde postgres a mysql.
uff no se si me he explicado muy bien!

Un saludo
  #14 (permalink)  
Antiguo 04/12/2007, 08:56
 
Fecha de Ingreso: agosto-2005
Ubicación: Mérida, Venezuela
Mensajes: 732
Antigüedad: 18 años, 8 meses
Puntos: 7
Re: reporte/almacén con datos de postgresql+mysql

Te entiendo! más claro no canta un gallo... ya con eso es mucho lo que se puede hacer...

Gracias amigo seyko!!!

Pendientes,
  #15 (permalink)  
Antiguo 04/12/2007, 10:53
 
Fecha de Ingreso: febrero-2007
Mensajes: 1.292
Antigüedad: 17 años, 2 meses
Puntos: 13
Re: reporte/almacén con datos de postgresql+mysql

De nada desde España ;)
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:12.