Skip to main content
Announcements
Introducing Qlik Answers: A plug-and-play, Generative AI powered RAG solution. READ ALL ABOUT IT!
cancel
Showing results for 
Search instead for 
Did you mean: 
Listmaier
Contributor II
Contributor II

Dúvida Carga Incremental

Bom dia,

Sou novo no Sense e preciso de uma super ajuda! 

Tenho que fazer uma carga incremental aqui no trabalho e estou fazendo um teste primeiro, já tem 2 dias que estou quebrando a cabeça e não dá certo!!!.

Muito obrigado!

Arquivo Excel em anexo:

Meu Código:

[Teste]:
LOAD
[Letters],
[Last_modified]
FROM [lib://Teste/Pasta1.xlsx]
(ooxml, embedded labels, table is Teste);
STORE Teste into [lib://Teste/Teste.qvd](qvd);
//---------------------------------------------------
// ADICIONA NA VARIÁVEL A ÚLTIMA DATA DOS DADOS CARREGADOS
Tab_maxdata:
LOAD
Date(max(Last_modified)) as MaxData
FROM [lib://Teste/Teste.qvd]
(qvd);

Let vMaxData = peek( 'MaxData',0,Teste);

//---------------------------------------------------

Teste3:
LOAD
Letters,
Last_modified
FROM [lib://Teste/Pasta1.xlsx]
(ooxml, embedded labels, table is Teste)
Where [Last_modified] > '$(vMaxData)';

Concatenate


LOAD * FROM [lib://Teste/Teste.qvd](qvd);

STORE Teste3 into [lib://Teste/TesteFinal.qvd](qvd);

//---------------------------------------------------------------

5 Replies
Gabriel_Fernandes
Contributor III
Contributor III

Olá,

Todo esse script é executado? se sim, você está carregando TUDO e criando um QVD do arquivo inteiro a cada execução (Tabela [Teste]).

Assim, se você ja tem o QVD criado da 1ª Carga voce deve:

1º - Criar Variavel da ultima data e Dropar a Tabela "Tab_maxdata";

2º  - Carregar as informações do excel onde Data>Variável;

3º - Concatenar com a carga do QVD ja existente (1ª Carga).

4 º - Realizar o STORE atualizado do QVD.

 

EX (Considerando que já existe o QVD na pasta 'Teste.qvd'):

 

[Tab_maxdata]:
LOAD
Date(max(Last_modified)) as MaxData
FROM
[.\Teste.qvd]
(qvd);

Let vMaxData = peek( 'MaxData',0,Teste);

DROP TABLE Tab_maxdata;

//CARREGA OS NOVOS DADOS
[Novos_Dados]:
LOAD
Letters,
Last_modified
FROM
[.\Pasta1.xlsx]
(ooxml, embedded labels, table is Teste)

Where [Last_modified] > '$(vMaxData)';

Concatenate

//JUNTA OS NOVOS DADOS COM O QVD JA SALVO

[Qvd_Salvo]:
LOAD
Letters,
Last_modified
FROM
[.\Teste.qvd]
(qvd);

STORE Novos_Dados into [./Teste.qvd](qvd);

 

Gabriel_Fernandes
Contributor III
Contributor III

Olá,

Todo esse script é executado? se sim, você está carregando TUDO e criando um QVD do arquivo inteiro a cada execução (Tabela [Teste]).

Assim, se você ja tem o QVD criado da 1ª Carga voce deve:

1º - Criar Variavel da ultima data e Dropar a Tabela "Tab_maxdata";

2º  - Carregar as informações do excel onde Data>Variável;

3º - Concatenar com a carga do QVD ja existente (1ª Carga).

4 º - Realizar o STORE atualizado do QVD.

 

 

 

Listmaier
Contributor II
Contributor II
Author

Muito obrigado,

Vou tentar e retorno aqui se consegui. ok?

Valeu!

Listmaier
Contributor II
Contributor II
Author

Muito obrigado!

Deu certo só tive que criar uma código para primeira carga e no final alterar a tabala novos_dados para a tabela teste.

Segue meu código:

// PRIMEIRA_CARGA:
// LOAD
// Letters,
// Last_modified
// FROM [lib://Teste/Pasta1.xlsx]
// (ooxml, embedded labels, table is Teste);
// STORE [PRIMEIRA_CARGA] into [lib://Teste/Teste.qvd](qvd);
// DROP TABLE PRIMEIRA_CARGA;
// Exit Script;

[Teste]:
LOAD * FROM [lib://Teste/Teste.qvd](qvd);

[Tab_maxdata]:
LOAD
Date(max(Last_modified)) as MaxData
FROM
[lib://Teste/Teste.qvd]
(qvd);

Let vMaxData2 = peek( 'MaxData',0,Teste);

DROP TABLE Tab_maxdata;


//CARREGA OS NOVOS DADOS
[Novos_Dados]:
LOAD
Letters,
Last_modified
FROM
[lib://Teste/Pasta1.xlsx]
(ooxml, embedded labels, table is Teste)

Where [Last_modified] > '$(vMaxData2)';

Concatenate

// JUNTA OS NOVOS DADOS COM O QVD JA SALVO

[Qvd_Salvo]:
LOAD
Letters,
Last_modified
FROM
[lib://Teste/Teste.qvd]
(qvd);

STORE [Teste] into [lib://Teste/Teste.qvd](qvd);

Listmaier
Contributor II
Contributor II
Author

Bom dia Comunidade,

Agora sim segue código atualizado da carga incremental.

// // // Primeira carga e seta o variáriel vMaxData para a maior data.
// Primeira_carga:
// Let vMaxData = "";
// LOAD
// Letters,
// Last_modified
// FROM [lib://Teste/Pasta1.xlsx]
// (ooxml, embedded labels, table is Teste);
// STORE Primeira_carga into [lib://Teste/Teste.qvd](qvd);

// [Tab_maxdata]:
// LOAD
// Date(max(Last_modified)) as MaxData
// FROM
// [lib://Teste/Teste.qvd]
// (qvd);

// Let vMaxData = peek( 'MaxData',0,Teste);

// DROP TABLE Tab_maxdata;
// DROP TABLE Primeira_carga;

// Exit Script;


[Teste]:
LOAD * FROM [lib://Teste/Teste.qvd](qvd);

[Tab_maxdata]:
LOAD
Date(max(Last_modified)) as MaxData
FROM
[lib://Teste/Teste.qvd]
(qvd);

Let vMaxData = peek( 'MaxData',0,Teste);

DROP TABLE Tab_maxdata;


//CARREGA OS NOVOS DADOS
[Novos_Dados]:
LOAD
Letters,
Last_modified
FROM
[lib://Teste/Pasta1.xlsx]
(ooxml, embedded labels, table is Teste)

Where [Last_modified] >= '$(vMaxData)';

Concatenate

// JUNTA OS NOVOS DADOS COM O QVD JA SALVO

[Qvd_Salvo]:
LOAD
Letters,
Last_modified
FROM
[lib://Teste/Teste.qvd]
(qvd);

STORE [Teste] into [lib://Teste/Teste.qvd](qvd);

//Seta o variáriel vMaxData para a maior data.

[Tab_maxdata]:
LOAD
Date(max(Last_modified)) as MaxData
FROM
[lib://Teste/Teste.qvd]
(qvd);

Let vMaxData = peek( 'MaxData',0,Teste);

DROP TABLE Tab_maxdata;