:: Izak.pt ::

Also known as Mozack!

[HOW TO] Dividir ficheiros grandes em partes pequenas?

Olá,

Hoje venho falar-vos de um comando de terminal bastante útil que serve para dividir ficheiros (CSV, txt, etc) em partes mais pequenas. Por norma, quando precisamos adicionar ou processar dados de um ficheiro CSV para inserir em bases de dados, o tamanho do ficheiro pode bem influenciar a performance do servidor e, em alguns casos, o time-out ou a quantidade de memória consumida são a consequência desse processamento.

Assim, trago-vos uma solução para que possam dividir esses ficheiros gigantes em ficheiros de tamanho mais reduzido. E, tudo isso, recorrendo ao Terminal do MAC.

Neste exemplo vou usar um ficheiro de cerca de 48 000 linhas que preciso inserir na Base de Dados, no entanto, não vou utilizar todos os dados que ele tem, dessa forma, vou ter que recorrer ao php para processar o CSV e inserir apenas os dados que pretendo na Base de Dados.

Como não pretendo consumir toda a memória do servidor nem ficar à espera ou colocar 1 ficheiro de cada vez, fiz um script que pega todos os ficheiros CSV da pasta e vai percorrendo 1 a 1 com redirects e parâmetros para que saiba sempre qual foi o último ficheiro processado.

Assim, dividi (com os comandos de baixo) o ficheiro em partes de 2000 linhas cada e executei o script que os percorreu a todos até não haver ficheiros na pasta.

Bom, como é para falar de divisão que escrevo este post, aqui os passos a seguir para a divisão de gigantes em pequenas partes.

Para começar, sigam os passos:


Feito!

Ficaste com dúvidas? Pergunta-me!

Izak Jesus

view all post
Leave a comment

Leave a Reply

Este site utiliza o Akismet para reduzir spam. Fica a saber como são processados os dados dos comentários.

By Daniele Zedda • 18 February

← PREV POST

By Daniele Zedda • 18 February

NEXT POST → 34
Share on
2007 - 2024 © izak.pt Todos os direitos reservados. Super charged by Dotec and vitaminized by Daniel Jesus.