En el artículo anterior sobre Carga Incremental en QlikView - Parte 1, vimos como hacer una carga incremental bajo el esquema de Sólo Inserciones.
Ahora veremos como hacer una carga incremental con las dos opciones restantes que son Insertar y Actualizar y Insertar, Actualizar y Eliminar.
En nuestro ejercicio anterior hemos cargado, las siguientes filas/tabla en QlikView para luego guardarlo en un QVD.
Para este ejemplo, voy a añadir dos nuevas filas en mi tabla fuente.
Ahora nuestro objetivo es sólo cargar las dos nuevas filas y no sobreescribir toda la tabla.
1. Vamos a comenzar con la carga inicial.
2. Carga incremental, por ejemplo cargar las nuevas filas basándonos en la fecha del campo UltimaActualizacion.
3. Concatenar. Aquí podrás comprobar usando una Primary Key, para este caso vendría a ser el campo "Codigo", y cargar sólo aquellas filas donde tenemos una Primary Key distinta a las existentes. Esto asegurará que sólo se añaden nuevas filas y las filas existentes no se sobreescriben.
Esta opción es similar a la de Inserción y Actualización con única excepción que es necesario excluir/borrar los registros que se han eliminado del sistema de origen.
Para explicar este punto, he suprimido una fila y añadido una nueva fila a mi tabla fuente. He eliminado la fila donde Codigo = 6. Ahora mi tabla fuente se ve así:
Ahora utilizando la opción Insertar, Actualizar y Eliminar, usted debería ser capaz de cargar las nuevas filas y excluir los datos que fueron eliminados del sistema origen.
Siga los mismos pasos definidos anteriormente con la carga inicial, la carga incremental, concatenar y luego usar Inner Join para excluir los registros que fueron borrados del sistema origen.
Después de ejecutar esta carga, verá que las nuevas filas se añaden a su QVD y la fila que fue eliminada de su tabla fuente no aparecerá tampoco en su QVD.
Si selecciona desde el QVD y crear un cuadro de tabla, esta se verá como en la siguiente imagen, su QVD elimina el registro donde Codigo = 6 y se añade un nuevo registro donde Codigo = 16.
Las cargas incrementales son muy útiles cuando se tiene que cargar frecuentemente tablas transaccionales con grandes cantidades de datos y le preocupa mantener la integridad de los mismos.
Ahora veremos como hacer una carga incremental con las dos opciones restantes que son Insertar y Actualizar y Insertar, Actualizar y Eliminar.
Insertar y Actualizar
Una carga incremental de Inserción y Actualización es similar a la que vimos previamente de Sólo Inserción. En este tipo de carga incremental usted tomará las nuevas filas de la base de datos y las agregará al QVD existente.En nuestro ejercicio anterior hemos cargado, las siguientes filas/tabla en QlikView para luego guardarlo en un QVD.
Para este ejemplo, voy a añadir dos nuevas filas en mi tabla fuente.
Ahora nuestro objetivo es sólo cargar las dos nuevas filas y no sobreescribir toda la tabla.
1. Vamos a comenzar con la carga inicial.
//************** Carga Incremental - Solo Insertar ****************** //Carga Inicial Carga_Incremental1: LOAD Codigo, Categoria, Comida, Ubicación, UltimaActualizacion FROM DataIncremental.xlsx (ooxml, embedded labels, table is Tb_Incremental); Store Carga_Incremental1 Into 'D:\Qlik\Demos QlikView\Carga_Incremental\Qvd\Carga_Incremental1.qvd' (qvd);
2. Carga incremental, por ejemplo cargar las nuevas filas basándonos en la fecha del campo UltimaActualizacion.
//Cargar los registros nuevos y actualizados de la base de datos Carga_Incremental1: LOAD Codigo, Categoria, Comida, Ubicación, UltimaActualizacion FROM DataIncremental.xlsx (ooxml, embedded labels, table is Tb_Incremental) Where UltimaActualizacion >= '28/05/2015';
3. Concatenar. Aquí podrás comprobar usando una Primary Key, para este caso vendría a ser el campo "Codigo", y cargar sólo aquellas filas donde tenemos una Primary Key distinta a las existentes. Esto asegurará que sólo se añaden nuevas filas y las filas existentes no se sobreescriben.
Concatenate LOAD Codigo, Categoria, Comida, Ubicación, UltimaActualizacion FROM D:\Qlik\Demos QlikView\Carga_Incremental\Qvd\Carga_Incremental1.qvd (qvd) Where Not Exists(Codigo); Store Carga_Incremental1 Into 'D:\Qlik\Demos QlikView\Carga_Incremental\Qvd\Carga_Incremental1.qvd' (qvd);
Insertar, Actualizar y Eliminar
Esta opción es similar a la de Inserción y Actualización con única excepción que es necesario excluir/borrar los registros que se han eliminado del sistema de origen.
Para explicar este punto, he suprimido una fila y añadido una nueva fila a mi tabla fuente. He eliminado la fila donde Codigo = 6. Ahora mi tabla fuente se ve así:
Ahora utilizando la opción Insertar, Actualizar y Eliminar, usted debería ser capaz de cargar las nuevas filas y excluir los datos que fueron eliminados del sistema origen.
Siga los mismos pasos definidos anteriormente con la carga inicial, la carga incremental, concatenar y luego usar Inner Join para excluir los registros que fueron borrados del sistema origen.
Inner Join LOAD Codigo FROM DataIncremental.xlsx (ooxml, embedded labels, table is Tb_Incremental); Store Carga_Incremental1 Into 'D:\Qlik\Demos QlikView\Carga_Incremental\Qvd\Carga_Incremental1.qvd' (qvd);
Después de ejecutar esta carga, verá que las nuevas filas se añaden a su QVD y la fila que fue eliminada de su tabla fuente no aparecerá tampoco en su QVD.
Si selecciona desde el QVD y crear un cuadro de tabla, esta se verá como en la siguiente imagen, su QVD elimina el registro donde Codigo = 6 y se añade un nuevo registro donde Codigo = 16.
Las cargas incrementales son muy útiles cuando se tiene que cargar frecuentemente tablas transaccionales con grandes cantidades de datos y le preocupa mantener la integridad de los mismos.
Comentarios
Publicar un comentario