DataStage® パラレル・ジョブでは、一部のステージは、作業単位またはトランザクションの終了を示すウェーブの終わりマーカー (EOW) を送信できます。 入力リンクから抽出されたすべてのレコードが作業単位 (単一ウェーブと呼ばれる) に含まれている場合、Excel ステージは、すべてのレコードが書き込まれるまで、最大数のレコードを含む Microsoft Excel シートを生成します。
例えば、Excel ステージに DSLink1 と DSLink2 という 2 つの入力リンクがあるとします。 DSLink1 は Sheet1 に関連付けられ、DSLink2 は Sheet2 に関連付けられています。 シート内のレコードの最大数は 65,536 であり、DSLink1 には 100,000 個のレコード、DSLink2 には 150,000 個のレコードがあります。 各シートの最初の行に列名はありません。 この場合、各ファイルの各シートに次の数のレコードが含まれます。
ファイル名 |
Sheet1 |
Sheet2 |
Workbook001.xlsx |
65,536 |
65,536 |
Workbook002.xlsx |
34,464 |
65,536 |
Workbook003.xlsx |
0 |
18,928 |
入力リンクから抽出されたレコードが複数の作業単位 (複数ウェーブと呼ばれる) に分割されている場合、ウェーブ内のレコード数が少なくとも 1 つのシートで最大数を超えると、Excel ステージは Microsoft Excel シートへのレコードの書き込みを停止し、新しい Microsoft Excel ファイルを作成します。 Excel ステージでは、シートに追加のレコードを含めることができる場合でも、次のウェーブのレコードは前のファイルに書き込まれません。 例えば、各リンクの各ウェーブに以下の数のレコードが含まれているとします。
ウェーブ番号 |
DSLink1 |
DSLink2 |
1 |
90,000 |
50,000 |
2 |
5,000 |
90,000 |
3 |
5,000 |
10,000 |
最初のウェーブで、Excel ステージは Workbook001.xlsx という名前の Microsoft Excel ファイルを作成します。このファイルには、Sheet1 と Sheet2 という 2 つのシートがあります。 この Excel ステージは、DSLink1 から抽出されたレコードを最大数のレコード (65,536) を読み取るまで Sheet1 に書き込み、DSLink2 からのすべてのレコード (50,000) を Sheet2 に書き込みます。 次に、Excel ステージは Workbook002.xlsx という名前の Microsoft Excel ファイルを作成し、DSLink1 からの最初のウェーブの残りのレコード (24,464) と 2 番目のウェーブのすべてのレコード (5,000) を Sheet1 に書き込まれます。 Workbook001.xlsx の Sheet2 が最大レコード数を超えていない場合でも、Excel ステージは、DSLink2 から抽出された 2 番目のウェーブのレコード (65,536) を、Workbook001.xlsx ではなく Workbook002.xlsx の Sheet2 に書き込みます。 DSLink2 からの 2 番目のウェーブのレコード数が最大数を超えている場合、Excel ステージは Workbook003.xlsx という名前の Microsoft Excel ファイルを作成し、DSLink2 からの 2 番目のウェーブの残りのレコード (24,464) を Workbook003.xlsx の Sheet2 に書き込みます。 3 番目のウェーブについては、両方のシートに十分なスペースがあるため、Excel ステージは、DSLink1 から抽出したレコード (5,000) および DSLink2 から抽出したレコード (10,000) をすべて Workbook003.xlsx の Sheet1 および Sheet2 に書き込みます。
その結果、各ファイルの各シートには、以下の数のレコードが書き込まれます。
ファイル名 |
Sheet1 |
Sheet2 |
Workbook001.xlsx |
65,536 (1 番目のウェーブから) |
50,000 (1 番目のウェーブから) |
Workbook002.xlsx |
29,464 (1 番目のウェーブからの 24,464 + 2 番目のウェーブからの 5,000) |
65,536 (2 番目のウェーブから) |
Workbook003.xlsx |
5,000 (3 番目のウェーブから) |
34,464 (2 番目のウェーブからの 24,464 + 3 番目のウェーブからの 10,000) |