Modo de importação de Dados de Forma Paralela
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.
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.
João Domingos
Curtidas 0
Melhor post
Artur Barth
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.
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.
GOSTEI 2
Mais Respostas
Chromusmaster
29/03/2019
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.
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?
GOSTEI 1
João Domingos
29/03/2019
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.
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.
GOSTEI 0
João Domingos
29/03/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.
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!
GOSTEI 0