# Chargement partiel

Un chargement complet commence toujours par supprimer toutes les tables du modèle de données existant, puis exécute le script de chargement.

Un chargement partiel ne se comporte pas ainsi. Au lieu de cela, il conserve toutes les tables du modèle de données, puis exécute uniquement les instructionsLoad et Select précédées d'un préfixe Add, Merge ou Replace. Les autres tables de données ne sont pas affectées par la commande. L'argument only indique que l'instruction doit être exécutée uniquement lors des chargements partiels et qu'elle doit être ignorée lors des chargements complets. Le tableau suivant synthétise l'exécution des instructions pour les chargements partiels et complets.

| Instruction | Chargement complet | Chargement partiel |
| --- | --- | --- |
| Load ... | L'instruction sera exécutée | L'instruction ne sera pas exécutée |
| Add (Ajouter)/Replace (Remplacer)/Merge Load (Fusionner le chargement)... | L'instruction sera exécutée | L'instruction sera exécutée |
| Add (Ajouter)/Replace (Remplacer)/Merge Only Load (Fusionner uniquement le chargement)... | L'instruction ne sera pas exécutée | L'instruction sera exécutée |

Les chargements partiels présentent plusieurs avantages par rapport aux chargements complets :

* Ils sont plus rapides, car seules les données récemment modifiées doivent être téléchargées. Avec des ensembles de données volumineux, la différence est importante.

* Ils consomment moins de mémoire, car ils chargent moins de données.

* Ils sont plus fiables, car les requêtes lancées auprès des données source sont plus rapides, ce qui réduit le risque de problèmes réseau.

Note InformationsPour que le chargement partiel fonctionne correctement, vous devez ouvrir l'application avec des données avant le déclenchement du chargement partiel.

Effectuez un chargement partiel via le bouton Charger. Pour plus d'informations, voir [Bouton](https://help.qlik.com/fr-FR/sense/November2024/Subsystems/Hub/Content/Sense_Hub/Visualizations/Button/button.htm). Vous pouvez également utiliser Qlik Engine JSON API.

## Limitations

Un chargement partiel échouera s'il existe des commandes avec des références à des tables qui existaient lors du chargement complet, mais pas lors du chargement partiel.

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

#### Exemple

### Exemples de commande

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

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

Où &lt;Table\_removed\_after\_full\_reload&gt; est une table qui existait lors du chargement complet, mais pas lors du chargement partiel.

### Solution de contournement

Comme solution de contournement, vous pouvez encadrer la commande de l'instruction if suivante :

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

Un chargement partiel peut supprimer des valeurs des données. Cependant, cela ne sera pas reflété dans la liste des valeurs distinctes, qui est une table maintenue en interne. Par conséquent, après un chargement partiel, la liste contiendra l'ensemble des valeurs distinctes qui existent dans le champ depuis le dernier chargement complet, qui peuvent être plus nombreuses que celles qui existent actuellement après le chargement partiel. Cela affecte le résultat des fonctions FieldValueCount() et FieldValue(). La fonction FieldValueCount() peut potentiellement renvoyer un nombre supérieur au nombre actuel de valeurs de champ.

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

#### Exemple

## Exemple 1

### Script de chargement

Ajoutez l'exemple de script à votre application et lancez un chargement partiel. Pour afficher le résultat, ajoutez les champs répertoriés dans la colonne de résultats à une feuille de votre application.

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

### Résultat

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 |

### Explication

L'instruction est exécutée uniquement lors d'un chargement partiel. Si le préfixe "distinct" est omis, le nombre du champ Num augmentera à chaque chargement partiel suivant.

## Exemple 2

### Script de chargement

Ajoutez l'exemple de script à votre application. Lancez un chargement complet et affichez le résultat. Ensuite, lancez un chargement partiel et affichez le résultat. Pour afficher les résultats, ajoutez les champs répertoriés dans la colonne de résultats à une feuille de votre application.

```

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

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

### Résultat

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 |

### Explication

La première table est chargée lors d'un chargement complet et la deuxième table remplace simplement la première table lors d'un chargement partiel.

## En savoir plus

* [Load](https://help.qlik.com/fr-FR/sense/November2024/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Load.htm)
* [Select](https://help.qlik.com/fr-FR/sense/November2024/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Select.htm)
* [Add](https://help.qlik.com/fr-FR/sense/November2024/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/Add.htm)
* [Merge](https://help.qlik.com/fr-FR/sense/November2024/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/Merge.htm)
* [Replace](https://help.qlik.com/fr-FR/sense/November2024/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/Replace.htm)