Capacitación
CookBook
1.Extracción de Datos
Conexión OLE DB:
• Se hace directamente desde Sense
• Ejemplo si la base de datos es Access uso el driver:
Microsoft Jet 4.0 OLE DB Provider (32 Bit)
1. Poner la ruta, nombre y formato del archivo
2. Una vez creada la conexión, Insertar String de conexión en
el script
• a) Icono para insertar conexión de String
b) Icono para extraer tablas de la DB
c) Icono para modificar la ruta
a b c
1.Extracción de Datos
Conexión Archivos Web:
Sense puede conectarse también a archivos web
1) Insertar la URL
2) Insertar el nombre de la conexión
1.Extracción de Datos
Conectores a Fuentes de datos:
1.Extracción de Datos
Legacy Mode:
• Sense es un producto en desarrollo y muchas características no son posibles en modo estándar
• Ejemplo:
1. Crear conexión customizada a strings ODBC/OLEDB
2. Conectarse a SAP
3. Ejecutar el comando EXECUTE
• Para llevar a cabo estas tareas es necesario setear
• QS en modo Legacy
1.Extracción de Datos
Procedimiento para activar el Legacy Mode en Qlik Sense Server:
1) Clickear en el botón Engine 3) Clickear la Propiedad Advanced
2) Editar el nodo Central 4) Desactivar el Standard Mode
5) Reiniciar el Servicio Qlik Engine
1.Extracción de Datos
Invocar ayuda en el editor de script:
• En el caso de tener alguna duda sobre alguna
función:
1. Clickear el signo de pregunta
2. Clickear sobre la función subrayada que
tengo dudas
3. Se abrirá la pagina de consultas de Qlik
help.qlik.com/ con la función especifica
1.Extracción de Datos
Visor de modelo de datos:
1. Colapsar todo: Reduce las tablas a solamente sus títulos
2. Colapso Link: Reduce las tablas a sus campos Link
3. Expandir todo
4. Visor: representación interna del modelo de datos
5. Layout: Provee opciones para alinear la grilla de la tabla
6. Preview: Vista previa de la tabla
Cuando se selecciona una tabla en el visor,
todas las tablas relacionadas están en naranja
1.Extracción de Datos
Metadata de cada campo del modelo:
● Densidad: Porcentaje de filas del campo que
contienen un valor no-nulo
● Ratio de Subconjunto: Porcentaje de
valores distinct de un campo comparado con
el modelo de Datos
● Contiene Duplicados: True/False
(Corroborar en campos claves)
● Total de valores distintos: Valores
DISTINCT del campo
● Total de valores distintos: Total de valores
distintos en el modelo de datos del campo
● Valores presentes distintos: Valores
distintos en la tabla presente
● Etiquetas: El tipo de dato ($text, $numeric,
$ascii, $integer, etc.)
2. Script
Problema: Solución:
• Cada vez que se salva el script, se detectan 1. Apretar este botón para pasar al
errores de sintaxis panel de debuggeo
2. Seleccionar registros a
cargar por cada tabla
3. Precionar botón de salida para ver Log de carga
Resaltado
Alarma quedónde
indica en qué Log de carga
está el error
pestaña está el error
Número de
errores
Tipo de Error
2. Script
Uso de flags para lectura optimizada de Script
Antes: Después:
Expresión: Script:
SUM({<YearFlag_2015={1}>}Sales) IF(Year(DateID)=2015,1,0) AS YearFlag_2015
Expresión:
SUM({<YearFlag_2015={1}>}Sales)
2. Script
Uso de Loops para el caso de Preceding Loads
Loop: For...Each...Next
• Problema:
• Cuando se realizan cargas con * (Wildcard), y se realiza un Preceding Load, este tipo de carga solo aplica a
la primera carga
• Solución:
1.For Each => Específico la carpeta
• y el tipo de archivo a extraer
1. Load => Cargo la tabla con el Preceding Load
2. Next => Pasar al siguiente archivo
El proceso va a iterar por la cantidad de archivos
especificados que se encuentren en la carpeta
2. Script
Uso de Subrutinas en Qlik Sense
• Para este ejemplo de realización de subrutinas, se utilizarán funciones que solo están habilitadas en
modo Legacy
1. En un Notepad, se genera la subrutina 2. Se realiza un INCLUDE en el script para sumar
3. Se llama la subrutina pasando los dos
parámetros
vMinDate vMaxDate
3. Funciones útiles
Previous
• ¿Para que?
• Útil para definir si un registro esta basado en el registro anterior
• Parámetros:
• Expresión: Campo que contiene la data para ser analizada
• Ejemplo:
EmployeeInt:
LOAD
*,
if([EmployeeID]= previous([EmployeeID]),'No','Yes') AS LatestRecordFlag
RESIDENT EmployeeIntTemp;
3. Funciones útiles
IntervalMatch
• ¿Para que?:
• El prefijo IntervalMatch se utiliza para crear una tabla que coincida valores numéricos discretos con
intervalos
• Parámetros:
• Matchfield: Campo conteniendo el valor discreto que se linkeara con los intervalos
• Loadstatement: Tabla que contiene dos campos:
• El limite minimo de un intervalo
• El limite maximo de un intervalo
3. Funciones útiles
Ejemplo:
1) Se cargan los 3) Se le realiza un IntervalMatch a la tabla
eventos con los OrderLog con el campo discreto Time y se
horarios DISTINCT la joinea a la tabla EventLog
INNER JOIN (EventLog)
INTERVALMATCH(Time)
LOAD
2) Se carga la tabla Start,
con los intervalos End
RESIDENT OrderLog;
NetWorkDays()
• ¿Para que?:
• Útil para calcular los días laborables de un mes
• Parametros:
• Start Date: La primer fecha a evaluar
• End Date: La ultima fecha a evaluar
• Holiday: Periodos vacacionales a excluir de los días de trabajo
• Ejemplo:
• NetworkDays(Monthstart(Posting Date), Monthend(Posting Date), $(vPublicHolidays))
• La función devolverá los días laborables para cada mes
• NetworkDays(Yearstart(Posting Date), Yearend(Posting Date), $(vPublicHolidays))
• La función devolverá los días laborables para cada año
Concat()
• ¿Para que?
• Útil para cuando se quiere que valores de diferentes registros aparezcan
concentrados en una misma celda
• Parametros:
• String: Expresión o campo que contiene el string a procesar
• Delimitador: Los valores deben ser separador por un delimitador
• DISTINCT: Si la función tiene este DISTINCT, todos los duplicados serán omitidos
• Ejemplo:
• AGGR(Concat(DISTINCT Product,','),OrderID)
• Devuelve una cadena con todos los productos asociados a cada OrderID
Rangesum ()
• Para que?:
• Util para plotear valores acumulado en gráficos de tendencia => Gráfico de Paretto
• Función: RANGESUM(ABOVE(TOTAL Sum(Sales), 0, ROWNO(TOTAL)))
• Parámetros de función ABOVE:
• Expresión: Se calcula la expresión y se especifica TOTAL para que no este agregada
por la dimensión del objeto
• Offset: Hace que la función sea evaluada en la función actual
• Count: Parámetro que le pasa a la función Above el rango de filas que se espera que
evalué la función.
• Para cada fila, se especificará que haga el ABOVE para todas las filas de arriba
3. Funciones útiles
Fractile()
• Útil cuando se necesita dividir los valores de datos en 4 cuartiles
TOTAL => Sirve para no tener en
=If (Value <= Fractile (TOTAL Value, 0.25), 'Quartile 1', cuenta las dimensiones del objeto
If (Value <= Fractile (TOTAL Value, 0.50), 'Quartile 2',
If (Value <= Fractile (TOTAL Value, 0.75),'Quartile 3',
'Quartile 4')))
First Sorted Value()
• Parametros:
• Valor de la expresión: La función trae el valor de la expresión que corresponde con el
resultado del campo ordenado
• Expresión Ordenada: Campo que contiene la data que debe ser ordenada. Si se pone un
menos delante, el orden será descendente
• Expresión Rank: Se define cual es el valor que se quiere traer (por default es 1)
• Ejemplo:
• FirstSortedValue(Product, UnitSales, 1)
• La función devolverá el Producto con la menor cantidad de unidades vendidas
• FirstSortedValue(Product, -UnitSales, 2)
• La función devolverá el Segundo Producto con la mayor cantidad de unidades vendidas
4. Aplicación e Interfaz
Publicar en el Server aplicaciones creadas en desktop Tipos de Hojas
• Hojas Aprobadas:
• Una vez que la aplicación es publicada, las
1. Entro al QMC:
hojas pasan a ser aprobadas
https://<Qlik Sense Server Hostname>/QMC • No pueden ser modificadas, solo
2. Click en Apps bajo sección Manage Content
duplicadas como hojas Privadas
3. Click en Import (Abajo a la derecha) • Hojas Privadas
4. Seleccionar el archivo y presionar Publicar • Se crean duplicando hojas aprobadas o
creando nuevas hojas en aplicaciones
publicadas
• Hojas Comunitarias
• Pueden ser modificadas y publicadas por
mas de un usuario
6. Set Analysis
Set Anlysis y Concat Function:
• Supongase que cada Dealer tenga su familia de Productos y uno quiere saber cual es el promedio de sus
ventas comparado con el de la familia de los productos que vende
• Si selecciono dealer Dietrich, cuya familia de productos son Motos y Autos, la función de abajo hará lo
siguiente:
• Ignorar la selección de Dealer
• $(=CONCAT(DISTINCT chr(39) & Familia & chr(39), ',')) expandida dará como resultado= ‘Autos’,
‘Motos’
AVG(
{<
Dealer=
,Familia={$(=CONCAT(DISTINCT chr(39) & Familia & chr(39), ','))}
>}
Ventas)