La suppression ou la modification de la sortie d'un nœud peut rompre les dépendances de planification des nœuds en aval, provoquant leur échec ou la production de données incorrectes. Cette rubrique explique les causes des modifications de sortie, leurs impacts sur les nœuds en aval et la procédure pour rétablir des dépendances valides.
Si un nœud possède des nœuds descendants, la modification de sa sortie peut perturber gravement la planification en aval. Évaluez l'impact sur votre pipeline avant toute modification.
Incidence de la sortie d'un nœud sur la planification
La suppression de la sortie d'un nœud n'a aucune incidence sur son exécution ni sur la production des données de table. La sortie d'un nœud sert exclusivement à définir les dépendances de planification entre les nœuds ; seule la logique du code du nœud détermine les données de table produites.
Opérations déclenchant la suppression ou la modification d'une sortie
Lors de la création d'un nœud, le système génère automatiquement deux sorties. Vous pouvez ajouter des sorties manuellement ou activer l'analyse automatique pour détecter les tables de sortie à partir du code du nœud.
Les opérations suivantes peuvent supprimer ou modifier la sortie d'un nœud :
| Opération | Description |
|---|---|
| Manually remove the output | Supprimez directement une entrée de sortie du nœud. |
| Disable automatic parsing without verifying outputs | Si vous désactivez l'analyse automatique sans vérifier la sortie d'un nœud, et que le code du nœud change au point de ne plus produire une table spécifique, la sortie correspondante devient invalide. |

Impacts sur les nœuds en aval
Lorsque vous supprimez la sortie d'un nœud possédant des nœuds descendants, un avertissement s'affiche dans la console DataWorks.

Examinez l'avertissement et évaluez l'impact en aval avant de poursuivre. Le tableau suivant décrit les trois scénarios d'impact.
| Scénario | Condition | Impact |
|---|---|---|
| Le nœud descendant devient isolé | Les nœuds descendants dépendent uniquement du nœud actuel | Les nœuds descendants deviennent des nœuds isolés et ne peuvent pas être planifiés. |
| Problèmes de qualité des données | Les nœuds descendants dépendent de plusieurs nœuds ancêtres | Les nœuds descendants peuvent s'exécuter mais ne pas obtenir les données requises, ce qui entraîne des problèmes de qualité des données. |
| Les dépendances deviennent invalides | Le code du nœud ne produit plus une table spécifique | La sortie liée à cette table devient invalide. Les nœuds descendants qui en dépendent doivent être reconfigurés avec de nouvelles dépendances. |
Si les nœuds descendants ont de fortes dépendances vis-à-vis du nœud actuel, des impacts graves peuvent survenir. Notez également que la sortie d'un nœud change automatiquement lorsque la table générée par le nœud est modifiée. L'analyse automatique maintient les dépendances de planification en se basant sur la lignée du code. Si un nœud génère la Table A et qu'un nœud descendant dépend de la Table A, le système ajoute la Table A à la section Output du nœud et affiche les ID et noms des nœuds dépendants. Si le nœud ne génère plus la Table A, ces dépendances deviennent invalides et doivent être reconfigurées manuellement.
Si vous supprimez la sortie d'un nœud avant la génération de sa table de sortie, des problèmes de qualité des données peuvent survenir.
Correction des dépendances rompues après une modification de table
Cet exemple illustre ce qui se produit lorsque Node_A cesse de générer la Table A en raison d'un changement métier, et comment rétablir une planification valide pour Node_B.
État initial
Node_A génère la Table A. Node_B traite la Table A et dépend de Node_A. L'analyse automatique configure la dépendance entre les deux nœuds.
Rupture de la dépendance
Après un changement métier, Node_A ne génère plus la Table A. La dépendance entre Node_A et Node_B devient invalide.
Les problèmes suivants surviennent selon la configuration des dépendances de Node_B :
Si
Node_Bdépend uniquement deNode_A,Node_Bdevient un nœud isolé et ne peut pas être planifié.Si
Node_Bdépend également d'autres nœuds,Node_Bpeut toujours être planifié mais risque de ne pas obtenir les données nécessaires. Notez que la Table A est toujours référencée dans l'instructionSELECTdeNode_B, maisNode_Bn'a plus de dépendance vis-à-vis du nœud qui génère la Table A.
Les détails de l'erreur concernant la dépendance rompue sont les suivants :
| Champ | Détail |
|---|---|
| Error message | Aucun ID de nœud ancêtre ou nom de nœud ancêtre n'est spécifié pour Node_B. |
| Cause | Node_B ne peut pas trouver le nœud qui génère la Table A à partir du nom de sortie de son nœud ancêtre. |
| Business cause | Node_A ne génère plus la Table A, donc Node_B ne peut pas résoudre la dépendance en utilisant le nom de sortie de Node_A. |
Correction
Ajoutez la Table A comme sortie de Node_C — le nœud qui génère désormais la Table A. L'analyse automatique configure alors une dépendance entre Node_C et Node_B.
Après avoir ajouté la Table A à la sortie de Node_C, validez et déployez Node_C pour activer la nouvelle dépendance.