Closed jeff-pal closed 2 years ago
Tem algum print ou mensagem de erro? Quando vc diz "morre", o que exatamente vc se refere? Dependendo do arquivo esse processo leva um tempo considerável, pq é um insert grande.
Em alguns casos, o processo é interrompido e exibida a mensagem Killed
somente. Ao rodar o código em um terminal do VS Code obtive essa interrupção na inserção de Empresas, mas no terminal padrão funcionou normalmente. No entanto, minha hipótese sobre o terminal do VS Code não é válida, pois obtive essa interrupção no terminal padrão também, na inserção de Estabelecimentos. Ou seja, em alguns casos, os quais ainda não identifiquei o padrão, ocorre essa falha:
PS. O processo foi interrompido minutos depois da mensagem Skipping line 2606880
.
@jeff-pal isso talvez possa estar ocorrendo por lack de memória. Qual a configuração da máquina que vc está tentando rodar?
Veja que no arquivo do SIMPLES
eu fiz um esquema de particionamento para inserir no DB, porque no meu laptop local estava dando lack de memória na hora de carregar o dataframe - não aguentou nos meus 8gb de ram. Devido a isso, apenas no arquivo do simples (que era o que estava dando lack), eu criei aquela estrutura de particionamento e aí funcionou normalmente.
Estou achando que vc pode estar tendo lack nesses outros arquivos. Se for isso, a solução seria implementar aquela estrutura também para os demais (empresa, estabelecimento e socio).
'lack de memória', foi o que eu imaginei @aphonsoar, obrigado pela confirmação! Estou trabalhando na implementação de segmentação da leitura (em partes) para todas as inserções, seguindo um pouco do que você fez na inserção do Simples. Além disso, estou tento muito problema com encoding. Até implementei a detecção de file encoding, mas ainda assim em alguns arquivos estou tendo erro. Na imagem abaixo, a leitura do primeiro arquivo funcionou normalmente, já no segundo ocorreu erro:
Minha configuração:
É memória mesmo então, certeza - E isso que seu computador é melhor que o meu. Quando eu fiz, eu estava com td fechado, nenhuma aba do chrome nem nada. Mas de qualquer forma é bom ter essa implementação mesmo para funcionar em "qualquer" ambiente.
Que bom que vc está implementando a separação das inserções, como do Simples. Vou deixar essa com vc então, tudo bem? Se vc não conseguir, ou estiver sem tempo, me avisa para eu fazer, ok?
Sobre o encoding, não tenho nenhuma outra ideia a princípio, vou dar uma analisada.
A parte da fragmentação pode deixar comigo, inclusive, quando estiver pronto vou te mostrar a implementação de uma função/método que será reutilizada para todas as inserções, tipo assim:
mas ainda vou melhorar alguns detalhes, testar e validar, daí te mostro para você vê se é válido.
Notei que no terminal do VS Code, o processo 'morre' na inserção de dados no banco, na execução de
.to_sql()
.