# Carga parcial

Una carga completa siempre comienza eliminando todas las tablas en el modelo de datos existente y luego ejecuta el script de carga.

Una carga parcial no hace esto. En su lugar, mantiene todas las tablas en el modelo de datos y después ejecuta solo las sentencias Load y Select precedidas por un prefijo Add, Merge o Replace. Otras tablas de datos no se ven afectadas por el comando. El argumento only indica que la sentencia debe ejecutarse solo durante cargas parciales y debe ignorarse durante cargas completas. La tabla siguiente resume la ejecución de instrucciones para cargas parciales y completas.

| Sentencia | Carga completa | Carga parcial |
| --- | --- | --- |
| Load ... | La instrucción se ejecutará | La instrucción no se ejecutará |
| Add/Replace/Merge Load... | La instrucción se ejecutará | La instrucción se ejecutará |
| Add/Replace/Merge Only Load... | La instrucción no se ejecutará | La instrucción se ejecutará |

Las cargas parciales tienen varias ventajas en comparación con las cargas completas:

* Son más rápidas, porque solo es necesario cargar los datos recientemente modificados. Con conjuntos de datos muy extensos la diferencia es significativa.

* Se consume menos memoria porque se cargan menos datos.

* Es más fiable, porque las consultas a los datos de origen se ejecutan más rápido, lo que reduce el riesgo de problemas de red.

Nota informativaPara que la carga parcial funcione correctamente, la aplicación debe abrirse con datos antes de que se active una carga parcial.

Realice una carga parcial con el botón Cargar. Para más información, vea [Botón](https://help.qlik.com/es-ES/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Visualizations/Button/button.htm). También puede usar Qlik Engine JSON API.

## Limitaciones

Una carga parcial fallará si hay comandos con referencias a tablas que existieron durante la carga completa, pero no durante la carga parcial.

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/PartialReload.htm)

#### Ejemplo

### Comandos a modo de ejemplo

```
LEFT JOIN(<Table_removed_after_full_reload>)
```

```
CONCATENATE(<Table_removed_after_full_reload>)
```

Donde &lt;Table\_removed\_after\_full\_reload&gt; es una tabla que existía en la carga completa, pero no en la carga parcial.

### Solución

Como solución, puede rodear el comando con la siguiente sentencia if:

```
IF NOT IsPartialReload() THEN ... ENDIF.
```

Una carga parcial puede eliminar valores de los datos. Sin embargo, esto no se reflejará en la lista de valores distintos, que es una tabla mantenida internamente. Así, tras una carga parcial, la lista contendrá todos los valores distintos que hayan existido en el campo desde la última recarga completa, que pueden ser más de los que existen actualmente tras la recarga parcial. Esto afecta al resultado de las funciones FieldValueCount() y FieldValue(). La función FieldValueCount() podría devolver un número mayor que el número actual de valores de campo.

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/PartialReload.htm)

#### Ejemplo

## Ejemplo 1

### Script de carga

Agregue el script de ejemplo a su aplicación y realice una carga parcial. Para ver el resultado, agregue los campos enumerados en la columna de resultados a una hoja de su aplicación.

```
T1:
Add only Load distinct recno()+10 as Num autogenerate 10;      
```

### Resultado

Resulting table

| Num | Count(Num) |
| --- | --- |
| 11 | 1 |
| 12 | 1 |
| 13 | 1 |
| 14 | 1 |
| 15 | 1 |
| 16 | 1 |
| 17 | 1 |
| 18 | 1 |
| 19 | 1 |
| 20 | 1 |

### Explicación

La instrucción solo se ejecuta durante una carga parcial. Si se omite el prefijo "distinct", la cuenta del campo Num aumentará con cada carga parcial subsiguiente.

## Ejemplo 2

### Script de carga

Agregue el script de ejemplo a su aplicación. Realice una recarga completa y vea el resultado. A continuación, realice una carga parcial y vea el resultado. Para ver los resultados, agregue los campos enumerados en la columna de resultados a una hoja de su aplicación.

```

T1:
Load recno() as ID, recno() as Value autogenerate 10;

T1:
Replace only Load recno() as ID, repeat(recno(),3) as Value autogenerate 10; 
```

### Resultado

Output table after full reload

| ID | Value |
| --- | --- |
| 1 | 1 |
| 2 | 2 |
| 3 | 3 |
| 4 | 4 |
| 5 | 5 |
| 6 | 6 |
| 7 | 7 |
| 8 | 8 |
| 9 | 9 |
| 10 | 10 |

Output table after partial reload

| ID | Value |
| --- | --- |
| 1 | 111 |
| 2 | 222 |
| 3 | 333 |
| 4 | 444 |
| 5 | 555 |
| 6 | 666 |
| 7 | 777 |
| 8 | 888 |
| 9 | 999 |
| 10 | 101010 |

### Explicación

La primera tabla se carga durante una carga completa y la segunda tabla simplemente reemplaza a la primera tabla durante una carga parcial.

[Load](https://help.qlik.com/es-ES/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Load.htm)

[Select](https://help.qlik.com/es-ES/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Select.htm)

[Add](https://help.qlik.com/es-ES/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/Add.htm)

[Merge](https://help.qlik.com/es-ES/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/Merge.htm)

[Replace](https://help.qlik.com/es-ES/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/Replace.htm)