7 Replies Latest reply: Jan 18, 2012 11:35 AM by Mauricio Sá RSS

    Projetos com Nuvem de Dados centralizada - QVDs

    Cesar Accardi

       Boa tarde a todos!

       

      Eu criei este tópico para demonstrar uma iniciativa que estou realizando em um projeto e gostaria de saber a opinião e experiência dos demais colegas quanto a esta abordagem.

       

       

      1. O problema:


       

      O projeto em que comecei a trabalhar recentemente, possui diversas aplicações (QVW) já desenvolvidas e a maioria destas aplicações está usando acesso direto ao banco de dados durante as recargas. O que observei também é que boa parte das informações carregadas acabam sendo comuns para diversas aplicações, aí vem a pergunta: De que forma eu consigo eliminar estas redundâncias na extração dos dados e manter um modelo consistente entre as aplicações? <br mozdirty="" type="_moz">

       

      2. O uso dos arquivos QVD - Escalabilidade de Aplicações:


      O QlikView tem um recurso que são os chamados arquivos QVD (QlikView Data), um formato exclusivo que tem melhor performance de leitura além de outros benefícios como recargas incrementais e compressão para grandes volumes de dados. Para quem não sabe, cada arquivo deste é capaz de representar uma tabela da nuvem. Partindo deste conceito, podemos transferir o script responsável pela conexão com as fontes de dados para uma ou várias aplicações chamadas de Extratoras ou Geradoras de QVD (o objetivo delas é unicamente conectar-se as fontes, realizar as transformações necessárias e armazenar os dados nos arquivos QVD, estes QVWs geralmente não possuem objetos na interface a não ser caixas de entrada para variáveis de carga caso sejam necessárias). As aplicações por sua vez carregam os dados dos arquivos e não mais acessam diretamente os bancos de dados.

      Alguns links interessantes com mais detalhes sobre o assunto:

       

      <br mozdirty="" type="_moz">QlikBlog - Simplificando o QlikView por Guilherme Oliveira (o assunto QVD está dividido em 3 partes)

      [http://qlikblog.com.br/category/desenvolvimento/ | http://qlikblog.com.br/category/desenvolvimento/]


      QlikView Blog by Stefan Walther (tem alguns vídeos bem interessantes)
      [http://www.qlikblog.at | http://www.qlikblog.at]

       

       

      3. Dificuldades:<br mozdirty="" type="_moz">

      Eu tenho implantado constantemente esse modelo e uma das dificuldades que eu observei é que às vezes você precisa alterar a lógica de criação de um arquivo e não sabe exatamente qual será o impacto (quais aplicações carregam aquele arquivo) ou saber qual a aplicação responsável por sua geração. A solução que encontrei foi desenvolver um mecanismo para uma espécie de log de cargas (loads) e armazenamentos (stores) de QVD.

       

       

      4. A Solução:

       

      Criei 3 funções (SUB) no script que chamei de: LoadFromQVD, StoreIntoQVD e LogQVD. Esse script eu transferi para um arquivo chamado QVDControl.txt que é adicionado em todos os QVW através do comando include no script:

       

       

      $(include=QVDControl.txt);<br mozdirty="" type="_moz">

      Eu incluí o arquivo em anexo, o código está comentado com as instruções de uso das funções. O resultado é a geração de um arquivo chamado QVD_List.qvd que é atualizado por todos os QVW que usam as funções, neste qvd eu tenho o log de todos os LOAD e STORE de arquivos . QVD de modo que eu consigo analisar:

         1.Qual aplicação utiliza determinado qvd.
         2.Qual aplicação é responsável por gerar o arquivo.
         3.Quando este arquivo foi criado e quando foi lido.
         4.Se o prazo de atualização do arquivo está ok.

       

       

      Estou curioso se alguém aqui da comunidade já fez algum controle parecido ou tem alguma experiência semelhante. Por favor comentem.


      Abraços.