¿Cómo implementar la carga incremental en QlikView?

Contenidos

En mi artículo anterior, discutimos «HCómo usar QVD para hacer su aplicación QlikView más eficiente?”. En este artículo, daremos un paso adelante para hacer que nuestra aplicación sea más eficiente al tratar con grandes datos transaccionales. Como mencioné en mi artículo anterior, estaba trabajando en una aplicación QlikView, donde tenía que mostrar las ventas a través de varios canales para frecuencias predefinidas (por ejemplo, Diariamente, Mensualmente, Anualmente).

Inicialmente, estaba recargando toda la tabla de transacciones a diario, aunque ya tenía los datos hasta ayer conmigo. Esto no solo llevó mucho tiempo, sino que también aumentó la carga en el servidor de la base de datos y la red. Aquí es donde la carga incremental con QVD hizo una gran diferencia al cargar solo datos nuevos o actualizados de la base de datos en una tabla.

Cargas incrementales:

La carga incremental se define como la actividad de cargar solo registros nuevos o actualizados de la base de datos en un QVD establecido. Las cargas incrementales son útiles porque se ejecutan de manera muy eficiente en comparación con las cargas completas, particularmente para grandes conjuntos de datos.

incremental_load_qlikview_1-300x214-9426153

La carga incremental se puede implementar de diferentes maneras, los métodos comunes son los siguientes:

  1. Insertar solo (no validar para registros duplicados)
  2. Insertar y actualizar
  3. Insertar, actualizar y eliminar

Entendamos cada uno de estos 3 escenarios con un ejemplo

1. Insertar solo:

Digamos que tenemos datos brutos de ventas (en Excel) y cada vez que se registra una nueva venta, se actualiza con detalles básicos sobre la venta por fecha de modificación. Dado que estamos trabajando en QVD, ya tenemos QVD creado hasta ayer (25 de agosto de 2014 en este caso). Ahora, quiero cargar solo los registros incrementales (resaltados en amarillo a continuación).

incremental_load_qlikview_2-3363379

Para realizar este ejercicio, primero cree un QVD para los datos hasta el 25 de agosto de 2014. Para identificar nuevos registros incrementales, necesitamos saber la fecha hasta la cual, QVD ya está actualizado. Esto se puede identificar verificando el máximo de Modified_date en el archivo QVD disponible.

Como se mencionó anteriormente, asumí que «Ventas. qvd”Se actualiza con datos hasta el 25 de agosto de 2014. Para identificar la última fecha de modificación de «Ventas. qvd”, El siguiente código puede ayudar:

incremental_load_qlikview_3-2733357

Aquí, cargué el último QVD actualizado en la memoria y luego identifiqué la fecha de la última modificación almacenando un máximo de «Fecha_de_modificación”. A continuación, almacenamos esta fecha en una variable «Last_Updated_Date«Y suelte la mesa»Ventas”. En el código anterior, he usado Ojeada() función para almacenar el máximo de fecha de modificación. Aquí está su sintaxis:

Peek (nombre de campo, número de fila, nombre de tabla)

Esta función devuelve el contenido de un campo dado para una fila especificada de la tabla interna. FieldName y TableName se deben proporcionar como una cadena y Row debe ser un número entero. 0 denota el primer registro, 1 el segundo y así sucesivamente. Los números negativos indican el orden desde el final de la tabla. -1 denota el último registro.

Dado que conocemos la fecha después de la cual los registros se considerarán nuevos registros, podemos cargar registros incrementales del conjunto de datos (cláusula Where en la instrucción Load) y fusionarlos con QVD disponible (mire la instantánea a continuación).

incremental_load_qlikview_4-8445503

Ahora, cargue QVD actualizado (Ventas), tendría registros incrementales.

incremental_load_qlikview_5-8385090

Como puede ver, se agregaron dos registros del 26 de agosto de 2014. Sin embargo, también hemos insertado un registro duplicado. Ahora podemos decir que un método de solo INSERTAR no valida los registros duplicados porque no hemos accedido a los registros disponibles.

Además, en este método no podemos actualizar el valor de los registros existentes.

Para resumir, los siguientes son los pasos para cargar solo los registros incrementales en QVD usando el método INSERT only:

1) Identificar nuevos registros y cargarlos
2) Concatenar estos datos con un archivo QVD
3) Reemplace el archivo QVD antiguo con una nueva tabla concatenada

2. Método de inserción y actualización:

Como se vio en el ejemplo anterior, no podemos realizar la verificación de registros duplicados y actualizar el registro existente. Aquí es donde, el método Insertar y Actualizar viene a ayudar:

incremental_load_qlikview_6-6322315

En el conjunto de datos anterior (tabla derecha), tenemos un registro (ID = PRD1458) para agregar y otro (ID = PRD858) para actualizar (valor de ventas de 131 a 140). Ahora, para actualizar y verificar registros duplicados, necesitamos una clave principal en nuestro conjunto de datos.

Supongamos que la identificación es la clave principal y, según la fecha de modificación y la identificación, deberíamos poder identificar y clasificar los registros nuevos o modificados.

Para ejecutar este método, siga pasos similares para identificar los nuevos registros como lo hemos hecho en el método INSERT only y mientras concatenamos los datos incrementales con uno existente, aplicamos la verificación de registros duplicados o actualizamos el valor de los registros existentes.

incremental_load_qlikview_7-4054219

Aquí, hemos cargado solo aquellos registros donde la clave principal (ID) es nueva y el uso de la función Exists () evita que QVD cargue los registros desactualizados ya que la versión ACTUALIZADA está actualmente en la memoria, por lo que los valores de los registros existentes se actualizan automáticamente.

Ahora, tenemos todos los registros únicos disponibles en QVD con un valor de venta actualizado para ID (PRD858).

incremental_load_qlikview_8-3073865

3. Método INSERTAR, ACTUALIZAR Y ELIMINAR:

La secuencia de comandos para este método es muy similar a INSERT & UPDATE, sin embargo, aquí tenemos un paso adicional necesario para eliminar los registros eliminados.

Cargaremos las claves primarias de todos los registros del conjunto de datos actual y aplicaremos una combinación interna con el conjunto de datos concatenados (Antiguo + Incremental). La combinación interna retendrá solo los registros comunes y, por lo tanto, eliminará los registros no deseados. Supongamos que queremos eliminar un registro de (ID PRD1058) en el ejemplo anterior.

incremental_load_qlikview_9-6365252

Aquí, tenemos un conjunto de datos con la adición de un registro (ID PRD1458), la modificación de un registro (ID PRD158) y la eliminación de un registro (ID PRD1058).

incremental_load_qlikview_10-2019641

Notas finales:

En este artículo, hemos discutido cómo las cargas incrementales son mejores y brindan una forma eficiente de cargar datos en comparación con la carga COMPLETA. Como buena práctica, debe tener una copia de seguridad periódica de los datos porque pueden verse afectados o puede producirse una pérdida de datos, si hay problemas con el servidor de la base de datos y la red.

Dependiendo de su industria y la necesidad de la aplicación, puede seleccionar qué método funciona para usted. La mayoría de las aplicaciones comunes en la industria BFSI se basan en Insertar y actualizar. Normalmente no se utiliza la eliminación de registros.

¿Ha enfrentado una situación similar o tiene otro truco para mejorar la eficiencia de las aplicaciones de Qlikview bajo su sombrero? Si es así, me encantaría escuchar sus pensamientos a través de los comentarios a continuación, ya que también beneficia a alguien más que intenta manejar una situación similar.

Si le gusta lo que acaba de leer y desea continuar con su aprendizaje sobre análisis, suscríbete a nuestros correos electrónicos, Síguenos en Twitter o como nuestro pagina de Facebook.

Suscribite a nuestro Newsletter

No te enviaremos correo SPAM. Lo odiamos tanto como tú.