[SP-pm] Comparando grande massa de dados

Andre Carneiro andregarciacarneiro at gmail.com
Thu May 20 09:23:25 PDT 2010


Nossa! Q confusão!

Deixa eu ver se entendi:

1) Você quer sincronizar uma base Oracle com uma Sybase(vice-versa???);
2) Se vc já vai carregar coisas com o sqlldr numa tabela temporária, já na
base de produção, pra que vc precisa de hashes??? Não entendi. Se os dados
já estão lá, compara com a tabela em produção diretamente com SQL,
procedures etc...(se eu estiver falando besteira, pode me xingar);
3)Você já pensou em utilizar alguma ferramenta de migração de dados ? Se
isso é crítico no seu trabalho, talvez(só uma sugestão) uma solução pronta
possa resolver de maneira mais efetiva( não sei se resolve, mas vi essa
aqui: http://www.swissql.com/products/oracle-to-sybase/oracle-to-sybase.html);


Cheers!



2010/5/20 Guarnieri, Carlos [ICG-IT] <carlos.guarnieri at citi.com>

>  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...
>
> Aqui esta uma ideia:
>
>     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
>         carrego esse arquivo no dbms  que quero fazer comparacao (usando
> sqldr / bcpin) - talvez de 300 em 300 mil
>         (hj o cadastro eh mais de 1 milhao mas continua crescendo. nao
> posso correr o risco de enche a temp do banco)
>     1.1) pros IDS carregados gero em outra tabela temporaria os hashes dos
> registros que ja estavam no dbms e comparo os hashes.
>     1.2) Os IDS que tem hashes separados vao pra minha tabela dedo duro
> dos registros fora de sync.
>     1.3) limpa a tabela dos hashes e repete 1.1 e 1.2 ateh o final do
> arquivo
>     1.4) manda os arquivos fora de sync pro mainframe, apaga as temp,
>     1.5) cd /pub; more beer;  while(true) do; sleep; done
>
> razoavel?
>
>
>
>
>  ------------------------------
> *From:* saopaulo-pm-bounces+carlos.guarnieri=citi.com at pm.org [mailto:
> saopaulo-pm-bounces+carlos.guarnieri<saopaulo-pm-bounces%2Bcarlos.guarnieri>
> =citi.com at pm.org] *On Behalf Of *Andre Carneiro
> *Sent:* quinta-feira, 20 de maio de 2010 08:41
>
> *To:* saopaulo-pm at mail.pm.org
> *Subject:* Re: [SP-pm] Comparando grande massa de dados
>
> Existe o sqlldr para Oracle(mas você já sabia disso :D). Ele serve
> exatamente para carregar grandes quantidades de dados rapidamente.
>
> 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:
>
> http://search.cpan.org/~ezra/Oracle-SQLLoader-0.9/lib/Oracle/SQLLoader.pm<http://search.cpan.org/%7Eezra/Oracle-SQLLoader-0.9/lib/Oracle/SQLLoader.pm>
>
> O problema é que não é atualizado desde 2006!!!
>
>
>
> 2010/5/19 Guarnieri, Carlos [ICG-IT] <carlos.guarnieri at citi.com>
>
>>  entao... sao oracle e sybase... mas como os arquivos sao grandes to com
>> medo de joga pro banco.
>>
>
> Deixe disso! Faça muitos testes em tabelas temporárias(se possível em uma
> base de testes), e seja feliz!
>
>
>> Tava pensando mais em pegar os dados e comparar no unix...
>>
>>
>
> Que tipo de comparação?
>
>
>
>>  o q acham?
>>
>
> Não sei, mais detalhes por favor(se possível)!!!
>
>
>
>>
>>  ------------------------------
>> *From:* saopaulo-pm-bounces+carlos.guarnieri=citi.com at pm.org [mailto:
>> saopaulo-pm-bounces+carlos.guarnieri<saopaulo-pm-bounces%2Bcarlos.guarnieri>
>> =citi.com at pm.org] *On Behalf Of *Andre Carneiro
>> *Sent:* quarta-feira, 19 de maio de 2010 18:09
>> *To:* saopaulo-pm at mail.pm.org
>> *Subject:* Re: [SP-pm] Comparando grande massa de dados
>>
>>
>>
>> Em 19 de maio de 2010 17:39, Guarnieri, Carlos [ICG-IT] <
>> carlos.guarnieri at citi.com> escreveu:
>>
>>> Pessoal,
>>> 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.
>>>
>>> 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.
>>> 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)...
>>>
>>> Sugestoes são bem vindas.
>>>
>>>
>> Certo!
>>
>> 1) qual RDBMS você está usando (Postgres, Oracle, SQLServer, MySQL) ?;
>>
>> 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;
>>
>> 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ê;
>>
>>
>>
>> Cheers!
>>
>>
>>>
>>> Valew
>>> _______________________________________________
>>> SaoPaulo-pm mailing list
>>> SaoPaulo-pm at pm.org
>>> http://mail.pm.org/mailman/listinfo/saopaulo-pm
>>>
>>
>>
>>
>> --
>> André Garcia Carneiro
>> Analista/Desenvolvedor Perl
>> (11)82907780
>>
>> _______________________________________________
>> SaoPaulo-pm mailing list
>> SaoPaulo-pm at pm.org
>> http://mail.pm.org/mailman/listinfo/saopaulo-pm
>>
>
>
>
> --
> André Garcia Carneiro
> Analista/Desenvolvedor Perl
> (11)82907780
>
> _______________________________________________
> SaoPaulo-pm mailing list
> SaoPaulo-pm at pm.org
> http://mail.pm.org/mailman/listinfo/saopaulo-pm
>



-- 
André Garcia Carneiro
Analista/Desenvolvedor Perl
(11)82907780
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.pm.org/pipermail/saopaulo-pm/attachments/20100520/bb11b7f6/attachment.html>


More information about the SaoPaulo-pm mailing list