Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Boa tarde, como realizo a gravação de um QVD de vários selects?
André, cada qvd armazena apenas uma tabela do QlikView. Se você quer adicionar informação de várias tabelas dentro do mesmo QVD, então você deve uni-las por JOIN ou CONCATENATE.
e depois de fazer o que o Yuri falou, usa-se o comando
store TABELA into nomedoarquivo.qvd (qvd);
Eu tenho no script o seguinte select;
OLEDB CONNECT TO [Provider=OraOLEDB.Oracle.1.....
SELECT DISTINCT
a.escola,
b.materia,
b.aluno
FROM
dados a,
alunoss b
WHERE....
......
Vou ter que fazer um QVD para cara tabela do banco de dados?
Andre,
o QVD é como o Qlik tem em memoria a tabela. Sendo para cada tabela um QVD.
Podes usar o script abaixo ao final do seu (que não fui eu que fiz,achei na comunidade e não lembro aonde, para poder valorizar o criador,....)
// Gerar varios QVDs
//
FOR i = 1 to NoOfTables()
LET vTableName = TableName($(i)-1);
LET vOutfile = '$(vTableName).qvd';
STORE [$(vTableName)] INTO [$(vOutfile)] (qvd);
NEXT i
Andre,
Você deve carregar a tabela a, gerar um QVD e depois carregar a tabela b e gerar outro QVD. Após feito isto vc deve realizar o join ou concatenate entre as dois qvds gerados.
João Carlos Ferreira
Resumindo então , se eu tenho um select na base de dados oracle, avançado com union all, subquerys, left joing, etc... onde nesses selects é realizado em diversas tabelas.
Terei que fazer um QVD para cada uma delas tabelas?
Como boas práticas de ETL sim. Você primeiro realiza a extração dos dados (tabelas), depois você faz as transformações dos dados e os relacionamentos das tabelas e por ultimo você carrega as tabelas relacionadas com o modelo de dados pronto.
João Carlos Ferreira
André, favor fechar o post caso sua dúvida tenha sido esclarecida
André, apenas complementando o que o João citou, você não necessariamente precisa gerar um QVD para cada tabela do seu DB. Você pode montar um SELECT com JOINs, UNIONs, subqueries e gerar apenas um QVD para tudo isso, no entanto, com isso você estará "jogando todo peso" para seu DB.
As boas práticas de ETL seriam como já foi descrito:
Ajudou? Marque a resposta!
Edécio Santos.