Transformar datos
Puede transformar y manipular los datos utilizando muchas técnicas diferentes en el Editor de carga de datos.
Una de las ventajas de la manipulación de datos es que puede elegir cargar solo un subconjunto de los datos de un archivo (por ejemplo, determinadas columnas de una tabla) para que los datos se manipulen de forma más eficaz. También puede cargar los datos más de una vez a fin de dividir los datos sin procesar en varias tablas lógicas nuevas. También es posible cargar los datos de más de una fuente y combinarlos en una sola tabla en Qlik Sense.
En este tema, realizará una transformación de datos básica utilizando un Resident load y luego un Preceding load.
Resident LOAD
Puede utilizar el cualificador de origen Resident en una sentencia LOAD para cargar datos desde una tabla previamente cargada. Esto también es útil cuando desea efectuar cálculos en los datos cargados con una sentencia SELECT donde no tiene la opción de usar funciones Qlik Sense, como la fecha o el manejo de valores numéricos.
En este ejemplo, creará una nueva tabla denominada Sales_Buckets y luego cargará los datos desde Table1 usando un load residente. En la tabla Sales_Buckets, creará una variable denominada quantity_threshold y después usará una sentencia Where para cargar únicamente datos que satisfagan dicho umbral.
- Abra el Editor de carga de datos en la app Scripting Tutorial.
- Haga clic en la pestaña Sales.
- Agregue lo siguiente al final de su script:
- Haga clic en Cargar datos.
- Abra el Visor del modelo de datos. Puede ver que ha creado una nueva tabla denominada Sales_Buckets con los datos cargados de acuerdo con los campos que especificó y el umbral que estableció.
- Añada los datos a una tabla de su app. Agregue Item, Customer y como dimensiones. Añada High-Quantity como una medida agregada en Count, y después de nuevo agregada en Sum. A continuación, agregue una nueva columna como medida con la siguiente fórmula:
- Ahora que hemos terminado este ejemplo, comente el script de la variable quantity_threshold y la tabla Sales_Buckets.
SET quantity_threshold = 12000;
Sales_Buckets:
LOAD
"Sales Qty" as "High_Quantity",
"Item Description" as "Item",
"Customer Number" as "Customer"
Resident Table1
Where ("Sales Qty" > $(quantity_threshold));
Su script debería tener el aspecto siguiente:
= Sum(High_Quantity) / Count(High_Quantity)
Su tabla muestra, por ejemplo, que el cliente Customer 10025737 ha realizado 4 grandes pedidos de High Top Dried Mushrooms (Champiñones secos de calidad superior), por una cantidad promedio de 14.800. Para ordenar los datos de los campos, cierre el modo Editar haciendo clic en Hecho.
El final de su script ahora presentará el siguiente aspecto:
LOAD precedente
Un load precedente le permite realizar transformaciones y aplicar filtros para que pueda cargar datos de una sola pasada. Básicamente, se trata de una sentencia LOAD que carga desde la sentencia LOAD o SELECT inferior, sin especificar un cualificador de origen como From o Resident, tal como se haría normalmente. Puede apilar cualquier número de sentencias LOAD de esta manera. En primer lugar se evaluará la sentencia final, luego la sentencia que por encima de esta y así sucesivamente hasta que se haya evaluado la sentencia del inicio.
Como ya se mencionó anteriormente en este tutorial, puede cargar datos en Qlik Sense mediante las sentencias LOAD y SELECT. Cada una de dichas sentencias genera una tabla interna. LOAD se usa para cargar datos de archivos o de una tabla inline, mientras que SELECT se usa para cargar datos procedentes de bases de datos. Ha utilizado datos de archivos en este tutorial. En este ejemplo, usará una tabla inline. No obstante, vale la pena señalar que se puede usar un load precedente por encima de una sentencia SELECT para manipular sus datos. Los conceptos básicos son los mismos que verá aquí usando LOAD.
Este ejemplo no tiene ninguna relación con los datos que se van a cargar en este tutorial. Solo se utiliza para mostrar un ejemplo del aspecto que puede tener un load precedente. Ahora creará una tabla inline en el editor de carga de datos llamada Transacciones. La interpretación de fechas se realizará en el LOAD precedente, donde se creará un nuevo campo llamado transaction_date. Este campo se crea desde el campo sale_date.
- Cree una nueva app y denomínela ReformatDate.
- Abra el editor de carga de datos y luego cree una nueva pestaña llamada TransactionData.
- Agregue el siguiente script:
- Haga clic en Cargar datos.
- Abra el Visor del modelo de datos. Seleccione y expanda la tabla Transacciones. Puede ver que todos los campos se cargaron según lo especificado por * en la sentencia de carga anterior. Se ha creado un nuevo campo denominado transaction_date. El campo tiene la fecha con otro formato.
Transactions:
Load *,
Date(Date#(sale_date,'YYYYMMDD'),'DD/MM/YYYY') as transaction_date;
Load * Inline [ transaction_id, sale_date, transaction_amount, transaction_quantity, customer_id, size, color_code
3750, 20180830, 23.56, 2, 2038593, L, Red
3751, 20180907, 556.31, 6, 203521, m, orange
3752, 20180916, 5.75, 1, 5646471, S, blue
3753, 20180922, 125.00, 7, 3036491, l, Black
3754, 20180922, 484.21, 13, 049681, xs, Red
3756, 20180922, 59.18, 2, 2038593, M, Blue
3757, 20180923, 177.42, 21, 203521, XL, Black ];
Su script debería tener el aspecto siguiente: