<!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>&nbsp;</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>&nbsp;</DIV>
<DIV dir=ltr align=left><SPAN class=073382113-20052010>&nbsp;&nbsp;&nbsp; <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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT 
face=Arial color=#0000ff size=2>carrego&nbsp;esse arquivo no dbms&nbsp; 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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (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>&nbsp;&nbsp;&nbsp; <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>&nbsp;&nbsp;&nbsp; <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>&nbsp;&nbsp;&nbsp; <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>&nbsp;&nbsp;&nbsp; <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>&nbsp;&nbsp;&nbsp; <FONT 
face=Arial color=#0000ff size=2>1.5) cd /pub; more beer;&nbsp; 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>&nbsp;</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>&nbsp;&nbsp;&nbsp; 
</SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=073382113-20052010><FONT face=Arial 
color=#0000ff size=2></FONT></SPAN>&nbsp;</DIV>
<DIV dir=ltr align=left><SPAN class=073382113-20052010><FONT face=Arial 
color=#0000ff size=2></FONT></SPAN>&nbsp;</DIV>
<DIV dir=ltr align=left><SPAN class=073382113-20052010><FONT face=Arial 
color=#0000ff size=2></FONT></SPAN>&nbsp;</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>&lt;<A 
href="mailto:carlos.guarnieri@citi.com">carlos.guarnieri@citi.com</A>&gt;</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>&nbsp;</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>&nbsp;</DIV></DIV></BLOCKQUOTE>
<DIV><BR>Que tipo de comparação?<BR><BR>&nbsp;</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>&nbsp;</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>&lt;<A href="mailto:carlos.guarnieri@citi.com" 
  target=_blank>carlos.guarnieri@citi.com</A>&gt;</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>&nbsp;</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>