Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
O arquivo anexo é o segundo de uma serie de extratores que tem um exemplo de como é possível fazer um extrator de MySQL para QVD.
No desenvolvimento em camadas, um aplicativo assim é útil principalmente na primeira, onde os dados são transformados diretamente para QVD, exatamente como estão disponíveis na origem.
Um pequeno ajuste no script, pode gerar arquivos texto com qualquer separador de campo ou incluir uma regra para gravar apenas as tabelas que contém dados, isso fica por conta da criatividade de cada um.
Também tem uma pequena análise do banco de dados, com alguns gráficos e listas da estrutura.
Espero que seja útil, abraço.
Aderlan Rodrigues
Professor, Analista e Arquiteto de Dados
🌎 www.BIdeAZ.com.br 💡 Youtube/bideaz 💡 Instagram/bideaz.ead
"Nada é tão inútil quanto fazer eficientemente o que não deveria ser feito." (Peter Drucker)
Como contribuição, segue um pequeno script que usei para extrair todas as tabelas de um determinado banco de dados MySQL (via ODBC), e gerar um QVD para cada tabela, sem qualquer transformação de dados. Está bastante comentado porque foi usado para fins didáticos, e penso que pode interessar ao grupo.
ODBC CONNECT TO MySQL; set BD = 'nomedobanco'; TRACE Banco de dados '$(BD)' selecionado.; TRACE Buscando e carregando tabelas do banco.; Tabelas: SQL select TABLE_NAME from information_schema.tables where table_schema = '$(BD)'; set TabelaAtual = 'NULO'; let Registros = NoOfRows('Tabelas'); TRACE Encontrada(s) $(Registros) tabela(s) no banco de dados $(BD).; for i = 0 to $(Registros)-1 LET TabelaAtual = peek('TABLE_NAME',i,'Tabelas'); $(TabelaAtual): SQL select * from $(BD).$(TabelaAtual); STORE $(TabelaAtual) INTO $(TabelaAtual).qvd; TRACE Criado QVD para a tabela $(TabelaAtual).; DROP TABLE $(TabelaAtual); next i TRACE Script concluído.;
Como contribuição, segue um pequeno script que usei para extrair todas as tabelas de um determinado banco de dados MySQL (via ODBC), e gerar um QVD para cada tabela, sem qualquer transformação de dados. Está bastante comentado porque foi usado para fins didáticos, e penso que pode interessar ao grupo.
ODBC CONNECT TO MySQL; set BD = 'nomedobanco'; TRACE Banco de dados '$(BD)' selecionado.; TRACE Buscando e carregando tabelas do banco.; Tabelas: SQL select TABLE_NAME from information_schema.tables where table_schema = '$(BD)'; set TabelaAtual = 'NULO'; let Registros = NoOfRows('Tabelas'); TRACE Encontrada(s) $(Registros) tabela(s) no banco de dados $(BD).; for i = 0 to $(Registros)-1 LET TabelaAtual = peek('TABLE_NAME',i,'Tabelas'); $(TabelaAtual): SQL select * from $(BD).$(TabelaAtual); STORE $(TabelaAtual) INTO $(TabelaAtual).qvd; TRACE Criado QVD para a tabela $(TabelaAtual).; DROP TABLE $(TabelaAtual); next i TRACE Script concluído.;
Esse é o script modelo "chupa cabra". Faz o download de um banco inteiro em arquivos QVD desde que você tenha espaço em seu disco. Use-o com moderação.
Um abraço,
Pablo
Espaço em disco é realmente um limitador, e convém avaliar o tamanho do banco antes de executar. O que observei usando-o foi que os QVDs resultantes possuem entre 30% e 50% do tamanho das tabelas originais no banco MySQL, o que está dentro do esperado pela compressão do QVD.
O Pablo lembrou bem.
O que colocamos aqui não são regras, a grande parte do material é didático, ou seja, para cada caso e situação deverá ser devidamente avaliado e feito os ajustes necessários.
O script do Marco está muito bom, parabéns Marco e obrigado por compartilhar.
Abraço.
A redução é maior ainda se considerar as tabelas que tem muitos indices, que também ocupam um bom espaço no banco de dados.
A redução é maior ainda se você considerar tabelas que tem muitos índices. Eles também ocupam um grande espaço no banco de dados.
Esta semana lembrei do script chupa-cabra e caiu como uma luva aqui no projeto. 😀