Entendendo a sintaxe de script e as estruturas de dados

Extrair, transformar e carregar

Em geral, a maneira como os dados são carregados para o aplicativo pode ser explicada pelo processo extrair, transformar e carregar:

  • Extrair

    O primeiro passo é extrair os dados do sistema da fonte de dados. No script, você pode usar os comandos SELECT ou LOAD para definir isso. As diferenças entre estes comandos são:

    • SELECT é usado para selecionar dados de uma fonte de dados ODBC ou provedor OLE DB. O comando SELECT SQL é avaliado pelo provedor de dados e não pelo Qlik Sense.
    • LOAD é usado para carregar dados de um arquivo, de dados definidos no script, de uma tabela carregada anteriormente, de uma página da Web, do resultado de um comando SELECT subsequente ou gerando dados automaticamente.
  • Transformar

    A fase de transformação envolve a manipulação dos dados utilizando funções de script e regras para derivar a estrutura do modelo de dados desejado. As operações típicas são:

    • Cálculo de novos valores
    • Tradução de valores codificados
    • Renomeando campos
    • União de tabelas
    • Agregação de valores
    • Criação de tabela dinâmica
    • Validação de dados
  • Carregar

    Na etapa final, execute o script para carregar o modelo de dados definido no aplicativo.

Seu objetivo deve ser o de criar um modelo de dados que permita uma manipulação eficiente dos dados no Qlik Sense. Geralmente, isso significa que você deve apontar para um esquema de estrela ou de floco de neve razoavelmente normalizado, sem referências circulares, isto é, um modelo no qual cada entidade seja mantida em uma tabela separada. Em outras palavras, um modelo de dados típico teria a seguinte aparência:

  • uma tabela central de fatos que contém as chaves para as dimensões e os números usados para calcular medidas (como o número de unidades, o volume das vendas e os valores do orçamento).
  • tabelas adjacentes contendo as dimensões com todos os seus atributos (como produtos, clientes, categorias, calendário e fornecedores).
Nota: Em muitos casos é possível resolver uma tarefa (por exemplo, agregações) criando um modelo de dados mais rico no script de carregamento ou executando as agregações nas expressões do gráfico. Como regra geral, o desempenho será melhor se você mantiver as transformações de dados no script de carregamento.
Dica: Recomenda-se esboçar seu modelo de dados no papel. Isso ajuda a fornecer uma estrutura de quais dados extrair e quais transformações executar.

Comandos de carregamento de dados

Os dados são carregados pelos comandos LOAD ou SELECT. Cada um desses comandos gera uma tabela interna. Uma tabela pode sempre ser vista como uma lista de algo, em que cada registro (linha) é uma nova instância do tipo de objeto e cada campo (coluna) é um atributo ou propriedade específica do objeto.

As diferenças entre estes comandos são:

  • SELECT é usado para selecionar dados de uma fonte de dados ODBC ou provedor OLE DB. O comando SELECT SQL é avaliado pelo provedor de dados e não pelo Qlik Sense.
  • LOAD é usado para carregar dados de um arquivo, de dados definidos no script, de uma tabela carregada anteriormente, de uma página da Web, do resultado de um comando SELECT subsequente ou gerando dados automaticamente.

Regras

As seguintes regras se aplicam durante o carregamento dos dados no Qlik Sense:

  • O Qlik Sense não diferencia as tabelas geradas por um comando LOAD ou SELECT. Dessa forma, se várias tabelas forem carregadas, não importa se as tabelas são carregadas pelos comandos LOAD ou SELECT ou por uma mistura de ambos.
  • A ordem dos campos no comando ou na tabela original da base de dados é arbitrária para a lógica do Qlik Sense.
  • Os nomes de campo são utilizados em processos adicionais para identificar campos e fazer associações. Eles diferenciam maiúsculas de minúsculas, o que costuma ser necessário para renomear campos no script.

Execução do script

Em um comando LOAD ou SELECT típico, a ordem dos eventos será aproximadamente a seguinte:

  1. Avaliação de expressões
  2. Renomeação de campos por as
  3. Renomeação de campos por alias
  4. Qualificação dos nomes de campo
  5. Mapeamento de dados em caso de correspondência dos nomes de campo
  6. Armazenamento de dados em uma tabela interna