Entender la sintaxis de script y las estructuras de datos

Extraer, transformar y cargar

En general, la forma de cargar datos en la app se puede explicar mediante los procesos de extracción, transformación y carga:

  • Extraer

    El primer paso consiste en extraer datos del sistema de origen de datos. En un script, se utilizan las sentencias SELECT o LOAD para definir esto. Las diferencias entre estas sentencias son las siguientes:

    • SELECT sirve para seleccionar datos desde una fuente de datos ODBC o proveedor de OLE DB. La sentencia SELECT SQL la evalúa el proveedor de datos y no Qlik Sense.
    • La sentencia LOAD carga datos desde un archivo, desde datos definidos en el script, desde una tabla previamente cargada, desde una página web, desde el resultado de una sentencia SELECT posterior, o bien generando los datos automáticamente.
  • Transformar

    La etapa de transformación consiste en la manipulación de los datos mediante las funciones de script y las reglas para derivar la estructura deseada del modelo de datos. Las operaciones habituales son:

    • Calcular nuevos valores
    • Traducir los valores codificados
    • Renombrar campos
    • Unir tablas
    • Agregar los valores
    • Pivotar
    • Validar los datos
  • Cargar

    En el paso final, se ejecuta el script para cargar el modelo de datos que se ha definido en la app.

El objetivo debería ser crear un modelo de datos que permita una manipulación eficaz de los datos en Qlik Sense. Por lo general esto significa que deberíamos buscar un esquema de estrella razonablemente normalizado o un esquema en copo de nieve sin referencias circulares, esto es, un modelo en el que cada entidad se almacena en una tabla aparte. En otras palabras, un modelo de datos típico presentaría el siguiente aspecto:

  • Una tabla de hechos central que contiene claves a las dimensiones y los números utilizados para calcular medidas (como número de unidades, cifras de ventas y cifras de presupuestos).
  • Unas tablas secundarias alrededor conteniendo las dimensiones con todos sus atributos (como productos, clientes, categorías, calendario y proveedores).
Nota: En muchos casos es posible resolver una tarea, por ejemplo agregaciones, bien creando un modelo de datos más rico o bien realizando las agregaciones en las expresiones del gráfico. Como regla general, experimentará un mejor rendimiento si mantiene las funciones de transformación de datos en el script de carga.
Sugerencia: Es una buena práctica escribir primero un boceto del modelo de datos en papel. Esto le ayudará a estructurar qué datos extraer y qué transformaciones efectuar.

Sentencias de carga de datos

Los datos se cargan mediante sentencias LOAD o SELECT. Cada una de estas sentencias genera una tabla interna. Una tabla siempre se puede considerar como un listado de algo, cada registro (fila) es por tanto una nueva instancia del tipo de objeto y cada campo (columna) un atributo específico o una propiedad del objeto.

Las diferencias entre estas sentencias son las siguientes:

  • SELECT sirve para seleccionar datos desde una fuente de datos ODBC o proveedor de OLE DB. La sentencia SELECT SQL la evalúa el proveedor de datos y no Qlik Sense.
  • La sentencia LOAD carga datos desde un archivo, desde datos definidos en el script, desde una tabla previamente cargada, desde una página web, desde el resultado de una sentencia SELECT posterior, o bien generando los datos automáticamente.

Reglas:

Tenga en cuenta las siguientes reglas cuando vaya a cargar datos en Qlik Sense:

  • Qlik Sense no distingue entre las tablas generadas por una sentencia LOAD o SELECT. Esto significa que, al cargar varias tablas, no importa si se cargan mediante sentencias LOAD o SELECT o una combinación de ambas.
  • El orden de los campos en la sentencia o en la tabla original de la base de datos es indiferente para la lógica de Qlik Sense.
  • Los nombres de los campos se utilizan en el proceso posterior para identificar los campos y establecer asociaciones. Los nombres distinguen entre mayúsculas y minúsculas, por eso en muchas ocasiones habrá que cambiarlos de nombre en el script.

Ejecución de script

Por lo general, el orden de eventos de una típica sentencia LOAD o SELECT es el siguiente:

  1. Evaluación de las expresiones
  2. Renombrado de campos por as
  3. Renombrado de campos por alias
  4. Cualificar los nombres de campos
  5. Enlazar datos en nombres de campo que coinciden
  6. Almacenar los datos en una tabla interna