IMPORTAR ARQUIVO TXT ENORME
#490428 - 14/09/2019 06:04:52
pessoal, me passaram um arquivo txt de quase 5gbs, me passaram o layout de como sao as informacoes, e tranquilo, a leitura faco sem problemas, até usando threads leio o arquivo completo, separando até os 5 tipos de dados q tem no arquivo.....esse arquivo tem um comprimento de linha, e um identificador q separa os dados em 5 categorias....
meu problema esta em inserir os dados em um mysql
leva uma eternidade, e ainda esta dando erros na hora de inserir, aleatoriamente....
eu estou lendo e inserindo os dados em 5 datatables dinamicos, a cada 50K linhas em cada um, pauso a thread de leitura e coloco pra gravar, ao fim da gravacao limpo o datatable pra voltar a preencher, e vou nesse ciclo, entao fica apenas um datatable sendo passado pro banco por vez, pauso as threads, pq tmb tive erro de enviar o datatable pra thread, limpar pra continuar preenchendo e no meio do caminho na thread de inclusao o datatable se tornar vazio.....ja fiz de varias formas e to misturando tudo
tentei montar um insert com parametros, pra fazer varios inserts no mesmo comando, nao consegui....limitei em 50K ali pra abrir o banco apenas uma vez e o tempo permitir todos os 50K inserts, e tmb pra nao consumir toda memoria do computador.....na verdade ja fiz de varias formas, e nao vejo melhora alguma, alem do erro aleatorio no comando insert
q estrategia usariam pra essa bomba? ler o arquivo em outra coisa q nao um datatable? insert multiplo?
#490432 - 14/09/2019 15:31:20
Última edição em 15/09/2019 18:42:01 por NICKOSOFT
a solução foi um tal bulk
pra constar, em um amd 1.65ghz dual core, c 4gb de memoria, consegui ler quase 9gb dos dados, o q deu pouco mais de 8 milhões de registros e passa-lo ao banco de dados em 47min, ainda me valendo de 6 threads