<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<META content="MSHTML 6.00.2900.3660" name=GENERATOR></HEAD>
<BODY>
<DIV dir=ltr align=left><SPAN class=073382113-20052010><FONT face=Arial
color=#0000ff size=2>o problema eh q teria de lidar com o sqldr (oracle) e o
bcpin (sybase). Nao posso usar base de teste; apenas prod 2 prod. Os arquivos
vem de mainframe. Preciso comparar conteudo de campos para garantir que estejam
em sincronia (nao.. nao tem um lastUpdateDate....) Sao dados sensiveis de
companhias que tem permissao do FED para transferir certas
quantias...</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=073382113-20052010><FONT face=Arial
color=#0000ff size=2></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=073382113-20052010><FONT face=Arial
color=#0000ff size=2>Aqui esta uma ideia:</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=073382113-20052010></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=073382113-20052010> <FONT
face=Arial><FONT color=#0000ff size=2>1) pego o arquivo e usando a PK dele (um
codigo unico e obrigatorio, global da empresa no FED) gero um hash pros campos
que quero comparar</FONT></FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN
class=073382113-20052010> <FONT
face=Arial color=#0000ff size=2>carrego esse arquivo no dbms que
quero fazer comparacao (usando sqldr / bcpin) - talvez de 300 em 300 mil
</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=073382113-20052010></SPAN><SPAN
class=073382113-20052010><FONT face=Arial color=#0000ff
size=2> (hj o cadastro eh mais de 1
milhao mas continua crescendo. nao posso correr o risco de enche a temp do
banco)</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=073382113-20052010> <FONT
face=Arial><FONT color=#0000ff size=2>1.1) pros IDS carregados gero em outra
tabela temporaria os hashes dos registros que ja estavam no dbms e comparo os
hashes. </FONT></FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=073382113-20052010> <FONT
face=Arial><FONT color=#0000ff size=2>1.2) Os IDS que tem hashes separados vao
pra minha tabela dedo duro dos registros fora de
sync.</FONT></FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=073382113-20052010> <FONT
face=Arial color=#0000ff size=2>1.3) limpa a tabela dos hashes e repete 1.1 e
1.2 ateh o final do arquivo</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=073382113-20052010> <FONT
face=Arial color=#0000ff size=2>1.4) manda os arquivos fora de sync pro
mainframe, apaga as temp,</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=073382113-20052010> <FONT
face=Arial color=#0000ff size=2>1.5) cd /pub; more beer; while(true) do;
sleep; done</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=073382113-20052010><FONT face=Arial
color=#0000ff size=2></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=073382113-20052010><FONT face=Arial
color=#0000ff size=2>razoavel? </FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=073382113-20052010>
</SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=073382113-20052010><FONT face=Arial
color=#0000ff size=2></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=073382113-20052010><FONT face=Arial
color=#0000ff size=2></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=073382113-20052010><FONT face=Arial
color=#0000ff size=2></FONT></SPAN> </DIV>
<DIV class=OutlookMessageHeader lang=en-us dir=ltr align=left>
<HR tabIndex=-1>
<FONT face=Tahoma size=2><B>From:</B>
saopaulo-pm-bounces+carlos.guarnieri=citi.com@pm.org
[mailto:saopaulo-pm-bounces+carlos.guarnieri=citi.com@pm.org] <B>On Behalf Of
</B>Andre Carneiro<BR><B>Sent:</B> quinta-feira, 20 de maio de 2010
08:41<BR><B>To:</B> saopaulo-pm@mail.pm.org<BR><B>Subject:</B> Re: [SP-pm]
Comparando grande massa de dados<BR></FONT><BR></DIV>
<DIV></DIV>Existe o sqlldr para Oracle(mas você já sabia disso :D). Ele serve
exatamente para carregar grandes quantidades de dados
rapidamente.<BR><BR>Existem alguns módulos para manipular e executar cargas de
dados no CPAN, utilizando o SQLLoader. O que eu achei mais simples foi esse
aqui:<BR><BR><A
href="http://search.cpan.org/~ezra/Oracle-SQLLoader-0.9/lib/Oracle/SQLLoader.pm">http://search.cpan.org/~ezra/Oracle-SQLLoader-0.9/lib/Oracle/SQLLoader.pm</A><BR><BR>O
problema é que não é atualizado desde 2006!!! <BR><BR><BR><BR>
<DIV class=gmail_quote>2010/5/19 Guarnieri, Carlos [ICG-IT] <SPAN dir=ltr><<A
href="mailto:carlos.guarnieri@citi.com">carlos.guarnieri@citi.com</A>></SPAN><BR>
<BLOCKQUOTE class=gmail_quote
style="PADDING-LEFT: 1ex; MARGIN: 0pt 0pt 0pt 0.8ex; BORDER-LEFT: rgb(204,204,204) 1px solid">
<DIV>
<DIV dir=ltr align=left><SPAN><FONT face=Arial color=#0000ff size=2>entao...
sao oracle e sybase... mas como os arquivos sao grandes to com medo de joga
pro banco.</FONT></SPAN></DIV></DIV></BLOCKQUOTE>
<DIV><BR>Deixe disso! Faça muitos testes em tabelas temporárias(se possível em
uma base de testes), e seja feliz!<BR><BR></DIV>
<BLOCKQUOTE class=gmail_quote
style="PADDING-LEFT: 1ex; MARGIN: 0pt 0pt 0pt 0.8ex; BORDER-LEFT: rgb(204,204,204) 1px solid">
<DIV>
<DIV dir=ltr align=left><SPAN><FONT face=Arial color=#0000ff
size=2></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN><FONT face=Arial color=#0000ff size=2>Tava
pensando mais em pegar os dados e comparar no unix...</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN><FONT face=Arial color=#0000ff
size=2></FONT></SPAN> </DIV></DIV></BLOCKQUOTE>
<DIV><BR>Que tipo de comparação?<BR><BR> </DIV>
<BLOCKQUOTE class=gmail_quote
style="PADDING-LEFT: 1ex; MARGIN: 0pt 0pt 0pt 0.8ex; BORDER-LEFT: rgb(204,204,204) 1px solid">
<DIV>
<DIV dir=ltr align=left><SPAN><FONT face=Arial color=#0000ff size=2>o q
acham?</FONT></SPAN></DIV></DIV></BLOCKQUOTE>
<DIV><BR>Não sei, mais detalhes por favor(se possível)!!!<BR><BR> </DIV>
<BLOCKQUOTE class=gmail_quote
style="PADDING-LEFT: 1ex; MARGIN: 0pt 0pt 0pt 0.8ex; BORDER-LEFT: rgb(204,204,204) 1px solid">
<DIV><BR>
<DIV lang=en-us dir=ltr align=left>
<HR>
<FONT face=Tahoma size=2><B>From:</B> saopaulo-pm-bounces+carlos.guarnieri=<A
href="http://citi.com" target=_blank>citi.com</A>@<A href="http://pm.org"
target=_blank>pm.org</A> [mailto:<A
href="mailto:saopaulo-pm-bounces%2Bcarlos.guarnieri"
target=_blank>saopaulo-pm-bounces+carlos.guarnieri</A>=<A
href="http://citi.com" target=_blank>citi.com</A>@<A href="http://pm.org"
target=_blank>pm.org</A>] <B>On Behalf Of </B>Andre Carneiro<BR><B>Sent:</B>
quarta-feira, 19 de maio de 2010 18:09<BR><B>To:</B> <A
href="mailto:saopaulo-pm@mail.pm.org"
target=_blank>saopaulo-pm@mail.pm.org</A><BR><B>Subject:</B> Re: [SP-pm]
Comparando grande massa de dados<BR></FONT><BR></DIV>
<DIV>
<DIV></DIV>
<DIV class=h5>
<DIV></DIV><BR><BR>
<DIV class=gmail_quote>Em 19 de maio de 2010 17:39, Guarnieri, Carlos [ICG-IT]
<SPAN dir=ltr><<A href="mailto:carlos.guarnieri@citi.com"
target=_blank>carlos.guarnieri@citi.com</A>></SPAN> escreveu:<BR>
<BLOCKQUOTE class=gmail_quote
style="PADDING-LEFT: 1ex; MARGIN: 0pt 0pt 0pt 0.8ex; BORDER-LEFT: rgb(204,204,204) 1px solid">Pessoal,<BR>Preciso
fazer a reconciliacao de um banco de dados. Essa reconciliacao tera de rodar
automatica todo final de semana para garantir que alguns sistemas estejam em
sync. Não temos poder sobre o formato do arquivo que vamos receber, mas
terei de comparar com algumas tabelas em nosso banco de dados.<BR><BR>Enfim
temos umas 50 colunas (algumas de endereco [char 64] / mas a maioria char
20]) e mais de 1 milhao de registros. Entao não quero fazer um sqlload em
nosso banco para comparar via banco.<BR>Alguem tem alguma sugestao
interessante de como comparar esses dados? Criar tabela de espalhamento e
testar um contra outro, exportar o banco no mesmo formato do arquivo e fazer
diff no unix (:d)...<BR><BR>Sugestoes são bem vindas.<BR><BR></BLOCKQUOTE>
<DIV><BR>Certo! <BR><BR>1) qual RDBMS você está usando (Postgres, Oracle,
SQLServer, MySQL) ?;<BR><BR>2) Você mencionou sqlload. Então eu suponho que vc
vai ter que transformar os dados no formato que o sqlload aceita. Se for isso,
você pode usar templates, por exemplo. Um template para cada arquivo recebido
com formato específico, e alguns módulos que receberão os dados e usarão os
templates para formatá-los corretamente;<BR><BR>3) Exitem módulos para você
trabalhar com o sqlload no CPAN. Sugiro que você dê uma procurada e posta o
RDBMS que vc está usando para que nós possamos sugerir algum módulo para
você;<BR><BR><BR><BR>Cheers!<BR> </DIV>
<BLOCKQUOTE class=gmail_quote
style="PADDING-LEFT: 1ex; MARGIN: 0pt 0pt 0pt 0.8ex; BORDER-LEFT: rgb(204,204,204) 1px solid"><BR>Valew<BR>_______________________________________________<BR>SaoPaulo-pm
mailing list<BR><A href="mailto:SaoPaulo-pm@pm.org"
target=_blank>SaoPaulo-pm@pm.org</A><BR><A
href="http://mail.pm.org/mailman/listinfo/saopaulo-pm"
target=_blank>http://mail.pm.org/mailman/listinfo/saopaulo-pm</A><BR></BLOCKQUOTE></DIV><BR><BR
clear=all><BR>-- <BR>André Garcia Carneiro<BR>Analista/Desenvolvedor
Perl<BR>(11)82907780<BR></DIV></DIV></DIV><BR>_______________________________________________<BR>SaoPaulo-pm
mailing list<BR><A
href="mailto:SaoPaulo-pm@pm.org">SaoPaulo-pm@pm.org</A><BR><A
href="http://mail.pm.org/mailman/listinfo/saopaulo-pm"
target=_blank>http://mail.pm.org/mailman/listinfo/saopaulo-pm</A><BR></BLOCKQUOTE></DIV><BR><BR
clear=all><BR>-- <BR>André Garcia Carneiro<BR>Analista/Desenvolvedor
Perl<BR>(11)82907780<BR></BODY></HTML>