Comment la fonctionnalité SQL Pushback fonctionne-t-elle ?

Dernière mise à jour : 16 avr. 2025
Optimisation SQL en SPSS Modeler

Les principales cibles de la génération SQL sont les parties initiales d'un flux qui viennent après les nœuds d'importation de données. Lorsque SPSS Modeler trouve un nœud qui ne peut pas être compilé en SQL, SPSS Modeler extrait les données de la base de données et les traite.

Pendant la préparation et l'exécution du flux, le processus de génération de SQL se déroule comme suit :

  • SPSS Modeler réorganise les flux pour déplacer les nœuds en aval dans la "zone SQL" lorsqu'il est prouvé qu'il est possible de le faire en toute sécurité.
  • SPSS Modeler travaille des nœuds d'importation vers les nœuds terminaux, en construisant des expressions SQL de manière incrémentale.
    • Cette phase s'arrête lorsque SPSS Modeler atteint un nœud qui ne peut pas être converti en SQL ou que le nœud terminal d'un flux est converti en SQL (par exemple, un nœud de table ou un nœud de graphe).
    • Pour optimiser les performances, les nœuds peuvent être exclus du processus de génération SQL si la sortie de ce nœud n'est pas utilisée en aval dans les nœuds suivants. Par exemple, si un nœud dérivé crée une nouvelle colonne qui n'est pas utilisée dans un nœud matriciel en aval, le nœud dérivé est exclu de la génération SQL. Une icône SQL n'apparaît pas à côté du nœud Derive à la fin de la génération SQL.
      Figure 1 : Génération SQL excluant les nœuds
      Exemple de la façon dont le processus de génération SQL saute les nœuds qui ne sont pas nécessaires. L'image montre un nœud Data Asset avec une icône SQL, un nœud Derive sans icône SQL et un nœud Matrix avec une icône SQL.
    • A la fin de cette phase, chaque noeud comporte une instruction SQL si le noeud et ses prédécesseurs sont dotés d'un équivalent SQL.
  • La validité du code SQL est vérifiée. SPSS Modeler travaille à partir des nœuds qui ont les équivalents SQL les plus compliqués, en remontant vers les nœuds d'importation. L'instruction SQL validée est choisie pour l'exécution.
  • Les nœuds pour lesquels toutes les opérations ont généré des données SQL sont mis en évidence par une icône SQL à côté du nœud dans le canevas de flux. En fonction des résultats obtenus, vous pouvez réorganiser votre flux, le cas échéant, afin de tirer pleinement parti de l'exécution de la base de données.

Où les améliorations sont-elles apportées ?

Le pushback SQL améliore les performances de plusieurs opérations sur les données :

Jointures (fusion par clé)
Les opérations de jointure peuvent accroître l'optimisation au sein des bases de données.
Agrégation
Les noeuds Agréger, Proportion et Relations utilisent tous l'agrégation pour produire leurs résultats. Les données récapitulatives utilisent beaucoup moins de bande passante que les données d'origine.
Sélection
La sélection d'enregistrements sur la base de critères spécifiques réduit le nombre d'enregistrements.
Tri
Le tri des enregistrements est une activité très consommatrice de ressources qui est exécutée plus efficacement dans une base de données.
Dérivation des champs
Les nouveaux champs sont générés de façon plus efficace dans une base de données.
Projection sur le terrain
Le logiciel extrait uniquement, de la base de données, les champs nécessaires aux traitements suivants ; les exigences en termes de bande passante et de mémoire sont ainsi réduites. Idem pour les champs superflus des fichiers plats : même si le serveur doit lire ces champs, il ne leur affecte pas d'espace de stockage.
Evaluation
Le code SQL peut être généré à partir de modèles d'arbre de décisions, d'ensembles de règles, de régression linéaire et des modèles factoriels générés.