Qlik Community

Qlik Brasil

Group community for Brazil users. discussion only in Portuguese.

Highlighted
aderlanrm
Valued Contributor

MySQL to QVD

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

aderlan.rodrigues@qway.com.br

6 Replies
Not applicable

Re: MySQL to QVD

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.;
pablolabbe
Valued Contributor II

Re: MySQL to QVD

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

Not applicable

Re: MySQL to QVD

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.

aderlanrm
Valued Contributor

Re: MySQL to 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.

pablolabbe
Valued Contributor II

Re: MySQL to QVD

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.

pablolabbe
Valued Contributor II

Re: MySQL to QVD

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.