[SP-pm] Comparando grande massa de dados

Guarnieri, Carlos [ICG-IT] carlos.guarnieri at citi.com
Thu May 20 06:31:03 PDT 2010


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 em pm.org [mailto:saopaulo-pm-bounces+carlos.guarnieri=citi.com em pm.org] On Behalf Of Andre Carneiro
Sent: quinta-feira, 20 de maio de 2010 08:41
To: saopaulo-pm em 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

O problema é que não é atualizado desde 2006!!! 




2010/5/19 Guarnieri, Carlos [ICG-IT] <carlos.guarnieri em 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 em pm.org [mailto:saopaulo-pm-bounces+carlos.guarnieri <mailto:saopaulo-pm-bounces%2Bcarlos.guarnieri> =citi.com em pm.org] On Behalf Of Andre Carneiro
	Sent: quarta-feira, 19 de maio de 2010 18:09
	To: saopaulo-pm em 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 em 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 em pm.org
		http://mail.pm.org/mailman/listinfo/saopaulo-pm
		




	-- 
	André Garcia Carneiro
	Analista/Desenvolvedor Perl
	(11)82907780
	

	_______________________________________________
	SaoPaulo-pm mailing list
	SaoPaulo-pm em pm.org
	http://mail.pm.org/mailman/listinfo/saopaulo-pm
	




-- 
André Garcia Carneiro
Analista/Desenvolvedor Perl
(11)82907780

-------------- Pr?xima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/saopaulo-pm/attachments/20100520/35c9842a/attachment.html>


More information about the SaoPaulo-pm mailing list