Criando um aplicativo Direct Query com SQL personalizado
Crie modelos de dados no script de carregamento com uma consulta de SQL personalizado no aplicativo Direct Query. O SQL personalizado oferece uma alternativa ao uso do Gerenciador do modelo de dados para definir seu modelo de dados para o Direct Query.
Usar SQL personalizado para criar modelos de dados do Direct Query permite usar instruções SQL para definir tabelas e campos gerados pela consulta SQL em si. Além disso, comandos de SQL personalizado em um aplicativo Qlik podem usar variáveis de script de carregamento e macros de expressão Qlik nos comandos de SQL personalizado. Isso permite um modelo de dados mais dinâmico e permite que tabelas e colunas definidas por SQL personalizado se ajustem aos resultados de avaliação de variáveis ou expressões.
SQL personalizado pode ser usado sozinho no script de carregamento. Você também pode usar uma combinação de Gerenciador do modelo de dados e SQL personalizado no Editor da carga de dados para definir seu modelo de dados.
Se partes do modelo de dados puderem ser especificadas com o Gerenciador do modelo de dados, use o Gerenciador do modelo de dados para especificar essas partes para obter desempenho SQL ideal. O Gerenciador do modelo de dados é mais eficiente nas definições de tabelas para uso ao executar consultas do Direct Query no modelo de dados definido.
Para criar modelos de dados com SQL personalizado:
-
Adicione section directquery ao script de carregamento.
Somente uma seção SECTION DIRECTQUERY pode existir no script de carregamento. A seção deve ser a última seção em um script de carregamento.
Mesmo que você não tenha definido um modelo de dados com o Gerenciador do modelo de dados, adicionar um comando LIB CONNECT e depois um comando section directquery ao seu script de carregamento e carregar o script transformará seu aplicativo em um aplicativo Direct Query.
-
Construa seu modelo de dados com os seguintes comandos:
-
SELECT
Use comandos SELECT para selecionar as tabelas e colunas a serem carregadas. Por exemplo: <TableName> SELECT <custom SQL>.
Se você não definir seus próprios nomes de tabela no script de carregamento, as tabelas serão nomeadas como Table<número de linha do script>.
-
CREATE RELATIONSHIP
Use o CREATE RELATIONSHIP para definir relacionamentos entre campos e tabelas no modelo de dados.
-
DROP RELATIONSHIP
Use o DROP RELATIONSHIP para eliminar relacionamentos previamente definidos do modelo de dados.
-
DROP TABLE
Use DROP TABLE para eliminar tabelas previamente definidas do modelo de dados para evitar possíveis conflitos entre tabelas.
-
LET, SET
Use os comandos LET e SET para definir variáveis ou expressões Qlik.
As tabelas e os campos devem ter nomes exclusivos no modelo de dados. Se você definir uma tabela no Gerenciador do modelo de dados e depois tentar redefini-la no SQL personalizado, ela falhará, a menos que você elimine a tabela criada no Gerenciador do modelo de dados ou renomeie a tabela e os campos no SQL personalizado.
-
Os comandos de script não compatíveis na seção section directquery geram um erro ao carregar dados. As configurações de depuração de script ou continuação forçada serão ignoradas.
Para obter exemplos de scripts de carregamento de SQL personalizado, consulte Exemplos de SQL personalizado para o Direct Query.
SQL personalizado, variáveis e expressões
As definições de SQL personalizado no Direct Query permitem que você use variáveis de script e macros de expressão Qlik em um comando de SQL personalizado.
Essa capacidade traz influência e flexibilidade de variáveis e expressões dinâmicas ao modelo de dados de um aplicativo com tabelas e colunas definidas por SQL personalizado que se ajustam aos resultados de avaliação de variáveis ou expressões do Qlik.
Variáveis em SQL personalizado
Use os comandos SET ou LET para definir suas variáveis. Adicione variáveis em seu script de carregamento usando o formato $(<variable name>).
Exemplo: construindo um modelo de dados incluindo variáveis
As referências de variáveis no SQL personalizado são avaliadas no momento da recarga. Se o valor da variável for alterado durante o uso do aplicativo, a alteração não será refletida no SQL personalizado usando essa variável, a menos que um recarregamento do script seja executado.
Se você quiser variáveis dinâmicas em definições de SQL personalizado, faça referência a variáveis como partes de expressões Qlik para forçar essas variáveis a serem avaliadas em cada execução de consulta que usa essas definições de SQL personalizado.
Para obter mais informações sobre variáveis, consulte Trabalhando com variáveis no editor de carregamento de dados
Expressões em SQL personalizado
Você pode usar expressões para modificar o conteúdo do SQL personalizado enviado ao banco de dados remoto para representar tabelas e colunas no modelo de dados do aplicativo. As expressões usadas no modelo de dados devem ser resolvidas para um único valor.
Para testar se sua expressão é avaliada como um único valor, adicione-a como uma expressão a um KPI. Se funcionar, sua expressão poderá ser usada em seu SQL personalizado.
As expressões são avaliadas dinamicamente em cada execução de consulta que usa essas definições SQL. Sempre que um comando de SQL personalizado de tabelas ou campos usa expressões Qlik durante a execução de uma consulta, essas expressões Qlik são avaliadas primeiro para recuperar os resultados atuais das expressões. Esses resultados são inseridos no comando de SQL personalizado para serem executados em nome da consulta original. É possível que essas avaliações de expressões Qlik possam, por sua vez, gerar consultas SQL para o banco de dados remoto. É possível que essas avaliações de expressões Qlik possam, por sua vez, gerar consultas SQL para o banco de dados remoto.
Se uma expressão não for expandida durante o carregamento, ela retornará um valor nulo. Isso não significa que sua expressão seja inválida. Sua expressão pode exigir que um usuário faça seleções em um aplicativo para avaliação.
Exemplo: construindo um modelo de dados com expressões Qlik
Criando um modelo de dados com SQL personalizado e Gerenciador do modelo de dados
Você pode usar uma combinação de SQL personalizado e Gerenciador do modelo de dados para criar seu modelo de dados para o Direct Query. No entanto, existem algumas considerações práticas:
-
Como prática recomendada, conclua a modelagem que você queira fazer no Gerenciador do modelo de dados antes de adicionar SQL personalizado ao script de carregamento. SQL personalizado e o Gerenciador do modelo de dados são melhor usados em conjunto quando o Gerenciador do modelo de dados é usado para definir as tabelas carregadas e os relacionamentos entre os campos, e o SQL personalizado é usado para personalizações adicionais.
-
A parte do modelo de dados criada pelo Gerenciador do modelo de dados e a parte criada pelo SQL personalizado são gerenciadas separadamente e depois combinadas durante o recarregamento do script. O Gerenciador do modelo de dados não exibe nenhum modelo de dados definido pelo SQL personalizado. Para visualizar seu modelo de dados completo, use Visualizador do modelo de dados.
-
O modelo de dados criado pelo Gerenciador do modelo de dados e o modelo de dados definido pelo seu SQL personalizado devem usar a mesma conexão de banco de dados.
-
Você pode mover o comando IMPORT LIVE adicionado ao seu script de carregamento pelo Gerenciador do modelo de dados. O script de carregamento é avaliado sequencialmente, portanto, sua nova posição pode impactar seus requisitos de SQL personalizado. Por exemplo, poderia criar relacionamentos indesejados ou duplicar nomes de tabelas no modelo de dados final.
-
As tabelas e os campos devem ter nomes exclusivos em seu modelo de dados. Se você definir uma tabela no Gerenciador do modelo de dados e depois tentar redefini-la no SQL personalizado, ela falhará, a menos que você elimine a tabela criada no Gerenciador do modelo de dados ou renomeie a tabela e os campos no SQL personalizado.
Limitações
SQL personalizado para o Direct Query tem as seguintes limitações:
-
O SQL personalizado só pode usar um único banco de dados.
-
Um aplicativo Direct Query que usa um ou mais comandos de SQL personalizado com macros de expressão Qlik incorporadas não pode ser usado como um aplicativo de seleção para aplicativos On-Demand. Isso ocorre porque qualquer aplicativo de modelo gerado, sendo um aplicativo na memória, não pode oferecer suporte a macros de expressão do Qlik em seu script de carregamento.
-
O SQL personalizado do Direct Query não é compatível com scripts adicionados ao Análises do Analytics. Para obter mais informações sobre scripts, consulte Trabalhando com scripts no catálogo.