Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Salve pessoal!
Estou com um desafio e gostaria de ajuda de voces:
Tenho uma base de dados que hoje esta em 115milhoes de registros. Foi solicitado que eu gere QVD's em blocos de 1 milhão cada. Tenho um campo SEQ_ID que posso usar para isso mas, não sei como montar essa sintaxe de gravação em blocos. Alguem teria algum exemplo para ajudar?
Agradeço muito.
Bom dia, de uma olhada nesta resposta https://community.qlik.com/t5/Qlik-Brasil/Como-dividir-o-store-de-um-qvd-em-v%C3%A1rios-qvds/gpm-p/1..., pode ser que lhe ajude.
Ajuda bastante sim! Só preciso descobrir agora como montar o range para gravar, mas deu uma luz boa já.
Valeu
Esse campo SEQ_ID realmente é sequencial, começando do 1 até determinado número, sem pular linha?
Se sim, poderia fazer algo desse tipo:
SET vL.QuantidadeLinhasPorQVD = 1000000;
QUANTIDADE_LINHAS_TABELA:
SQL SELECT
MAX(SEQ_ID) as ULTIMA_LINHA
FROM SUA_TABELA;
LET vL.QuantidadeLinhasTabela = Peek('ULTIMA_LINHA', 0, 'QUANTIDADE_LINHAS_TABELA');
DROP TABLE QUANTIDADE_LINHAS_TABELA;
LET vL.QuantidadeCiclosNoFor = Ceil($(vL.QuantidadeLinhasTabela)/$(vL.QuantidadeLinhasPorQVD));
FOR vL.x = 0 TO $(vL.QuantidadeCiclosNoFor)-1
LET vL.InicioLinhas = $(vL.QuantidadeLinhasPorQVD) * vL.x;
LET vL.TerminoLinhas = $(vL.InicioLinhas) - 1 + $(vL.QuantidadeLinhasPorQVD);
TABELA:
SQL SELECT
*
FROM SUA_TABELA
WHERE SEQ_ID >= $(vL.InicioLinhas) AND SEQ_ID <= $(vL.TerminoLinhas);
STORE TABELA INTO [lib://SUA_CONEXAO/SEU_QVD_$(vL.InicioLinhas)_$(vL.TerminoLinhas).qvd] (qvd);
DROP TABLE TABELA;
NEXT vL.x;