10 Replies Latest reply: Jul 21, 2016 2:34 PM by Clever Anjos RSS

    Dúvida Evolução por Período (QVD)

    Rafael Limeira

      Pessoal, boa tarde!

       

      Gostaria de verificar uma situação com vocês, para administrar meu projetos da melhor forma possível ! Tenho uma aplicação onde vou gravando um histórico em QVDs. Minha intenção é pegar este histórico e criar análises evolutivas. Conforme imagem abaixo, para organização estou colocando YY/MM + nome da tabela. Para fazer isso, subi uma variável no script.

      Capturar.PNG

      Pensei em colocar esta variável em cada tabela ao gerar os QVDs, porém, geraria tabelas sintéticas. O que vocês recomendam? Daria para pegar a referência do período pelo nome dos históricos e criar um campo? Creio que já tenham passado por esta situação, rsrs

       

      Fico agradecido, abraço!

        • Re: Dúvida Evolução por Período (QVD)
          rogerio ferreira

          Rafael,

           

          Eu já utilizei o que você está fazendo. Pode ser simples, basta você criar em cada tabela um campo que determina o período, exemplo: COMPETENCIA, onde você guardaria a competência do dado extraido (1510, 1509).

           

          Ao fazer o load, basta colocar um único load onde você busca todos os arquivos que terminem com alguma expressão, exemplo load ... from *statusTerminal.qvd (qvd); Neste ponto, o qlikview fará a leitura de todos os arquivos com a nomenclatura escolhida e uma única vez.

           

          Atente para não utilizar neste ponto qualify, pode ser que haja problemas no relacionamento.

           

          Não esqueça de utilizar o ano também como referência, é importante na análise das informações.

           

          Abraços.

            • Re: Dúvida Evolução por Período (QVD)
              Rafael Limeira

              Rogério, boa tarde!

               

              Muito obrigado pela resposta, já havia tentando esta estratégia, porém gerou muitas tabelas sintéticas, veja como ficou:

               

              Sem título.png

              Com isso, a aplicação saltou de 1.2Mb para 499Mb (muito lenta). Não sei se foi isso que quis dizer

               

              Abraço!

               

              Rafael

                • Re: Dúvida Evolução por Período (QVD)
                  rogerio ferreira

                  Rafael,

                   

                  As chaves sintéticas são porque você tem o nome dos campos idênticos em tabelas diferentes... no seu caso, tem que alterar o modelo de dados. Ou você carrega tudo como uma tabela única, tabelão, ou cria chaves entre as tabelas. Lembre-se que o conceito do QV é multidimensional, ou seja, o que as Syn Tables estão fazendo é isto mesmo, relacionar tudo com tudo.

                   

                  No seu caso eu criaria chaves independentes para cada tabela, relacionando elas com chaves distintas, para que não haja a Syn Table, ou então, criar uma tabela única utilizando join para isto.

                   

                  Qualquer dúvida estou por aqui.

                    • Re: Dúvida Evolução por Período (QVD)
                      Rafael Limeira

                      Rogério,

                       

                      Acredito que a melhor alternativa seria a criação de chaves, já que as tabelas possuem informações diferenciadas entre elas (quantidade de colunas). Porém, mesmo utilizando uma chave caí no mesmo problema. Você poderia me dar um exemplo prático de como ficaria a estrutura seguindo sua sugestão de chaves (creio que não fiz do jeito que você estava ensinando). O modelo abaixo é o original:

                      export.png

                      Muito obrigado pela força! Com o seu exemplo poderei replicar o conceito em todas as minhas aplicações. Obrigado!

                        • Re: Dúvida Evolução por Período (QVD)
                          rogerio ferreira

                          Rafael,

                          Vai depender muito do objetivo da aplicação, mas tente fazer algo assim:

                           

                          Tabela: STATUSTERMINAL

                          Chave: numeroSerie as PK_STATUSTERMINAL

                           

                          Tabela: TABELATERMINAIS

                          Chaves: numeroSerie as PK_STATUSTERMINAL,

                                       numeroSerie as PK_FATURASERVICOS,

                                       numeroSerie as PK_ANALISEREFERENCIA,

                                       clienteID

                           

                          Tabela: FATURA DE SERVICOS

                                      numeroSerie as PK_FATURASERVICOS

                           

                          Tabela: ANALISEREFERENCIA

                                      numeroSerie as PK_ANALISEREFERENCIA

                           

                          Veja se o modelo é ideal para você, pois depende muito do volume de dados, tipos de dimensões, estas coisas... seria interessante utilizar o qualify e o unqualify, para que outros campos que tenham o mesmo nome não sejam automaticamente relacionados.

                          Na Aba Main, use a seguinte instrução antes de começar a ler as tabelas:

                           

                          QUALIFY *;

                           

                          UNQUALIFY

                                     PK_STATUSTERMINAL,

                                     PK_FATURASERVICOS,

                                     PK_ANALISEREFERENCIA,

                                     clienteID;

                           

                          Com esta instrução, você está qualificando as tabelas, ou seja, colocando antes do nome do campo o nome da tabela (ex: TABELA.NOMECAMPO). Assim, você está evitando que os campos de nomes iguais possam ser relacionados automaticamente pelo QV. Com o UNQUALIFY, você está mostrando ao QV quais campos você quer que ele relacione, ou melhor, é você quem determina o que será relacionado.

                           

                          Pode não ser o melhor modelo, mas vai te ajudar a não criar mais Syn Tables e a utilizar o conceito de que é você quem determina a sua modelagem de dados.

                           

                          Qualquer dúvida estou a disposição.

                  • Re: Dúvida Evolução por Período (QVD)
                    Clever Anjos

                    Já conseguiu solucionar? Se sim, por favor marque uma das respostas como "Correta" para fechar o tópico, nos ajudando a manter o forum organizado.

                     

                    Como obter ajuda? Leia antes de postar