0 / 0

Considération sur la fin de la vague (DataStage )

Dernière mise à jour : 10 juil. 2025
Considération relative à la fin de flux dans DataStage

Dans les travaux parallèles DataStage® , certaines étapes peuvent envoyer un marqueur de fin de vague (EOW), qui indique la fin d'une unité de travail ou d'une transaction. Lorsque tous les enregistrements extraits du lien d'entrée sont inclus dans une unité de travail (appelée flux unique), l'étape Excel génère des feuilles Microsoft Excel qui contiennent le nombre maximal d'enregistrements jusqu'à ce que tous les enregistrements soient écrits.

Supposons, par exemple, que l'étape Excel comporte deux liens d'entrée, DSLink1 et DSLink2. DSLink1 est associé à Sheet1 et DSLink2 est associé à Sheet2. Le nombre maximal d'enregistrements d'une feuille est de 65 536 et DSLink1 contient 100 000 enregistrements ; DSLink2 possède 150 000 enregistrements. Chaque feuille n'a pas de noms de colonne sur la première ligne. Dans ce cas, le nombre d'enregistrements suivant est inclus dans chaque feuille de chaque fichier.
Nom du fichier Sheet1 Sheet2
Workbook001.xlsx 65 536 65 536
Workbook002.xlsx 34 464 65 536
Workbook003.xlsx 0 18 928
Lorsque des enregistrements extraits du lien d'entrée sont divisés en deux unités de travail ou plus (appelées flux multiples), l'étape Excel arrête d'écrire des enregistrements dans la feuille Microsoft Excel et crée un nouveau fichier Microsoft Excel si le nombre d'enregistrements d'un flux dépasse le nombre maximal d'au moins une feuille. L'étape Excel n'écrit aucun enregistrement du flux suivant dans le fichier précédent, même si une feuille peut contenir davantage d'enregistrements. Supposons, par exemple, que chaque lien contient le nombre d'enregistrements suivant dans chaque flux.
N° de flux DSLink1 DSLink2
1 90 000 50 000
2 5 000 90 000
3 5 000 10 000

Dans le premier flux, l'étape Excel crée un fichier Microsoft Excel nommé Workbook001.xlsx qui comporte deux feuilles, Sheet1 et Sheet2. L'étape Excel écrit les enregistrements qui sont extraits de DSLink1 dans Sheet1 jusqu'à ce qu'il lise le nombre maximal d'enregistrements (65 536) et écrit tous les enregistrements (50 000) de DSLink2 dans Sheet2. Ensuite, l'étape Excel crée un fichier Microsoft Excel nommé Workbook002.xlsx et écrit le reste des enregistrements (24 464) du premier flux et tous les enregistrements (5 000) du deuxième flux de DSLink1 dans Sheet1. Même si la feuille Sheet2 de Workbook001.xlsx ne dépasse pas le nombre maximal d'enregistrements, l'étape Excel écrit les enregistrements (65 536) du deuxième flux extrait de DSLink2 dans la feuille Sheet2 de Workbook002.xlsx, et non de Workbook001.xlsx. Lorsque le nombre d'enregistrements dans le deuxième flux de DSLink2 dépasse le nombre maximal, l'étape Excel crée un fichier Microsoft Excel nommé Workbook003.xlsx et écrit le reste des enregistrements (24 464) dans le deuxième flux de DSLink2 dans la feuille Sheet2 de Workbook003.xlsx. Pour le troisième fplux, les deux feuilles disposant de suffisamment de place, l'étape Excel écrit tous les enregistrements extraits de DSLink1 (5 000) et de DSLink2 (10 000) dans les feuilles Sheet1 et Sheet2 de Workbook003.xlsx.

Par conséquent, le nombre d'enregistrements suivants est écrit dans chaque feuille de chaque fichier :
Nom de fichier Sheet1 Sheet2
Workbook001.xlsx 65 536 du 1er flux 50 000 provenant du 1er flux
Workbook002.xlsx 29 464 (= 24 464 du 1er flux + 5 000 du 2e flux) 65 536 provenant du 2e flux
Workbook003.xlsx 5000 du 3e flux 34 464 (= 24,464 du 2e flux + 10 000 du 3e flux)