Dasboard com dados oriundos de arquivos gigantes

Big Data

Banco de Dados

13/07/2018

Preciso automatizar a atualização de dashboards com dados oriundos de arquivos gigantes no formato xlsx em torno de 300k de registros e 200 colunas aproximadamente 150MB,
atualmente uso python para baixar o arquivo e converter em .sql e depois insiro no MySQL por meio de comando direto no cmd
logo após executo procedures que criam tabelas com os dados agrupados nos níveis necessários para cada visualização do dashboard
o problema é que este processo é muito lento e como é acumulativo acaba se tornando mais lento ainda no passar do tempo.
Considerando este cenário, penso em migrar para MongoDB. Gostaria de saber se alguem pode informar se terei bons resultados
com a migração ou alguma outra sugestão para solucionar o problema.
Obs: Tudo deve ser feito com tecnologias open source que rodem na intranet, os dashboards são paginas em php com auxilio de algumas libs javascript
Poncio Oliveira

Poncio Oliveira

Curtidas 0

Melhor post

Leandro Meili

Leandro Meili

16/07/2018

"python para baixar o arquivo e converter em .sql e depois insiro no MySQL" -- Aqui já tem muita gordura pra tirar do seu processo.

Se você já está usando python, abra uma conexão com o banco e insira os dados direto, sem converter em .sql

Para aliviar a carga e não deixar sua máquina sem memória, faça essa inserção em batches (faça um loop que lê só 10,000 linhas por vez). Isso vai ajudar.
Outra coisa. Nas configurações do MySQL, desligue o autocommit e os logs quando fizer as cargas.

Pra BI, outra dica é você criar tabelas com os dados já agregados, reduzindo muito os tempos de queries para os dashboards.
Dica de leitura: ETL Toolkit do Kimball.
GOSTEI 3

Mais Respostas

Venancio Alves

Venancio Alves

13/07/2018

Olá Poncio Elias!

Se o problema é o desempenho do banco de dados, consultas pesadas, a migração será muito boa, vai ganhar muito desempenho.

GOSTEI 0
Poncio Oliveira

Poncio Oliveira

13/07/2018

Obrigado pela recomendação de leitura, tenho muito ainda a evoluir no ETL, quanto a técnica sobre python, na verdade, a forma que falou foi a primeira tentativa que fiz e pelo menos nos meus testes praticos ficou mais rápido convertendo tudo em sql e dando a carga em um comando só, por hora, vou tentar as dicas de configuração do mysql.
GOSTEI 0
POSTAR