Modo de importação de Dados de Forma Paralela

29/03/2019

10

Boa Tarde galera.

Então estou com um serviço que preciso achar qual é o melhor modo de importar dados paralelamente. Porque o que acontece aqui, são várias bats que executam varios scripts, mas o problema é que vai seguindo uma ordem, e caso alguma dessas importações dê algum erro, as próximas não executam. Queria saber de vocês se conhecem algum outro modo de importar dados paralelamente.
Responder

Post mais votado

02/04/2019

O que eu já implementei foi o seguinte.
1. Verifiquei a dependência entre os dados. Todas as tabelas não dependentes são importadas em paralelo.
Ex: Tabela GRUPOS e Tabela TIPOPRODUTO por exemplo. Ambas as tabelas não possuem FK de outras tabelas em suas estruturas, consequentemente é possível criar Threads e realizar a importação das mesmas em paralelo.
2. Identifiquei uma ordem de tabelas e dependentes.
Ex: Sem dependência = Ordem 0. Com dependência da Ordem 0 = Ordem 1. Com dependência da Ordem 1 = Ordem 2.
Ordem 0
Ordem 0
Ordem 0
Ordem 0 Count = 3 então cria-se três Threads.
Ordem 1
Ordem 1
Count = 2 então cria-se duas Threads.
Ordem 2
Count = 1 então não cria Threads.

Essa foi a solução que encontrei para um problema onde precisava realizar a importação de 280 entidade em um banco de dados com mais de 2800 entidades.
Responder

Mais Posts

01/04/2019

Chromusmaster

Boa Tarde galera.

Então estou com um serviço que preciso achar qual é o melhor modo de importar dados paralelamente. Porque o que acontece aqui, são várias bats que executam varios scripts, mas o problema é que vai seguindo uma ordem, e caso alguma dessas importações dê algum erro, as próximas não executam. Queria saber de vocês se conhecem algum outro modo de importar dados paralelamente.


Os dados estão sendo importados para alguma base de dados? Se sim, já pensou em usar bulk insert?
Se não para onde os dados estão sendo importados? Consegue detalhar melhor todo o contexto?
Responder

01/04/2019

João Domingos

Boa Tarde galera.

Então estou com um serviço que preciso achar qual é o melhor modo de importar dados paralelamente. Porque o que acontece aqui, são várias bats que executam varios scripts, mas o problema é que vai seguindo uma ordem, e caso alguma dessas importações dê algum erro, as próximas não executam. Queria saber de vocês se conhecem algum outro modo de importar dados paralelamente.


Os dados estão sendo importados para alguma base de dados? Se sim, já pensou em usar bulk insert?
Se não para onde os dados estão sendo importados? Consegue detalhar melhor todo o contexto?



Boa Tarde

Então cara a importação funciona da seguinte forma, ele junta todos os arquivos e logo depois faz um FTP, mas a questão ta dando problema é que esses scripts executam em ordem cronológica, o que acaba acarretando um efeito dominó caso alguma das importações dê erro.
Preciso que algumas importações sejam feitas em paralelo, para que uma não interfira na outra.
Responder

02/04/2019

João Domingos

O que eu já implementei foi o seguinte.
1. Verifiquei a dependência entre os dados. Todas as tabelas não dependentes são importadas em paralelo.
Ex: Tabela GRUPOS e Tabela TIPOPRODUTO por exemplo. Ambas as tabelas não possuem FK de outras tabelas em suas estruturas, consequentemente é possível criar Threads e realizar a importação das mesmas em paralelo.
2. Identifiquei uma ordem de tabelas e dependentes.
Ex: Sem dependência = Ordem 0. Com dependência da Ordem 0 = Ordem 1. Com dependência da Ordem 1 = Ordem 2.
Ordem 0
Ordem 0
Ordem 0
Ordem 0 Count = 3 então cria-se três Threads.
Ordem 1
Ordem 1
Count = 2 então cria-se duas Threads.
Ordem 2
Count = 1 então não cria Threads.

Essa foi a solução que encontrei para um problema onde precisava realizar a importação de 280 entidade em um banco de dados com mais de 2800 entidades.


Boa Tarde
Realmente a solução que eu também encontrei foi a de fazer Threads, pensamos igual.

Obrigado pela ajuda!
Responder