Closed ghost closed 6 years ago
@leonardo-minora , @tenpontes tem como me dar uma luz, ae?
O problema de ser UTF-16 se resolve com ICONV. Nem leva muito tempo. Faz uma vez e tá feito.
O arquivo descompactado não tem tudo isso não (5gb). Aqui pelo menos ele fica com algo em torno de 2.5 gb.
Quanto ao SGBD fica a critério de vcs. Podem subir o CSV num banco caso achem que vai melhorar a performance. Eu faço analise de dados desses dados e só trabalho com CSV. Nunca pedi acesso direto ao banco ou acesso a alguma view pq o pessoal da Infra da Enap é cruel... Além disso que formos depender de acesso a banco para sair do outro lado com a solução, vamos ficar esperando uma eternidade...
Certo, tipo, fui ver o formato do arquivo csv que vocês me passaram, e na verdade, nem UTF-16 ele é:
$ file -i 2018021902_matriculas_webcef.csv
>>> 2018021902_matriculas_webcef.csv: application/octet-stream; charset=binary
Eu pesquisei como que faz pra converter um arquivo binário, e alguns cara disseram pra usar o comando cat <INPUT_FILE> | tr -d '\0' > <OUTPUT_FILE>
só que acaba sendo convertendo para o formato UTF-16LE, que tipo, ainda apresenta um monte de problemas.
Se tiver como, tem como vc me passar os comandos certinhos pra eu converter esse arquivo de binário para um encoding que a gente possa usar? (UTF-8 ou UTF-16)
iconv -f UTF-16LE -t UTF-8 file_in > file_out
@tenpontes, tem algum problema deu pedir o seu número para gente manter contato pelo whatsapp? Tem alguns dados sigilosos que talvez não sejam interessantes de serem mostrados aqui. Gostaria de lhe enviar a saída de umas das leituras do csv para vc me ajudar a lidar com alguns problemas.
Caso não tenha problema, vou pedir pro Minora me passar o número. Não é interessante passar por aqui não, já que é seu número pessoal.
E ae, povo.. Então, tava tentando ler o CSV que vocês compartilharam comigo, mas temos alguns problemas.
O primeiro, é de encoding, já que tá formatado pro UTF-16, nós temos que decodificar TODO o CSV para então podermos utilizar ele de forma apropriada para a aplicação.
O segundo problema, que é acarretado justamente pelo primeiro, é a performance. Diga aí, o programa já tem que decodificar um arquivo com mais de 5gb de informações (que irá crescer ainda mais conforme o tempo), e ainda buscar linha-a-linha os dados de algum usuário. Tipo, imagina só o cenário de um monte de gente fazendo requisição simultaneamente para o servidor, vai trava tudo!!
Gostaria de saber se existe algum SGBD que eu possa consultar ou é só esse CSV mesmo? Pq se for só esse CSV, precisaremos discutir alguma estratégia para resolver esse problemão.