En el ámbito de Business Inteligence y el análisis de datos, Power BI y Qlik Sense se destacan como dos de las plataformas más utilizadas. Sin embargo, presentan grandes diferencias en su enfoque y funcionalidades, como hemos visto en artículos anteriores.
Una de las diferencias más notables entre Power BI y Qlik Sense es el lenguaje de manipulación de tablas que utilizan. Power BI se basa en una interfaz de Power Query para realizar la transformación y manipulación de datos, aunque por detrás trabaja en lenguaje M.
Por otro lado, Qlik Sense utiliza su propio lenguaje de script, lo que puede presentar un desafío significativo durante los procesos de migración de una plataforma a otra. Mientras que el lenguaje de Qlik tiene similitudes con SQL, incluye también sentencias y funciones únicas que requieren un conocimiento específico para su correcta implementación y que analizaremos en este artículo.
Sentencias de script de Qlik Sense
Store
Esta sentencia crea un archivo QVD, CSV o TXT con los datos almacenados en una tabla. Si ya existiera el fichero, lo sobrescribiría.
Tenemos que ir con cuidado con esta sentencia al recargar los datos de una aplicación en el espacio de trabajo ya que podemos reemplazar los ficheros que usan otras aplicaciones. Por eso, recomendamos comentar este tipo de sentencias (usando una doble barra //) cuando se estén realizando pruebas en el espacio de trabajo o no se tenga un buen conocimiento de la herramienta.
La sintaxis de la sentencia sería la siguiente:
STORE * FROM Nombre_Tabla INTO ‘lib://Path/File.qvd’ (qvd);
Drop
Esta sentencia se utiliza para eliminar tablas o campos del modelo de datos de una aplicación. Por eso, no tiene impacto sobre el resto de las aplicaciones si la utilizamos en el espacio de trabajo.
La sintaxis de la sentencia para tablas es:
DROP TABLE Nombre_Tabla [, Nombre_Tabla2 …]
Y para campos:
DROP FIELD Nombre_Campo [, Nombre_Campo2 … FROM Nombre_Table]
Esta sentencia existe en SQL, pero elimina la tabla de la base de datos, no del modelo de datos de la aplicación.
Sentencias de script de Qlik Sense. Sentencia Exit Script
Esta sentencia finaliza la ejecución del script de la aplicación. Puede ser muy útil a la hora de estudiar los diferentes pasos en la transformación de datos o el funcionamiento de cierta sección de código. Tampoco afecta fuera del entorno de nuestra aplicación.
Load * Inline [ ]
Esta sentencia permite cargar una tabla introduciendo los valores manualmente. La primera fila de registros introducida se utilizará siempre como nombre de los campos.
Podemos ver un ejemplo de sintaxis al crear una tabla con dos campos, Especie y Tamaño, con registros para varios peces.
FACT_PECES:
LOAD * INLINE [
Especie, Tamaño,
Lubina, XL,
Gallo, M,
Carpin, S];
La tabulación es opcional pero facilita mucho la lectura del código.
Esta sentencia resultaría en la creación de la siguiente tabla:
Resident
Esta sentencia permite cargar los datos de una tabla previamente ya cargada. De esta forma, no hace falta que todas las tablas se carguen desde archivos QVDs o CSVs.
Siguiendo el ejemplo que estamos utilizando, si quisiéramos crear una tabla con los datos de los peces a mano, escribiríamos:
TABLA_RESIDENT:
LOAD
*
RESIDENT FACT_PECES;
De esta forma, la sentencia crearía la siguiente tabla:
ApplyMap
Esta sentencia une el campo que le pasamos con una tabla de dos columnas previamente cargada. Si encuentra el registro en la primera columna, devuelve el valor en la segunda columna. En caso contrario, devuelve por defecto un nulo o, de forma opcional, un parámetro.
Para cargar anteriormente la tabla que se usa para mapear debemos definirla con la sentencia MAPPING LOAD.
La sintaxis es la siguiente:
ApplyMap(‘Nombre_Tabla_Map’,Expresión, [Parametro]).
Podemos ver un ejemplo práctico con los datos que estábamos utilizando. Imaginemos que, desde origen, el tamaño de los peces se expresa utilizando su abreviación en letra (como las camisetas), pero queremos que aparezca el nombre en palabras.
Una opción sería concatenar una gran cantidad de IF ELSE hasta cumplir todas posibilidad. Sin embargo, lo óptimo sería utilizar un ApplyMap. Para ello, primero cargamos a mano una tabla que actúe como diccionario:
MAP_TALLA:
MAPPING LOAD * INLINE [
Talla, Nombre
XS, Muy Pequeño
S, Pequeño
M, Mediano
L, Grande
XL, Muy Grande
XXL, Muuuy Grande
];
Y luego, utilizamos el ApplyMap para añadir el campo adicional a la tabla ya cargada con el tamaño de los peces, que funcionaría como una tabla auxiliar.
FACT_PECES:
LOAD
*,
ApplyMap(‘MAP_TALLA’,Tamaño,’Sin Asignar’) AS [Tamaño text]
RESIDENT AUX_PECES
Así, crearíamos una nueva tabla con la columna Talla en formato texto. Si aparecieran nuevos registros que no hemos definido en el mapeo, llevarían el valor por defecto de “Sin asignar».
¡Y hasta aquí nuestra serie sobre Conceptos básicos de Qlik para desarrolladores de Power BI! Espero que haya resuelto vuestras dudas y os permita adentraros en este fascinante universo. ¡No olvidéis leer los artículos anteriores para aprender más sobre la herramienta y las funciones de Qlik Sense!
La diferencia entre entornos es abismal, lo cual dificulta en muchas ocasiones los procesos de migración entre plataformas. En hiberus, tenemos equipos especialistas en Data & Analytics que dominan ambas tecnologías con experiencia en la migración de aplicaciones de Qlik a Power BI. Si quieres saber más, no dudes en contactar con nosotros. ¡Estaremos encantados de resolver tus dudas!
¿Quieres más información sobre nuestros servicios de Data & Analytics?
Contacta con nuestro equipo de expertos en Data & Analytics