Qlikview : Sacando partido a la Recarga Parcial

Seguramente si has usado QlikView para construir reportes o dashboards, te has encontrado con la situación de querer cambiar o actualizar un montón de información que ya tenías previamente cargada.

Por ejemplo, supongamos que ya habiamos cargado los datos de 3 tablas desde distintas fuentes de datos, totalizando alrededor de 1 GB de información, y queremos corregir algo o actualizarla, después que ya están cargadas. En este ejemplo las 3 tablas serian algo así como: La TablaA que viene desde una base de datos, la TablaB que viene desde un gran archivo de texto plano separado por tabuladores y la TablaC que se carga directamente desde el editor.

El código sería algo de este estilo:

[Tabla-A]:
CONNECT TO [<string de conexión>] (XPassword is ...);
LOAD
a1,
a2,
sum(a3) as total;
group by a1, a2;
SELECT
a1,
a2,
a3
FROM
TablaA
;

[Tabla-B]:
LOAD b1,
b2,
b3
FROM
[C:\...\TablaB.txt]
(txt, codepage is 1252, embedded labels, delimiter is '\t', msq);

[Tabla-C]:
LOAD * INLINE [
c1;c2;c3
1983;1;1,172232
1983;2;1,141415
...
2011;1;1,029204
2011;2;1,012
] (delimiter is ';');

Luego de ingresar esto en el Editor de Script, le damos a Ejecutar Script (CTRL+R) y comienza la carga….

(15 minutos después)

Terminó la carga y….diablos!, nos dimos cuenta que nos faltó una tabla y que cargamos por error una columna mal. La pregunta entonces es: Si queremos cambiar algo, debemos volver a recargar todo de nuevo? y esperar otros 15 minutos más?. La respuesta, para nuestra suerte, es no.

Recarga Parcial

Afortunadamente para nosotros los impacientes Qlikview proporciona una funcionalidad llamada Recarga Parcial (Partial Reload). Esta instrucción ejecuta sólo las sentencias LOAD y SELECT precedidas por los prefijos REPLACE o ADD. El resto de los datos en las tablas no se ven afectados por este comando. Por lo tanto, si queremos actualizar algo, se debe anteponer dichos prefijos a toda sentencia LOAD y ejecutar la Recarga Parcial (no la carga normal).

Menú Recarga Parcial

Menú Recarga Parcial (Archivo --> Recarga Parcial)

Ejemplo: Si queremos agregar una nueva tabla, llamada TablaD, entonces ingresamos al Editor de Script:

[Tabla-D]:
ADD LOAD d1,
d2,
d3
FROM
[C:\...\TablaD.txt]
(txt, codepage is 1252, embedded labels, delimiter is '\t', msq);

Y ejecutamos la Recarga Parcial.

Ejemplo: Queremos actualizar la TablaB con información fresca, entonces ingresamos al Editor de Script y escribimos:

[Tabla-B]:
REPLACE LOAD b1,
b2,
b3
FROM
[C:\...\TablaB-actualizada.txt]
(txt, codepage is 1252, embedded labels, delimiter is '\t', msq);

Y ejecutamos la Recarga Parcial. Sencillo, no?

Más comandos útiles

Adicionalmente, Qlikview provee otros comandos choriflai, como diría Papelucho, que se pueden ejecutar durante la Recarca Parcial (y también durante una carga normal):

  • Para borrar un campo en todas las tablas en que aparezca dicho campo, utilizar Drop Column. Por ejemplo, cargamos un dato de los clientes que por temas de privacidad no se debe mostrar, digamos que es el campo RUT_Cliente. Se debe ingresar Drop Field RUT_Cliente; y el campo se eliminará de todas las tablas donde aparezca.
  • Para borrar uno o más campos de una o más tablas específicas, utilizar Drop Fields RUT_Cliente, Nombre_Cliente from Tabla1, Tabla2;
  • Para cambiar el nombre de una columna o campo en todas las tablas en que aparece, utlizar Rename Field. Por ejemplo, Rename Field Nombre_Cliente to Nombre_Apellidos_Cliente;
  • Para cambiar el nombre de una tabla existente, utilizar Rename Table. Por ejemplo, Rename Table TablaA to Clientes;
  • Para borrar una tabla existente, utilizar Drop Table. Por ejemplo, Drop Table TableA;

Recordar que todos estos comandos se puede utilizar en el script durante una carga normal, y como se puede ver, son especialmente útiles para solucionar problemas cuando los datos ya están cargados. Recomendamos siempre ponerlos en la parte superior del script, agregar el comando Exit Script; y luego ejecutarlos con la Recarga Parcial. Recomendamos también consultar el manual de referencia para obtener más información antes de meter la pata. Buena suerte y posteen sus comentarios!.

Comments ( 4 )

  1. / Roberto
    Muy buenos tips de qlikview es bueno saberlo amigo gracias.
  2. / Bruno
    excelente tip, aunque en mi version de qlikview no tengo la opcine de recarga parcial :( cual es la tuya? Saludos
  3. / Allan VV
    Buen Truco Hermano... quisiera saber como realizar una tarea de recarga automatica por medio de un boton en el mismo plano del modelo realizado, habrá alguna forma?

Leave a reply