7 Julho 2017

Como Refrescar Dashboards no Qlik Sense

Existem duas abordagens no processo de refrescamento dos dados em Qlik Sense, irá sempre depender da complexidade do modelo em causa. Neste artigo iremos apresentar soluções aplicáveis às diferentes situações.

Vamos também explicar como agendar e criar dependências entre carregamentos para melhor gestão de tempo e recursos.

ACESSO DIRETO AOS DADOS

Modelo de dados assente sobre base de dados

Esta abordagem é normalmente aplicada a:

  • Dashboards simples
  • Volume de dados restritos e de menor dimensão
  • Não existência de partilha de dados entre diferentes Dashboards

É importante ter atenção que cada vez que existe refrescamento de dados são feitos acessos à base de dados e, por isso, ao utilizar esta abordagem é importante ter em conta o tempo e momento em que estes são executados.

Leitura de Dados a partir de outras fontes de dados

Para além da leitura de dados a partir de base de dados ou de ficheiros QVD, existe ainda a possibilidade de leitura a partir de outras fontes de dados, tais como:

  • Ficheiros do tipo Excel, CSV, TXT
  • Ficheiro Web

Modelo de dados a partir de ficheiros QVD

A criação de modelos a partir de ficheiros QVD (QlikView Data) é a mais utilizada, sendo também a abordagem aconselhada quando existe a necessidade de construir um modelo de dados complexo no que diz respeito à lógica de cálculo e/ou volume de dados. Um QVD é um ficheiro proprietário da Qlik que contem a informação em forma tabular, QVDs podem ser lidos e escritos pelas aplicações Qlik Sense e QlikView.

As principais vantagens na utilização de QVDs são:

  • Melhor performance no carregamento de dados
  • Diminuição de carga sobre fontes de dados
  • Consolidação de dados provenientes de múltiplas fontes
  • Carregamentos incrementais

A implementação ideal para ter um Modelo a partir de ficheiros QVD é:

  • Ter uma ou mais APPS com o exclusivo propósito de refrescar dados a partir da base de dados para ficheiros QVD.
  • Ter uma ou mais APPS com o exclusivo propósito de utilizar os ficheiros QVDs para carregar informação previamente refrescada. Nestas APPs serão também desenvolvidos os Dashboards para apresentação final de dados.


Imagem 1 - Armazenar dados num ficheiro QVD

É ainda possível a modelação de dados entre ficheiros QVD, como por exemplo, operações de join, concatenação, etc. Todas as funções SQL aplicáveis a strings ou numéricos são também aplicáveis a colunas pertencentes a um ficheiro QVD.


Imagem 2 - Leitura e Transformação de dados a partir de um QVD

É aconselhável que o carregamento dos ficheiros QVD a partir da base de dados seja agendado para executar durante um processo nocturno de forma a minimizar o impacto em períodos de maior utilização do sistema.

COMO AGENDAR UMA EXECUÇÃO

O Qlik Sense oferece a possibilidade de configurar execuções para diferentes períodos temporais assim como dependências entre as mesmas.

Os agendamentos de execuções são criados a partir do Qlik Sense QMC (Qlik Management Console). O URL para aceder ao QMC é, geralmente, representado por QlikServerURL/qmc.

Na secção Tasks, deve ser seleccionado Create New. Irá surgir uma janela de edição, onde é possível preencher vários campos, tais como, o nome da execução e qual a App sobre a qual a execução vai incidir.


Imagem 3 - Criação de um agendamento para uma execução

Aqui é também possível seleccionar qual a periodicidade de execução pretendida. Para isso basta seleccionar o menu Actions e escolher o tipo de trigger para a execução em causa:

  • Create new once-only trigger
  • Create new hourly trigger
  • Create new daily trigger
  • Create new weekly trigger
  • Create new monthly trigger
  • Create new scheduled trigger
  • Create new task event trigger

Dentro de cada uma destas opções será configurada a data de inicio e de fim da execução.


Imagem 4 - Configuração do trigger de execução

COMO CRIAR DEPENDÊNCIAS ENTRE EXECUÇÕES

Como anteriormente mencionado neste artigo, é possível combinar e configurar dependências entre uma (ou mais) execuções. A forma de obter isso é bastante simples.

Pegando no exemplo de um modelo de dados construído com base em ficheiros QVD, será necessário criar uma depência entre a execução que lê os dados da base de dados e armazena os mesmos em ficheiros QVD e o execução que lê os dados dos ficheiros QVD e refresca os dados de um dashboard previamente publicado.

A primeira execução poderá ser agendada para executar diariamente, utilizando um daily trigger. Todos os dias, os dados serão atualizados com base neste trigger.

Considerando que os Dashboards apenas deverão ser atualizados caso esta execução termine com sucesso, é necessária a criação de uma execução através de um task trigger event, semelhante ao que é apresentado na imagem abaixo:


Imagem 5 - Criação de uma dependência entre execuções

É possível seleccionar entre Task Successful e Task Failed:

  • Task Successful: a execução só inicia após o término com sucesso da execução mencionada no campo Task.
  • Task Failed: a execução só inicia após o término com insucesso da execução mencionada no campo Task.

 

CONCLUSÃO

Quando possível, desenvolvimentos em Qlik Sense devem ser sempre assentes sobre QVDs. O elemento chave é criar uma ou múltiplas APPs para gerir os refrescamentos de forma eficiente.

  • Um único refresh pode conter informação para múltiplos Dashboards
  • Um QVD pode ser utilizado para múltiplos Dashboards
  • Um Dashboard pode conter informação de múltiplos QVDs
  • Performance melhorada relativamente a todas as outras opções
  • Carga do lado das fontes de dados será sempre menor
  • QVDs podem ser carregados incrementalmente se necessário.

     
Joana
Joana
Joana
Joana
Joana
      Joana Dias
      Consultant
  Ricardo Ferreira
       Consultant
Blog