Saltar al contenido principal Saltar al contenido complementario

Crear una app de Direct Query con SQL personalizado

Cree modelos de datos en el script de carga con una consulta SQL personalizada en su app de Direct Query. SQL personalizado ofrece una alternativa al uso de Gestor del modelo de datos para definir su modelo de datos de Direct Query.

El uso de SQL personalizado para crear modelos de datos de Direct Query le permite utilizar sentencias SQL para definir tablas y campos generados por la propia consulta SQL. Además, las sentencias SQL personalizadas en una app de Qlik pueden utilizar variables de script de carga y macros de expresión de Qlik en sus sentencias SQL personalizadas. Esto permite un modelo de datos más dinámico y permite que sus tablas y columnas personalizadas definidas por SQL se ajusten a los resultados de evaluación de variables o expresiones.

El SQL personalizado se puede utilizar solo en el script de carga. También puede utilizar una combinación de SQL personalizado y Gestor del modelo de datos en Editor de carga de datos para definir su modelo de datos.

Nota de sugerencia

Si se pueden especificar partes del modelo de datos con Gestor del modelo de datos, utilice el Gestor del modelo de datos para especificar esas partes para un rendimiento SQL óptimo. Gestor del modelo de datos es más eficiente en las definiciones de tablas para su uso al ejecutar consultas de Direct Query en el modelo de datos definido.

Para crear modelos de datos con SQL personalizado:

  1. Agregue section directquery a su script de carga.

    Solo puede existir una sección SECTION DIRECTQUERY en el script de carga. La sección debe ser la última sección de un script de carga.

    Incluso si no ha definido un modelo de datos con Gestor del modelo de datos, agregar una sentencia LIB CONNECT y luego una sentencia section directquery a su script de carga y cargar el script comandos convertirá su aplicación en una aplicación de Direct Query.

  2. Cree su modelo de datos con las siguientes sentencias:

    • SELECT

      Utilice sentencias SELECT para seleccionar las tablas y columnas que debe cargar. Por ejemplo: <TableName> SELECT <custom SQL>.

      Si no define sus propios nombres de tablas en el script de carga, las tablas se denominarán Table<número > de línea del script.

      Select

    • CREATE RELATIONSHIP

      Utilice CREATE RELATIONSHIP para definir relaciones entre campos y tablas en el modelo de datos.

      Create relationship

    • DROP RELATIONSHIP

      Utilice DROP RELATIONSHIP para eliminar relaciones previamente definidas del modelo de datos.

      Eliminar relación

    • DROP TABLE

      Utilice DROP TABLE para eliminar tablas definidas previamente del modelo de datos y evitar posibles conflictos entre tablas.

    • LET, SET

      Utilice sentencias LET y SET para definir variables o expresiones de Qlik.

      Let

      Set

    Las tablas y los campos deben tener nombres exclusivos en todo su modelo de datos. Si define una tabla en el Gestor del modelo de datos y luego intenta redefinir la tabla en SQL personalizado, fallará a menos que elimine la tabla creada en Gestor del modelo de datos o cambie el nombre de la tabla y los campos en su SQL personalizado.

Cualquier sentencia de script que no sea compatible con la sección section directquery genera un error al cargar los datos. Se ignorará cualquier configuración para la depuración de scripts o la continuación forzada.

Para ver ejemplos de scripts de carga SQL personalizados, consulte Ejemplos de SQL personalizado para Direct Query.

SQL personalizado, variables y expresiones

Las definiciones de SQL personalizado en Direct Query le permiten utilizar tanto variables de script como macros de expresiones de Qlik dentro de una sentencia de SQL personalizada.

Esta capacidad aporta una influencia dinámica de variables y expresiones y flexibilidad al modelo de datos de una aplicación con tablas y columnas personalizadas definidas por SQL que se ajustan a los resultados de evaluación de variables o expresiones de Qlik.

Variables en SQL personalizado

Utilice sentencias SET o LET para definir sus variables. Agregue variables en su script de carga usando el formato $(<variable name>).

Ejemplo: construir un modelo de datos que incluya variables

Las referencias a variables en SQL personalizado se evalúan en el momento de la recarga. Si el valor de la variable cambia durante el uso de la aplicación, el cambio no se reflejará en el SQL personalizado usando esa variable a menos que se realice una recarga del script.

Si desea variables dinámicas en definiciones SQL personalizadas, haga referencia a las variables como partes de expresiones de Qlik para obligar a que esas variables se evalúen en cada ejecución de consulta que utilice esas definiciones SQL personalizadas.

Para obtener más información sobre las variables, vea Trabajar con variables en el editor de carga de datos

Expresiones en SQL personalizado

Puede usar expresiones para modificar el contenido del SQL personalizado que se envía a la base de datos remota para representar tablas y columnas en el modelo de datos de la aplicación. Las expresiones utilizadas en el modelo de datos deben equivaler a un único valor.

Nota de sugerencia

Para probar si su expresión se evalúa como un valor único, agréguela como expresión a un KPI. Si funciona, entonces su expresión se puede usar en su SQL personalizado.

Las expresiones se evalúan dinámicamente en cada ejecución de consulta que utiliza esas definiciones SQL. Cada vez que una sentencia SQL personalizada de tablas o campos utiliza expresiones de Qlik durante la ejecución de una consulta, esas expresiones de Qlik se evalúan primero para recuperar los resultados actuales de las expresiones. Estos resultados se insertan en la sentencia SQL personalizada que se ejecutará en nombre de la consulta original. Es posible que estas evaluaciones de expresiones de Qlik puedan a su vez generar consultas de SQL a la base de datos remota. Es posible que estas evaluaciones de expresiones de Qlik puedan a su vez generar consultas de SQL a la base de datos remota.

Si una expresión no se expande durante la carga, devolverá un valor nulo. Esto no significa que su expresión no sea válida. Su expresión puede requerir que un usuario realice selecciones en una aplicación para evaluarla.

Ejemplo: crear un modelo de datos con expresiones de Qlik

Crear un modelo de datos con SQL personalizado y Gestor del modelo de datos

Puede utilizar una combinación de SQL personalizado y Gestor del modelo de datos para crear su modelo de datos para Direct Query. Sin embargo, existen algunas consideraciones prácticas:

  • Como práctica recomendada, termine cualquier modelado que desee realizar en Gestor del modelo de datos antes de agregar SQL personalizado al script de carga. El SQL personalizado y Gestor del modelo de datos se usan mejor juntos cuando se utiliza Gestor del modelo de datos para definir las tablas cargadas y las relaciones entre campos, y el SQL personalizado se usa para personalizaciones adicionales.

  • La parte del modelo de datos creado por Gestor del modelo de datos y la parte creada por SQL personalizado se administran por separado y luego se combinan durante la recarga del script. Gestor del modelo de datos no muestra ninguno de los modelos de datos definidos por SQL personalizado. Para ver su modelo de datos completo, utilice Visor del modelo de datos.

  • El modelo de datos creado por Gestor del modelo de datos y el modelo de datos definido por su SQL personalizado deben utilizar la misma conexión de base de datos.

  • Puede mover la sentencia IMPORT LIVE agregada a su script de carga por el Gestor del modelo de datos. El script de carga se evalúa secuencialmente, por lo que su nueva posición puede afectar a sus requisitos SQL personalizados. Por ejemplo, podría crear relaciones no deseadas o duplicar nombres de tablas en el modelo de datos final.

  • Las tablas y los campos deben tener nombres exclusivos en todo su modelo de datos. Si define una tabla en el Gestor del modelo de datos y luego intenta redefinir la tabla en SQL personalizado, fallará a menos que elimine la tabla creada en Gestor del modelo de datos o cambie el nombre de la tabla y los campos en su SQL personalizado.

Limitaciones

SQL personalizado para Direct Query tiene las siguientes limitaciones:

  • SQL personalizado solo puede utilizar una única base de datos.

  • Una app de Direct Query que utilice una o más sentencias de SQL personalizado con macros de expresiones de Qlik integradas no se puede utilizar como app de selección para apps de Bajo demanda. Esto se debe a que cualquier aplicación de plantilla generada, al ser una aplicación en memoria, no puede admitir macros de expresiones de Qlik en su script de carga.

  • Los SQL Direct Query personalizados no se admiten para scripts añadidos en el centro de actividades de Analítica. Si desea más información sobre los scripts, consulte Trabajar con scripts en el catálogo.

¿Esta página le ha sido útil?

No dude en indicarnos en qué podemos mejorar si encuentra algún problema en esta página o su contenido, como, por ejemplo, errores tipográficos, pasos que falta o errores técnicos.