Saltar al contenido principal Saltar al contenido complementario

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.

  1. Abra el Editor de carga de datos en la app Scripting Tutorial.
  2. Haga clic en la pestaña Sales.
  3. Agregue lo siguiente al final de su script:
  4. 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:

    Cargue la ventana de script con un script para crear una nueva tabla denominada Sales_Buckets

    Cargue la ventana de script con un script para crear una nueva tabla denominada Sales_Buckets.
  5. Haga clic en Cargar datos.
  6. 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ó.
  7. Tabla Sales_Buckets en el visor del modelo de datos

    Tabla Sales_Buckets en el visor del modelo de datos.
  8. 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:
  9. = Sum(High_Quantity) / Count(High_Quantity)

    Nueva medida con la fórmula

    Nueva medida con la fórmula.

    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.

    Tabla que muestra los clientes que han realizado grandes pedidos

    Tabla que muestra los clientes que han realizado grandes pedidos.
  10. Ahora que hemos terminado este ejemplo, comente el script de la variable quantity_threshold y la tabla Sales_Buckets.
  11. El final de su script ahora presentará el siguiente aspecto:

    El script comentado

    El script comentado.

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.

  1. Cree una nueva app y denomínela ReformatDate.
  2. Abra el editor de carga de datos y luego cree una nueva pestaña llamada TransactionData.
  3. Agregue el siguiente script:
  4. 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:

    Script de carga con un load precedente

    Script de carga con un load precedente.
  5. Haga clic en Cargar datos.
  6. 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.
  7. Nuevo campo denominado transaction_date en el visor del modelo de datos

    Nuevo campo denominado transaction_date en el visor del modelo de datos.

¿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.