Qlik Community

Qlik Brasil

Group community for Brazil users. discussion only in Portuguese.

Highlighted
fercas69
New Contributor II

Carga incremental.

Pessoal, boa noite!

Tenho uma planilha de excel que mensalmente é atualizada. Preciso carrega-la e no mês seguinte vou precisar carrega-la novamente, porém sem perder a carga do mês anterior. Alguém sabe me dizer como fazer isto?

Tags (1)
1 Solution

Accepted Solutions
thiago_justen
Valued Contributor III

Re: Carga incremental.

Seria mais ou menos isso?

Caso 2: Inserir Apenas (Sem Atualizar nem Excluir)

Se os dados residirem em uma base de dados, não em um arquivo de log simples, a solução do caso 1 não funcionará. No entanto, o problema poderá ser solucionado com um mínimo de trabalho adicional. As seguintes condições se aplicam:

  • A fonte de dados pode ser qualquer base de dados.
  • O QlikView carrega os registros inseridos na base de dados após a execução do último script.
  • É necessário um campo ModificationDate (ou semelhante) para que o QlikView reconheça os registros novos.

Exemplo:

QV_Table:

SQL SELECT PrimaryKey, X, Y FROM DB_TABLE

WHERE ModificationTime >= #$(LastExecTime)#

AND ModificationTime < #$(BeginningThisExecTime)#;

Concatenate LOAD PrimaryKey, X, Y FROM File.QVD (qvd);

STORE QV_Table INTO File.QVD;

(Os sinais de sustenido na cláusula SQL WHERE definem o início e o final de uma data. Verifique o manual do banco de dados para obter a sintaxe de data correta do banco de dados.)

Fonte: https://help.qlik.com/pt-BR/qlikview/12.0/Subsystems/Client/Content/QVD_Incremental.htm

Aplica-se ao QlikView e ao Sense

Thiago Justen Teixeira Gonçalves
WhatsApp: 24 98152-1675
Skype: justen.thiago
6 Replies
thiago_justen
Valued Contributor III

Re: Carga incremental.

Seria mais ou menos isso?

Caso 2: Inserir Apenas (Sem Atualizar nem Excluir)

Se os dados residirem em uma base de dados, não em um arquivo de log simples, a solução do caso 1 não funcionará. No entanto, o problema poderá ser solucionado com um mínimo de trabalho adicional. As seguintes condições se aplicam:

  • A fonte de dados pode ser qualquer base de dados.
  • O QlikView carrega os registros inseridos na base de dados após a execução do último script.
  • É necessário um campo ModificationDate (ou semelhante) para que o QlikView reconheça os registros novos.

Exemplo:

QV_Table:

SQL SELECT PrimaryKey, X, Y FROM DB_TABLE

WHERE ModificationTime >= #$(LastExecTime)#

AND ModificationTime < #$(BeginningThisExecTime)#;

Concatenate LOAD PrimaryKey, X, Y FROM File.QVD (qvd);

STORE QV_Table INTO File.QVD;

(Os sinais de sustenido na cláusula SQL WHERE definem o início e o final de uma data. Verifique o manual do banco de dados para obter a sintaxe de data correta do banco de dados.)

Fonte: https://help.qlik.com/pt-BR/qlikview/12.0/Subsystems/Client/Content/QVD_Incremental.htm

Aplica-se ao QlikView e ao Sense

Thiago Justen Teixeira Gonçalves
WhatsApp: 24 98152-1675
Skype: justen.thiago
fercas69
New Contributor II

Re: Carga incremental.

Boa noite, Thiago.

E como faço para atualizar somente os registros que tivemos alteração?

thiago_justen
Valued Contributor III

Re: Carga incremental.

Sugiro o 4º caso:

Caso 4: Inserir, Atualizar e Excluir

O caso mais difícil de solucionar é quando os registros são excluídos da base de dados de origem entre as execuções de script. As seguintes condições se aplicam:

  • A fonte de dados pode ser qualquer base de dados.
  • O QlikView carrega os registros inseridos ou atualizados na base de dados após a execução do último script.
  • O QlikView remove os registros excluídos da base de dados após a execução do último script.
  • É necessário um campo ModificationDate (ou semelhante) para que o QlikView reconheça os registros novos.
  • É necessário um campo chave primário para que o QlikView classifique os registros atualizados do arquivo QVD.
  • Esta solução forçará a leitura do arquivo QVD no modo padrão (em vez do otimizado), que ainda será consideravelmente mais rápido do que carregar a base de dados inteira.

Exemplo:

Let ThisExecTime = Now( );

QV_Table:

SQL SELECT PrimaryKey, X, Y FROM DB_TABLE

WHERE ModificationTime >= #$(LastExecTime)#

AND ModificationTime < #$(ThisExecTime)#;

Concatenate LOAD PrimaryKey, X, Y FROM File.QVD

WHERE NOT EXISTS(PrimaryKey);

Inner Join SQL SELECT PrimaryKey FROM DB_TABLE;

If ScriptErrorCount = 0 then

STORE QV_Table INTO File.QVD;

Let LastExecTime = ThisExecTime;

End If

Thiago Justen Teixeira Gonçalves
WhatsApp: 24 98152-1675
Skype: justen.thiago
fercas69
New Contributor II

Re: Carga incremental.

Muito obrigado.

thiago_justen
Valued Contributor III

Re: Carga incremental.

Questão resolvida Fernando?

Se sim,não deixe de fechar a thread marcando como úteis as resposta que lhe ajudaram e escolhendo uma delas (a que encerrou sua questão) para marcar como resposta correta.

Abs e Sucesso!

Thiago Justen Teixeira Gonçalves
WhatsApp: 24 98152-1675
Skype: justen.thiago
fercas69
New Contributor II

Re: Carga incremental.

Resolvida Thiago!
Obrigado pelas orientações.