Ir para o conteúdo
t0ze

[Resolvido] MySQL < AS400

Mensagens Recomendadas

t0ze

Boa noite,

Alguém já se deparou com o cenário de ter que ir "ler" dados a uma base de dados AS400 (db2). E importar esses dados para uma base de dados MYSQL?

Para já do que vi posso:

  • Usar PHP para ligar a base de dados e importar para o MYSQL ?
  • Fazer um linked server no MS SQL e depois passar para o MYSQL ?
  • Outras...

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
apocsantos

Bom dia,

Uma possibilidade seria usar linguagem java e o driver JDBC DB2Driver, para o AS/400 e o respectivo driver JDBC para Mysql. Usas uma connection para a base de dados em AS/400, carregas os dados para um objecto em memória obtidos atravez de um sql statment seguido da connecção à base de dados Mysql e o respectivo SQL Statment para inserir os dados.

Existem muitas mais possibilidades, podes sempre gerar um ficheiro .csv do lado do AS/400 e importa-lo do lado do MySQL. Em teoria (pois nunca testei) até poderias fazer a ligação em Javascript ao DB2, fazer o select e ligar ao Mysql e fazer o Insert, mas nunca testei esta ideia.

Podes fazer por script, por exemplo em python... Formas de fazer isto não faltam, a questão que se põe, é a quantidade de dados que vão ser lidos do DB2 e ser inseridos no MySQL e o consumo de recursos que isso vai implicar em ambas as maquinas, para evitares o risco de um crash.

Cordiais cumprimentos,

Apocsantos

  • Voto 1

"A paciência é uma das coisas que se aprendeu na era do 48k" O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito"

assinatura.jpg

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
t0ze

Obrigado apocsantos,

A tabela no lado do AS400 tem cerca de 60000 linhas com 20 campos (texto, datas, numeros).

E o objectivo seria inserir no MySQL os dados "novos" que existem no AS400 e que ainda não estão no MySQL.

Obrigado desde já pelo feedback e pelos cenários possíveis.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
apocsantos

Boa tarde,

Uma vez que 60.000 linhas com 20 colunas ainda é um volume de dados considerável, penso que uma boa opção passa-se pela realização da "tarefa" numa hora em que tanto o AS/400 como o servidor MySQL tivessem menor fluxo de trabalho. Pensando bem neste assunto, o ideal seria até fazer as coisas de forma "assincrona", para evitar uma sobre-carga em qualquer um dos lados (DB2 / MySQL). Tens suporte para query's assincronas no proprio driver JDBC.

Adicionalmente como pretendes que vá "incrementando" os registos do lado do MySQL, podes sempre utilizar um "cron-job" para executar a query ao DB2 receber a resultset e inseri-la no MySQL.

Pessoalmente eu faria isto com Java, por uma questão simples de estar habituado, mas tendo em conta o volume de dados, penso que possas e devas considerar outras linguagens com que te sintas mais confortável. Python seria uma opção, por exemplo, uma vez que tem bom suporte para DB2 e para MySQL e caso precises de fazer "transformação" dos dados podes sempre usar XSLT para o fazer.

Cordiais cumprimentos,

Apocsantos

  • Voto 1

"A paciência é uma das coisas que se aprendeu na era do 48k" O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito"

assinatura.jpg

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
M6

Estou plenamente de acordo com o apocsantos, uma aplicação Java ou uma ferramenta de ETL para fazer isso é o melhor.

Aconselho o JTOpen como driver de JDBC e, se se optar por uma ferramenta de ETL, aconselho o Pentaho, na sua versão open source, o Kettle.

  • Voto 2

10 REM Generation 48K!
20 INPUT "URL:", A$
30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50
40 PRINT "404 Not Found"
50 PRINT "./M6 @ Portugal a Programar."

 

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.