Saltar al contenido principal
Transformar datos

EN ESTA PÁGINA

Transformar datos

Puede transformar y manipular 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 por medio de 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
    Load script window with script to create new table called 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
    Sales_Buckets table in data model viewer.

  8. Añada los datos a una tabla en su app. Agregue Item y Customer 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
    New measure with formula.

    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
    Table showing customers that have made large orders.

  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
    Commented out script.

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. Transacciones:  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
    Load script with preceding load.

  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
    New field called transaction_date in data model viewer.