Diferenças entre os dados do Direct Discovery e os dados em memória | Qlik Sense no Windows Ajuda
Ir para conteúdo principal Pular para conteúdo complementar

Diferenças entre os dados do Direct Discovery e os dados em memória

Modelo na memória

No modelo na memória do Qlik Sense, 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.

One table with three fields.

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.

Two tables with a common field.

Direct Discovery

Quando os campos da tabela são carregados com um Direct Discovery LOAD comando (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.

One table with two dimension fields.

MEASURE são valores dos campos também deixados no banco de dados.

One table with measure field values left in the database.

Depois que a estrutura do Direct Discovery é estabelecida, os campos do Direct Discovery podem ser usados com determinados objetos de visualização e podem ser usados para associações com os campos da memória. Quando um campo do Direct Discovery é usado, o Qlik Sense automaticamente cria a consulta do SQL adequada para ser executada nos dados externos. Quando as seleções são feitas, os valores de dados associados dos Direct Discovery campos são usados nas WHERE condições das consultas do banco de dados.

Com cada seleção, as visualizações com os campos do Direct Discovery são recalculadas, com os cálculos ocorrendo na tabela do banco de dados de origem, por meio da execução da consulta do SQL criada pelo Qlik Sense. O recurso da condição do cálculo pode ser usado para especificar quando as visualizações devem ser recalculadas. Até que a condição seja atendida, o Qlik Sense não envia consultas para recalcular as visualizações.

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.

É 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. Direct Discovery não oferece suporte para ajuste de desempenho de consulta a partir do Qlik Sense aplicativo. 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 Qlik Sense também melhora a experiência geral do usuário. Consulte Armazenamento em cache e o Direct Discovery 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 Qlik Sense os campos da memória e Direct Discovery DIMENSION campos, ambos mantenham todos os seus dados na memória, a maneira pela qual eles são carregados afeta a velocidade das cargas na memória. Qlik Sense Os campos da memória mantêm apenas uma cópia de um valor de campo quando há 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.

DIMENSION são campos que também armazenam uma cópia do valor de campo, mas os valores duplicados são classificados no banco de dados antes de serem carregados na memória. Ao lidar com grandes quantidades de dados, como geralmente ocorre ao usar o Direct Discovery, os dados são carregados mais rapidamente como uma carga DIRECT QUERY do que seriam por meio da carga SQL SELECT, usada para os campos da memória.

Diferenças entre os dados da memória e os dados do banco de dados

DIRECT QUERY faz distinção entre maiúsculas e minúsculas ao fazer associações com os dados da memória. Direct Discovery seleciona dados de bancos de dados de origem de acordo com a distinção entre maiúsculas e minúsculas dos campos do banco de dados consultados. Se os campos do banco de dados não fizerem distinção entre maiúsculas e minúsculas, uma consulta do Direct Discovery poderia retornar dados que uma consulta da memória não retornaria. Por exemplo, se os seguintes dados existirem em um banco de dados que não faz distinção entre maiúsculas e minúsculas, uma Direct Discovery consulta do valor "Red" retornaria todas as quatro linhas.

Tabela de exemplo
ColunaA Coluna B
red um
Vermelho dois
Vermelho três
Vermelho quatro

Uma seleção na memória de "Red,", por outro lado, retornaria apenas:

Red two

O Qlik Sense normaliza os dados na medida que gera correspondências nos dados selecionados que os bancos de dados não fariam correspondências. Como resultado disso, uma consulta na memória pode gerar mais valores de correspondência do que uma consulta do Direct Discovery. Por exemplo, na tabela a seguir, os valores para o número "1" variam pela localização de espaços ao seu redor:

Tabela com valores diferentes para o número "1" por causa da diferente localização de espaços ao redor deles
ColunaA Coluna B
' 1' espaço_antes
'1' nenhum espaço
'1 ' espaço_depois
'2' dois

Se você selecionar "1" em uma Caixa de filtro para ColumnA, onde os dados estão na memória padrão do Qlik Sense, as primeiras três linhas são associadas:

Associated rows
ColumnA ColumnB
' 1' space_before
'1' no_space
'1 ' space_after

Se o Painel de filtro contiver Direct Discovery dados, a seleção de "1" poderia associar apenas "no_space". As correspondências retornadas para os dados do Direct Discovery dependem do banco de dados. Alguns retornam apenas "no_space" e alguns, como SQL Server, retornam "no_space" e "space_after".

Armazenamento em cache e o Direct Discovery

O armazenamento em cache do Qlik Sense armazena estados de seleção das consultas e os resultados de consultas associados na memória. Já que os mesmos tipos de seleções são feitas, o Qlik Sense aproveita a consulta do cache, em vez de consultar os dados de origem. Quando uma seleção diferente é feita, uma SQL consulta é feita na fonte de dados. Os resultados armazenados em cache são compartilhados entre os usuários.

  1. O usuário aplica a seleção inicial.

    SQL é transmitido para a fonte de dados subjacente.

  2. O usuário limpa a seleção e aplica a mesma seleção como uma seleção inicial.

    O resultado do cache é retornado, SQL não é transmitido para a fonte de dados subjacente.

  3. O usuário aplica uma seleção diferente.

    SQL é transmitido para a fonte de dados subjacente.

Um limite de tempo pode ser definido no armazenamento em cache com a DirectCacheSeconds variável do sistema. Assim que o limite de tempo é atingido, Qlik Sense limpa o cache para os resultados de consulta Direct Discovery que foram gerados para as seleções anteriores. O Qlik Sense, então, consulta os dados de origem para as seleções e recria o cache com base no limite de tempo designado.

O tempo de cache padrão para os resultados da consulta do Direct Discovery é de 30 minutos, a menos que a variável do sistema DirectCacheSeconds seja usada.

Esta página ajudou?

Se você encontrar algum problema com esta página ou seu conteúdo – um erro de digitação, uma etapa ausente ou um erro técnico – avise-nos!