Ir para conteúdo principal

Arquivos QVD

Um arquivo QVD (QlikView Data) é um arquivo que contém uma tabela de dados exportada do Qlik Sense ou do QlikView. O QVD é um formato nativo do Qlik e pode ser gravado e lido apenas pelo Qlik Sense ou QlikView. O formato de arquivo é otimizado para velocidade na leitura de dados de um script do Qlik Sense e ao mesmo tempo é compacto. A leitura de dados de um arquivo QVD é geralmente de 10 a 100 vezes mais rápida do que a leitura de outras fontes de dados.

Os arquivos QVD podem ser lidos em dois modos, padrão (rápido) e otimizado (mais rápido). O modo selecionado é determinado automaticamente pelo mecanismo de script do Qlik Sense. O modo otimizado pode ser usado apenas quando todos os campos são lidos sem transformações (fórmulas que atuam nos campos), embora a renomeação de campos seja permitida. Uma cláusula Where que faz o Qlik Sense descompactar os registros também desativará a carga otimizada.

Um arquivo QVD contém exatamente uma tabela de dados e é composto por três partes:

  • Um cabeçalho XML (com o conjunto de caracteres UTF-8), que descreve os campos da tabela, o layout das informações posteriores e alguns outros metadados.
  • Tabelas de símbolos em um formato com bytes.
  • Dados da tabela em um formato com bits.

os arquivos QVD podem ser usados para vários fins. Pelo menos quatro usos principais podem ser facilmente identificados. Mais de um deles pode se aplicar em determinadas situações:

  • Aumento da velocidade da carga de dados
  • Se forem armazenados em buffer blocos de dados de entrada de arquivos QVD, que não mudam ou mudam aos poucos, a execução do script ficará consideravelmente mais rápida para conjuntos grandes de dados.

  • Diminuindo a carga nos servidores de base de dados
  • O volume de dados lidos de fontes de dados externas pode também ser bastante reduzido. Isso reduz a carga de trabalho dos bancos de dados externos e o tráfego de rede. Além disso, quando vários scripts Qlik Sense compartilham os mesmos dados, basta carregá-los uma vez do banco de dados de origem em um arquivo QVD. Os outros aplicativos podem usar os mesmos dados por meio desse arquivo QVD.

  • Consolidação de dados de vários aplicativos Qlik Sense
  • Com o comando de script Binary, é possível carregar dados de um único aplicativo Qlik Sense em outro aplicativo, mas com os arquivos QVD, um script do Qlik Sense é capaz de combinar dados de vários aplicativos do Qlik Sense. Isso aumenta as possibilidades de aplicativos que consolidam dados semelhantes de unidades de negócios diferentes etc.

  • Carga incremental
  • Em muitos casos comuns, a funcionalidade QVD pode ser usada para facilitar a carga incremental, isto é, para carregar exclusivamente novos registros de uma base de dados crescente.

Criando arquivos QVD

Os arquivos QVD podem ser criados de duas maneiras:

  • Criação e nomeação explícitas, usando o comando Store no script Qlik Sense.
  • Indique no script que uma tabela lida anteriormente ou parte dela deve ser exportada para um arquivo nomeado de forma explícita em um local de sua escolha.

  • Criação e manutenção automáticas a partir do script.
  • Se um comando load ou select for precedido do novo prefixo Buffer, o Qlik Sense criará automaticamente um arquivo QVD que, se determinadas condições forem atendidas, pode ser usado no lugar da fonte de dados original ao recarregar os dados.

Não há diferença entre os arquivos QVD resultantes, por exemplo, em relação à velocidade de leitura.

Store

Essa função de script cria um arquivo explicitamente nomeado QVD, CSV ou txt.

Sintaxe:  

Store[ *fieldlist from] table into filename [ format-spec ];

O comando só pode exportar campos de uma tabela lógica. Se os campos de várias tabelas forem exportados, uma junção explícita deve ser feita anteriormente no script para criar a tabela de dados que deve ser exportada.

Os valores de texto são exportados para o arquivo CSV no formato UTF-8. É possível especificar um separador. Para isso, consulte LOAD. O comando store de um arquivo CSV não suporta a exportação de BIFF .

Store mytable into [lib://DataFiles/xyz.qvd]; Store * from mytable into [lib://DataFiles/xyz.qvd]; Store myfield from mytable into [lib://DataFiles/xyz.qvd]; Store myfield as renamedfield, myfield2 as renamedfield2 from mytable into [lib://DataFiles/xyz.qvd]; Store mytable into [lib://DataFiles/myfile1.txt]; Store mytable into [lib://DataFiles/myfile2.csv];

  1. Abra o aplicativo Tutorial de uso de scripts avançado.
  2. Clique em Product na seção de script.
  3. Adicione o seguinte ao final do script:
  4. Store * from Product into [lib://DataFiles/ProductData.qvd](qvd);

    Seu script deve ter a seguinte aparência:

    CrossTable(Month, Sales) LOAD     Product,     "Jan 2014",     "Feb 2014",     "Mar 2014",     "Apr 2014",     "May 2014" FROM [lib://DataFiles/Product.xlsx]  (ooxml, embedded labels, table is Product);  Store * from Product into [lib://DataFiles/ProductData.qvd](qvd);

  5. Clique em Carregar dados.
  6. Agora, o arquivo Product.qvd deve constar na lista de arquivos.

    Este arquivo de dados é o resultado do script Crosstable e é uma tabela de três colunas, com uma coluna para cada categoria (Product, Month, Sales). Este arquivo de dados agora pode ser usado para substituir toda a seção do script de Product .

Lendo os dados de arquivos QVD

Um arquivo QVD pode ser lido ou acessado pelo Qlik Sense pelos seguintes métodos:

  • Carregando um arquivo QVD como uma fonte de dados explícita. Os arquivos QVD podem ser referenciados por um comando load no script do Qlik Sense, como qualquer outro tipo de arquivo de texto (csv, fix, dif, biff, etc).
  • LOAD * from [lib://DataFiles/xyz.qvd] (qvd); LOAD fieldname1, fieldname2 from [lib://DataFiles/xyz.qvd] (qvd); LOAD fieldname1 as newfieldname1, fieldname2 as newfieldname2 from [lib://DataFiles/xyz.qvd](qvd);
  • Carregando automaticamente os arquivos QVD armazenados em buffer. Ao usar o prefixo buffer em comandos load ou select, nenhuma declaração explícita para leitura é necessária. O Qlik Sense determinará como usará os dados do arquivo QVD, ao contrário da obtenção de dados com o uso do comando original LOAD ou SELECT.
  • Acessando arquivos QVD a partir do script. Várias funções de script (todas começando com QVD) podem ser usadas para recuperar diversas informações dos dados contidos no cabeçalho XML de um arquivo QVD.

  1. Comente todo o script na seção de script do Product.
  2. Digite o seguinte script:
  3. Load * from [lib://DataFiles/ProductData.qvd](qvd);			

  4. Clique em Carregar dados.
  5. Os dados são carregados do arquivo QVD.

    Janela do progresso do carregamento de dados

    Janela de progresso do carregamento de dados.
Nota informativaPara saber como usar arquivos QVD para cargas incrementais, consulte esta postagem de blog no Qlik Community: Overview of Qlik Incremental Loading (Visão geral do carregamento incremental da Qlik)

Buffer

Os arquivos QVD podem ser criados e mantidos automaticamente usando o prefixo Buffer. Esse prefixo pode ser usado com a maioria dos comandos LOAD e SELECT no script. Ele indica se os arquivos QVD serão usados para armazenar em cache/buffer o resultado do comando.

Sintaxe:  

Buffer [ (option [ , option])] ( loadstatement | selectstatement ) option::= incremental | stale [after] amount [(days | hours)]

Se não for usada nenhuma opção, o buffer de QVD criado pela primeira execução do script será usado indefinidamente.

Exemplo:  

Buffer load * from MyTable;

stale [after] amount [(days | hours)]

Amount é um número que especifica o período de tempo. Decimals pode ser usado A unidade adotada será dias, se for omitida.

A opção stale after é geralmente usada com fontes do banco de dados nas quais não há nenhum carimbo de data/hora simples nos dados originais. Uma cláusula stale after simplesmente determina um período de tempo a partir da hora de criação do buffer do QVD, após a qual o buffer deixará de ser considerado válido. Antes desse período, o buffer de QVD será usado como fonte dos dados e, após o período, será usada a fonte de dados original. O arquivo do buffer de QVD será automaticamente atualizado e um novo período será iniciado.

Exemplo:  

Buffer (stale after 7 days) load * from MyTable;

Incremental

A opção incremental permite a leitura apenas de parte de um arquivo subjacente. O tamanho anterior do arquivo é armazenado no cabeçalho XML no arquivo QVD. Isso é especificamente útil com arquivos de log. Todos os registros carregados anteriormente são lidos do arquivo QVD, enquanto que os novos registros posteriores são lidos na fonte original e, por último, um arquivo QVD atualizado é criado.

Observe que a opção incremental só pode ser usada com comandos LOAD e arquivos de texto e essa carga incremental não pode ser usada quando dados antigos são alterados ou excluídos.

Exemplo:  

Buffer (incremental) load * from MyLog.log;

Os buffers de QVD normalmente serão excluídos quando deixarem de ser referenciados durante a execução completa do script no aplicativo que os criou ou quando o aplicativo que os criou não existir mais. O comando Store deve ser usado se você desejar manter o conteúdo do buffer como um arquivo QVD ou CSV.

  1. Crie um novo aplicativo e nomeie-o.
  2. Adicione uma nova seção de script no Editor de carregamento de dados.
  3. Em DataFiles no menu direito, clique em Selecionar dados.

  4. Carregue e, em seguida, selecione Cutlery.xlsx.
  5. Na janela Selecionar dados de, clique em Inserir script.
  6. Comente os campos no comando de LOAD e altere o comando de LOAD para o seguinte:
  7. Buffer LOAD *

    Seu script deve ter a seguinte aparência:

    Buffer LOAD * //     "date", //     item, //     quantity FROM [lib://DataFiles/Cutlery.xlsx] (ooxml, embedded labels, table is Sheet1);

  8. Clique em Carregar dados.
  9. Na primeira vez em que você carrega dados, eles são carregados de Cutlery.xlsx.

    Janela do progresso do carregamento de dados

    Janela de progresso do carregamento de dados.

    O comando Buffer também cria um QVD arquivo e o armazena no Qlik Sense. Em uma implementação na nuvem, ele é armazenado em um diretório na nuvem.

  10. Clique em Carregar dados novamente.
  11. Desta vez, os dados são carregados do arquivo QVD criado pelo comando Buffer quando você carregou os dados pela primeira vez.
  12. Janela do progresso do carregamento de dados

    Janela de progresso do carregamento de dados.

Obrigado!

Você concluiu este tutorial e, com certeza, obteve um conhecimento básico sobre o uso de scripts no Qlik Sense. Acesse nosso site para obter mais informações sobre mais treinamentos disponíveis.