Options de mise en cache des noeuds

Pour optimiser l'exécution des flux, vous pouvez configurer un cache sur n'importe quel noeud non terminal. Lorsque vous définissez un cache sur un noeud, le cache est alimenté par les données passant par le noeud lors de l'exécution suivante du flux de données. A partir de là, les données sont lues à partir du cache (qui est stocké temporairement) et non à partir de la source de données.

La mise en cache est plus utile après une opération de longue durée telle que le tri, la fusion ou l'agrégation. Par exemple, supposons que vous ayez un nœud Data Asset qui importe des données de vente d'une base de données et un nœud Aggregate qui résume les ventes par emplacement. Vous pouvez configurer un cache sur le nœud Aggregate plutôt que sur le nœud Data Asset parce que vous voulez que le cache stocke les données agrégées plutôt que l'ensemble des données.
Remarque : bien que la mise en cache au niveau des nœuds d'importation, comme un nœud de ressource de données, stocke une copie des données d'origine au fur et à mesure de leur lecture dans SPSS Modeler, la mise en cache des données améliore les performances dans la plupart des cas.

Les noeuds pour lesquels la mise en cache est activée sont affichés avec une icône de barre oblique inversée de cercle spéciale. Lorsque les données sont mises en cache dans le nœud, l'icône se transforme en coche.

Figure 1 : Nœud avec cache vide contre nœud avec cache plein
Affiche un noeud avec un cache vide et un noeud avec un cache plein

Si vous modifiez le flux après la mise en cache des données, le flux ne s'exécute pas automatiquement pour actualiser la mémoire cache. Par exemple, après avoir mis en cache des données au niveau du nœud agrégé, vous modifiez un paramètre de flux qui affecte les données dans plusieurs nœuds. Si vous exécutez le flux, les données mises en cache pour le nœud Aggregate sont toujours utilisées. Pour voir les modifications liées au paramètre de flux, désactivez la mise en cache ou videz les caches.

Pour activer un cache

Survolez le nœud dans votre flux, puis cliquez sur le menu débordant et sélectionnez Cache > Enable.

Vous pouvez à tout moment désactiver la mise en cache en la désactivant.

Mise en cache de noeuds dans une base de données

Pour les flux qui s'exécutent dans une base de données, vous pouvez mettre en cache les données intermédiaires vers une table temporaire dans la base de données plutôt que dans le système de fichiers. Combinée à l'optimisation du langage SQL, cette mise en cache peut se traduire par des gains de performance significatifs. Par exemple, la sortie d'un flux qui fusionne plusieurs tables pour créer une vue d'exploration de données peut être mise en cache et réutilisée selon les besoins. La génération automatique du code SQL pour tous les noeuds en aval peut améliorer encore les performances.

Pour tirer profit de la mise en mémoire cache de base de données, vous devez activer les fonctions d'optimisation SQL et de mise en mémoire cache de base de données.

Lorsque la mise en cache est activée sur une base de données, vous pouvez mettre en cache des données sur n'importe quel nœud non terminal. Le cache est créé automatiquement dans la base de données lors de la prochaine exécution du flux. Si la mise en cache de la base de données ou l'optimisation SQL n'est pas activée, le cache est écrit sur le système de fichiers à la place.

Remarque : Les bases de données suivantes prennent en charge les tables temporaires pour la mise en cache : Db2, Oracle, SQL Server et Teradata. D'autres bases de données, telles que Netezza, utilisent une table normale pour la mise en cache de la base de données.

Pour vider un cache

Une icône de barre oblique inversée de cercle par noeud indique que son cache est vide. Lorsque le cache est plein, l'icône devient une coche. Si vous souhaitez remplacer le contenu de la mémoire cache, vous devez d'abord vider la mémoire cache, puis réexécuter le flux de données pour la remplir à nouveau.

Survolez le nœud dans votre flux, puis cliquez sur le menu de débordement et sélectionnez Cache > Flush.