Nei job paralleli DataStage® , alcuni stage possono inviare un EOW (end of wave marker), che indica la fine di un'unità di lavoro o di una transazione. Quando tutti i record estratti dal link di input sono inclusi in un'unità di lavoro (chiamata onda singola), la fase Excel genera fogli Microsoft Excel che contengono il numero massimo di record fino a quando non vengono scritti tutti i record.
Ad esempio, si supponga che lo stadio Excel abbia due collegamenti in ingresso, DSLink1 e DSLink2. DSLink1 è associato al Sheet1 e DSLink2 è associato al Sheet2. Il numero massimo di record in un foglio è 65.536 e DSLink1 ha 100.000 record; DSLink2 ha 150.000 record. Ogni foglio non ha nomi di colonna nella prima riga. In questo caso, il seguente numero di record è incluso in ogni foglio di ogni file.
Nome file |
Sheet1 |
Sheet2 |
Workbook001.xlsx |
65.536 |
65.536 |
Workbook002.xlsx |
34.464 |
65.536 |
Workbook003.xlsx |
0 |
18.928 |
Quando i record estratti dal collegamento di input sono suddivisi in due o più unità di lavoro (chiamate ondate multiple), la fase di Excel interrompe la scrittura dei record nel foglio Microsoft Excel e crea un nuovo file Microsoft Excel se il numero di record in un'ondata supera il numero massimo in almeno un foglio. Lo stage di Excel non scrive alcun record nell'ondata successiva al file precedente, anche se un foglio può contenere più record. Ad esempio, si supponga che ogni link contenga il seguente numero di record in ogni wave.
Numero d'onda |
DSLink1 |
DSLink2 |
1 |
90.000 |
50.000 |
2 |
5.000 |
90.000 |
3 |
5.000 |
10.000 |
Nella prima ondata, la fase Excel crea un file Microsoft Excel denominato " Workbook001.xlsx con due fogli, " Sheet1 e " Sheet2. La fase Excel scrive i record estratti da DSLink1 in 'Sheet1 fino a leggere il numero massimo di record (65.536) e scrive tutti i record (50.000) da DSLink2 in 'Sheet2. Successivamente, la fase Excel crea un file Microsoft Excel denominato 'Workbook002.xlsx e scrive il resto dei record (24.464) della prima ondata e tutti i record (5.000) della seconda ondata da DSLink1 a 'Sheet1. Anche se il 'Sheet2 del 'Workbook001.xlsx non supera il numero massimo di record, lo stage di Excel scrive i record (65.536) della seconda ondata estratta da DSLink2 nel 'Sheet2 del 'Workbook002.xlsx e non nel 'Workbook001.xlsx. Quando il numero di record nella seconda ondata da DSLink2 supera il numero massimo, la fase Excel crea un file Microsoft Excel denominato 'Workbook003.xlsx e scrive il resto dei record (24.464) nella seconda ondata da DSLink2 in 'Sheet2 di 'Workbook003.xlsx. Per la terza ondata, poiché entrambi i fogli hanno spazio sufficiente, la fase Excel scrive tutti i record estratti da DSLink1 (5.000) e DSLink2 (10.000) in 'Sheet1 e 'Sheet2 di 'Workbook003.xlsx.
Di conseguenza, il seguente numero di record viene scritto in ogni foglio di ogni file:
Nome file |
Sheet1 |
Sheet2 |
Workbook001.xlsx |
65.536 da 1st wave |
50.000 provenienti da 1st wave |
Workbook002.xlsx |
29.464 (= 24.464 da 1st wave + 5.000 da 2nd wave) |
65.536 provenienti dalla 2nd |
Workbook003.xlsx |
5.000 da 3rd wave |
34.464 (= 24.464 da 2nd wave + 10.000 da 3rd wave) |