0 / 0
Torna alla versione inglese della documentazione

Considerazione sulla fine dell'onda (DataStage )

Ultimo aggiornamento: 12 mar 2025
Considerazioni sulla end of wave in DataStage

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)