Exemplo:
'Sweden' as Country
Quando essa expressão é usada como parte da lista de campos em um comando
LOAD ou SELECT, a
string de texto "
Sweden" será carregada como valor de campo no campo QlikView "Country".
Exemplo:
"land" as Country
Quando essa expressão é usada como parte da lista de campos em um comando
LOAD ou SELECT, o
conteúdo do campo de banco de dados ou coluna da tabela com o nome "
land" será carregado como valores
de campo do campo QlikView "
Country". Isto é, land será tratado como uma referência de campo.
Diferença entre números e literais de string
A diferença entre nomes e literais de string torna-se mais clara na comparação dos seguintes exemplos.
Exemplo:
Trabalhando com o QlikView - QlikView 12, November 2017
227
8 Introdução ao carregamento de dados
'12/31/96'
Quando essa string é usada como parte de uma expressão, na primeira etapa ela é interpretada como a
string de texto "12/31/96", que por sua vez pode ser interpretada como uma data se o formato da data for
‘MM/DD/YY’. Nesse caso, será armazenada como um valor duplo com uma representação numérica e uma
textual.
Exemplo:
12/31/96
Quando essa string for usada como uma parte de uma expressão, será interpretada numericamente como 12
dividido por 31 dividido por 96.
Usando caracteres de cota única em uma string
Se você precisar incluir caracteres de cota única em uma string, é possível usar uma cota única extra como
caractere de escape.
Exemplo:
A string
'10 O''clock News'
será interpretada como Notícia das 10 horas.
8.12 Caracteres curingas nos dados
Também é possível usar caracteres curingas nos dados. Existem dois caracteres curingas diferentes: o
símbolo de asterisco, interpretado como todos os valores desse campo, e um símbolo opcional, interpretado
como todos os valores remanescentes desse campo.
O símbolo de asterisco
O símbolo de asterisco é interpretado como todos os valores (listados) desse campo, isto é, os valores
listados em qualquer lugar nessa tabela. Se for utilizado em um dos campos do sistema (
USERID,
PASSWORD, NTNAME ou SERIAL) em uma tabela carregada na seção de acesso do script, ele será
interpretado como todos os valores possíveis desse campo (inclusive os não listados).
O símbolo de asterisco não é permitido em arquivos de informações. Além disso, não pode ser utilizado em
campos chave, isto é, campos utilizados para unir tabelas.
Não haverá símbolo de asterisco disponível a menos que ele seja especificado explicitamente.
OtherSymbol
Em muitos casos, é necessário representar todos os demais valores em uma tabela, isto é, os valores que
não foram encontrados explicitamente nos dados carregados. Isso é feito com uma variável especial
chamada
OtherSymbol. Para definir que OtherSymbol seja tratado como “todos os demais valores”, use a
seguinte sintaxe:
SET OTHERSYMBOL=;
antes de um comando
LOAD ou SELECT. pode ser qualquer string.
Trabalhando com o QlikView - QlikView 12, November 2017
228
8 Introdução ao carregamento de dados
A ocorrência do símbolo definido em uma tabela interna fará com que o QlikView o defina como todos os
valores não carregados anteriormente no campo em que for encontrado. Os valores encontrados no campo
após a ocorrência de
OtherSymbol serão, dessa forma, descartados.
Para restaurar essa funcionalidade, use:
SET OTHERSYMBOL=;
Exemplo:
Table Customers
CustomerID
Name
1
ABC Inc.
2
XYZ Inc.
3
ACME INC
+
Undefined
Table Orders
CustomerID
Name
1
1234
3
1243
5
1248
7
1299
Insira o seguinte comando no script antes do ponto em que a primeira tabela acima é carregada:
SET OTHERSYMBOL=+;
Qualquer referência a um
CustomerID diferente de 1, 2 ou 3, por exemplo, ao clicar em OrderID 1299,
resultará em
Undefined em Name.
OtherSymbol não tem o propósito de ser utilizado para criar outer joins entre tabelas.
8.13
Tratamento do valor NULL
Quando nenhum dado puder ser produzido para um determinado campo como resultado de uma consulta à
base de dados e/ou de uma junção entre tabelas, geralmente o resultado será normalmente um valor NULL.
A lógica do QlikView trata as seguintes ocorrências como valores NULL:
Trabalhando com o QlikView - QlikView 12, November 2017
229
8 Introdução ao carregamento de dados
l
Valores NULL retornados de uma conexão
ODBC
l
Valores NULL criados como resultado de uma concatenação forçada de tabelas no script de
carregamento
l
Valores NULL criados como resultado de uma junção feita no script de carregamento
l
Valores NULL criados como resultado da geração de combinações de valores de campo a serem
mostrados em uma tabela
Geralmente, é impossível usar esses valores NULL para associações e seleções, exceto
quando o comando NullAsValue estiver sendo usado.
Por definição, os arquivos de texto não podem conter valores NULL.
Associando/selecionando valores NULL do ODBC
É possível associar e/ou selecionar valores NULL de uma fonte de dados ODBC. Para isso, foi definida uma
variável de script. A seguinte sintaxe pode ser usada:
SET NULLDISPLAY=;
O símbolo substituirá todos os valores NULL da fonte de dados ODBC no nível mais baixo da entrada
de dados. pode ser qualquer string.
Para restaurar essa funcionalidade à interpretação padrão, use a seguinte sintaxe:
SET NULLDISPLAY=;
O uso de NULLDISPLAY afeta somente os dados de uma fonte de dados ODBC.
Se desejar que a lógica do QlikView interprete valores NULL retornados de uma conexão ODBC como uma
string vazia, inclua o seguinte texto no script antes de qualquer declaração
SELECT:
SET NULLDISPLAY=";
Aqui, '' realmente significa duas aspas simples sem nada entre elas.
Criando valores NULL de arquivos de texto
É possível definir um símbolo que, quando ocorrer em um arquivo de texto ou em uma cláusula
inline, seja
interpretado como um valor NULL real. Use o seguinte comando:
SET NULLINTERPRET= ;
O símbolo deve ser interpretado como NULL. pode ser qualquer string.
Para restaurar essa funcionalidade à interpretação padrão, use:
SET NULLINTERPRET=;
Trabalhando com o QlikView - QlikView 12, November 2017
230
8 Introdução ao carregamento de dados
O uso de NULLINTERPRET afeta somente os dados de arquivos de texto e cláusulas inline.
Propagação de valores NULL em expressões
Os valores NULL se propagarão por meio de uma expressão de acordo com algumas regras lógicas e
bastante razoáveis.
Funções
A regra geral é que as funções retornam NULL quando os parâmetros ficam fora do intervalo para o qual a
função está definida.
Exemplo:
asin(2)
retorna
NULL
log(-5)
retorna
NULL
round(A,0)
retorna
NULL
Como resultado, as funções em geral retornam NULL quando qualquer um dos parâmetros necessários à
avaliação é NULL.
Exemplo:
sin(NULL)
retorna
NULL
chr(NULL)
retorna
NULL
if(NULL, A, B)
retorna
B
if(True, NULL, A)
retorna
NULL
if(True, A, NULL)
retorna
A
A exceção à segunda regra são as funções lógicas para teste de tipo.
Exemplo:
isnull(NULL)
retorna
True (-1)
isnum(NULL)
retorna
False (0)
Operadores aritméticos e de caractere
Se NULL for encontrado em qualquer lado desses operadores, o resultado será NULL.
Exemplo:
Trabalhando com o QlikView - QlikView 12, November 2017
231
8 Introdução ao carregamento de dados
A
+
NULL
retorna
NULL
A
-
NULL
retorna
NULL
A
/
NULL
retorna
NULL
A
*
NULL
retorna
NULL
NULL
/
A
retorna
NULL
0
/
NULL
retorna
NULL
0
*
NULL
retorna
NULL
A
&
NULL
retorna
A
Operadores relacionais
Se NULL for encontrado em qualquer lado dos operadores relacionais, serão aplicadas regras especiais.
Exemplo:
NULL
rel.op
NULL
retorna
NULL
A
<>
NULL
retorna
True (-1)
A
<
NULL
retorna
False (0)
A
<=
NULL
retorna
False (0)
A
=
NULL
retorna
False (0)
A
>=
NULL
retorna
False (0)
A
>
NULL
retorna
False (0)
8.14 Arquivos QVD
Um arquivo QVD (Dados do QlikView) é um arquivo que contém uma tabela de dados exportada do
QlikView. QVD é um formato QlikView nativo e pode ser gravado e lido apenas pelo QlikView. O formato de
arquivo é otimizado para agilização na leitura de dados de um script do QlikView 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 pela linguagem de script do QlikView. 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 QlikView descompactar
os registros também desativará a carga otimizada. Um .qvd otimizado é extraído e identificado de acordo
com o carregamento de transformar e extrair (ELT) padrão quando uma transformação de campo é realizada
Trabalhando com o QlikView - QlikView 12, November 2017
232
8 Introdução ao carregamento de dados
e isso resulta na diminuição do desempenho. O formato especificado não será mantido e o formato numérico
da fileira subjacente será usado e reconhecido. Transformações do campo em um .qvd são permitidas e, em
seguida, o antigo .qvd "Otimizado" torna-se um .qvd não otimizado padrão.
Um arquivo QVD contém exatamente uma tabela de dados e consiste em três partes:
1. Um cabeçalho XML composto de modo apropriado (com o conjunto de caracteres UTF-8), que
descreve os campos da tabela, o layout das informações subsequentes e alguns outros
metadados.
2. Tabelas de símbolos em um formato com bytes.
3. Dados da tabela em um formato com bits.
Finalidade dos Arquivos QVD
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:
Aumentando a velocidade de carga
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 nas bases de dados externas e o tráfego na rede. Além disso, quando vários scripts do
QlikView compartilham os mesmos dados, basta carregá-los uma vez da base de dados de origem em um
arquivo QVD. Os outros aplicativos podem usar os mesmos dados por meio desse arquivo QVD.
Consolidando Dados de Vários Aplicativos QlikView
Com o comando de script
B i nári o, é possível carregar dados de um único aplicativo QlikView em outro
aplicativo, mas com os arquivos QVD, um script do QlikView pode combinar os dados de qualquer
quantidade de aplicativos QlikView. Isso permite, por exemplo, que aplicativos consolidem dados
semelhantes de unidades de negócio diferentes, entre outras possibilidades.
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.
Criar Arquivos QVD
Um arquivo QVD pode ser criado por um destes três métodos:
1. Criação e nomeação explícitas, usando o comando store no script do QlikView. Basta indicar
no script que uma tabela lida anteriormente ou parte dela deve ser exportada para um arquivo
nomeado explicitamente em um local de sua escolha.
2. Criação e manutenção automáticas a partir do script. Ao preceder um comando load ou
sel ect com o prefixo buffer, o QlikView criará automaticamente um arquivo QVD que, em
Trabalhando com o QlikView - QlikView 12, November 2017
233
8 Introdução ao carregamento de dados
determinadas circunstâncias, poderá ser usado no lugar da fonte de dados original ao
recarregar os dados.
3. Criação e nomeação manuais e explícitas a partir do layout ou por meio do Intepretador de
Macro I nterno. Os dados podem ser exportados do layout do QlikView por meio de
comandos da GUI ou macros de Automação. Na GUI você encontrará o QVD como um dos
possíveis formatos de exportação no comando
Exportar. . . , encontrado no menu objeto de
grande parte dos objetos de pasta.
Não há diferença entre os arquivos QVD resultantes, por exemplo, em relação à velocidade de leitura, etc.
Leitura de dados de Arquivos QVD
Um arquivo QVD pode ser lido ou acessado pelo QlikView pelos seguintes métodos:
1. Carregando um arquivo QVD como uma fonte de dados explícita. Os arquivos QVD podem ser
referenciados por um comando
l oad no script do QlikView, como qualquer outro tipo de
arquivo de texto (csv, fix, dif, biff etc). O
A ssi stente de A rqui vo: Ti po manipula os
arquivos QVD pelos mesmos princípios.
Exemplos:
load * from xyz.qvd (qvd);
load Nome, RegNo from xyz.qvd (qvd);
load Nome as a, RegNo as b from xyz.qvd (qvd);
2. Carregando automaticamente os arquivos QVD armazenados em buffer. Ao usar o prefixo
buffer em comandos l oad ou sel ect nenhuma declaração explícita de leitura é necessária.
O QlikView determinará como usará os dados do arquivo QVD, ao contrário da obtenção de
dados por meio do comando original
l oad ou sel ect.
3. Acessando arquivos QVD por meio 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.
Importações de QVD com asteriscos não são suportadas.
8.15 Direct Discovery
O recurso do Direct Discovery no QlikView amplia os possíveis casos de uso para Business Discovery,
permitindo que os usuários de negócios realizem a análise associativa em fontes de dados maiores. Ele
oferece a experiência associativa completa do QlikView além dos dados provenientes diretamente de fontes
de dados externas maiores e permite que os usuários combinem essas grandes quantidades de dados com
os dados armazenados na memória. Com o Direct Discovery, os usuários podem aproveitar todos os dados
úteis para a análise, sem limitações de escalabilidade.
Trabalhando com o QlikView - QlikView 12, November 2017
234
8 Introdução ao carregamento de dados
O recurso do Direct Discovery combina o recurso associativo do conjunto de dados da memória do QlikView
com um modelo de consulta onde nem todos os dados de origem são diretamente carregados no modelo de
dados do QlikView. O resultado da consulta agregada é transmitido de volta para a interface do usuário, para
que o conjunto de dados do Direct Discovery faça parte da experiência associativa. É possível acessar os
dados da memória e os dados do Direct Discovery como um conjunto unificado.
É possível criar gráficos para analisar os dados dos conjuntos de dados combinados, fazer seleções nos
dados em memória ou nos dados do Direct Discovery e visualizar as associações em todos eles com as
mesmas cores características do QlikView: verde, branco e cinza.
Para usar o Direct Discovery no QlikView, é necessário usar funções especiais no script de carregamento. A
maneira como os gráficos são criados a partir dos campos do Direct Discovery difere um pouco da forma
como acontece quando trabalhamos com outras fontes de dados, e como nem todos os dados são mantidos
em memória, pode haver problemas de desempenho quando grandes quantidades de dados são
recuperados.
Diferenças entre os dados em memória e os dados do Direct
Discovery
Modelo na memória
No modelo na memória do QlikView, todos os valores exclusivos nos campos selecionados a partir de uma
tabela no script de carga são carregados nas estruturas de campo e os dados associativos são
simultaneamente carregados na tabela. Os dados de campo e os dados associativos são mantidos na
memória.
Trabalhando com o QlikView - QlikView 12, November 2017
235
8 Introdução ao carregamento de dados
Uma segunda tabela relacionada, carregada na memória compartilharia um campo comum, e essa tabela
poderia adicionar novos valores exclusivos ao campo comum ou poderia compartilhar os valores existentes.
Trabalhando com o QlikView - QlikView 12, November 2017
236
8 Introdução ao carregamento de dados
Direct Discovery
Quando os campos da tabela são carregados com um comando Direct Discovery
LOAD (Direct Query),
uma tabela semelhante é criada apenas com os campos
DIMENSION. Como ocorre com os campos da
memória, os valores exclusivos dos campos
DIMENSION são carregados na memória. No entanto, as
associações entre os campos são deixadas no banco de dados.
Trabalhando com o QlikView - QlikView 12, November 2017
237
8 Introdução ao carregamento de dados
MEASURE são valores dos campos também deixados no banco de dados.
Trabalhando com o QlikView - QlikView 12, November 2017
238
8 Introdução ao carregamento de dados
Depois que a estrutura do Direct Discovery é estabelecida, os campos do Direct Discovery podem ser usados
com determinados objetos de gráfico e podem ser usados para associações com os campos da memória.
Quando um campo do Direct Discovery é usado, o QlikView automaticamente cria a consulta do SQL
adequada para ser executada nos dados externos. Quando as seleções são feitas, os valores dos dados
associados dos campos do Direct Discovery são usados nas condições WHERE das consultas do banco de
dados.
Com cada seleção, os gráficos com os campos do Direct Discovery são recalculados, com os cálculos
ocorrendo na tabela da base de dados de origem, por meio da execução da consulta SQL criada pelo
QlikView. O recurso de condição de cálculo pode ser usado para especificar quando gráficos devem ser
recalculados. Até que a condição seja atendida, o QlikView não envia consultas para recalcular os gráficos.
Diferenças de desempenho entre os campos da memória e os campos do
Direct Discovery
O processamento na memória é sempre mais rápido do que o processamento nos bancos de dados de
origem. O desempenho do Direct Discovery reflete o desempenho do sistema que executa o banco de dados
que processa as consultas do Direct Discovery.
Trabalhando com o QlikView - QlikView 12, November 2017
239
8 Introdução ao carregamento de dados
É possível usar as práticas recomendadas de ajuste de consulta e banco de dados para o Direct Discovery.
Todo o ajuste de desempenho deve ser feito no banco de dados de origem. O Direct Discovery não oferece
suporte para o ajuste de desempenho da consulta a partir do documento do QlikView. No entanto, é possível
fazer chamadas paralelas e assíncronas para o banco de dados com o recurso de pool de conexão. A sintaxe
do script de carga para configurar o recurso de pool é a seguinte:
SET DirectConnectionMax=10;
O armazenamento em cache do QlikView também melhora a experiência geral do usuário. Consulte
Armazenamento em cache e o Direct Discovery (página 241) abaixo.
O desempenho do Direct Discovery com os campos
DIMENSION também pode ser melhorado
desvinculando alguns dos campos das associações. Isto é feito com a palavra-chave
DETACH em DIRECT
QUERY. Embora os campos desvinculados não sejam consultados para associações, eles ainda fazem
parte dos filtros, acelerando os tempos de seleção.
Embora QlikView os campos da memória e Direct Discovery
DIMENSION mantenham todos os seus dados
na memória, a maneira pela qual eles são carregados afeta a velocidade das cargas na memória. Os campos
da memória do QlikView mantêm apenas uma cópia do valor de campo quando existirem várias instâncias
do mesmo valor. No entanto, todos os dados do campo são carregados e, em seguida, os dados duplicados
são classificados.
Compartilhe com seus amigos: |