6 Replies Latest reply: Apr 16, 2018 7:29 AM by Fernando Castro RSS

    Carga incremental.

    Fernando Castro

      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?

        • Re: Carga incremental.
          Thiago Justen Teixeira

          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

            • Re: Carga incremental.
              Fernando Castro

              Boa noite, Thiago.

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

                • Re: Carga incremental.
                  Thiago Justen Teixeira

                  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

              • Re: Carga incremental.
                Thiago Justen Teixeira

                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!