DataStage® 병렬 작업에서 일부 스테이지는 작업 단위 (UOW) 또는 트랜잭션의 끝을 표시하는 웨이브 마커 (EOW) 의 끝을 전송할 수 있습니다. 입력 링크에서 추출된 모든 레코드가 작업 단위(단일 웨이브라고 함)에 포함되는 경우 Excel 스테이지는 모든 레코드가 기록될 때까지 최대 레코드 수를 포함하는 Microsoft Excel 시트를 생성합니다.
예를 들어, Excel 스테이지에 두 개의 입력 링크가 있다고 가정합니다(DSLink1 및 DSLink2). 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 |
입력 링크에서 추출된 레코드를 두 개 이상의 작업 단위(다중 웨이브라고 함)로 나누면 Excel 스테이지는 Microsoft Excel 시트에 레코드 쓰기를 중지하고 웨이브의 레코드 수가 하나 이상의 시트의 최대 수를 초과하는 경우 새 Microsoft Excel 파일을 작성합니다. Excel 스테이지는 시트에 더 많은 레코드를 포함할 수 있는 경우에도 다음 웨이브의 레코드를 이전 파일에 기록하지 않습니다. 예를 들어, 각 링크는 각 웨이브에 다음 수의 레코드가 포함되어 있다고 가정합니다.
Wave# |
DSLink1 |
DSLink2 |
1 |
90,000 |
50,000건 |
2 |
5,000 |
90,000 |
3 |
5,000 |
10,000 |
첫 번째 웨이브에서 Excel 스테이지는 두 개의 시트 Sheet1 및 Sheet2이(가) 있는 Workbook001.xlsx(이)라는 Microsoft Excel 파일을 작성합니다. Excel 스테이지는 최대 레코드 수(65,536)를 읽고 DSLink2에서 Sheet2까지 모든 레코드(50,000)를 기록할 때까지 DSLink1에서 추출된 레코드를 Sheet1에 작성합니다. 다음으로 Excel 스테이지는 Workbook002.xlsx(이)라는 Microsoft Excel 파일을 작성하고 첫 번째 웨이브의 나머지 레코드(24,464) 및 DSLink1에서 Sheet1까지의 두 번째 웨이브에 있는 모든 레코드(5,000)를 작성합니다. Workbook001.xlsx의 Sheet2에 최대 레코드 수를 초과하지 않은 경우에도 Excel 스테이지는 Workbook001.xlsx(이)가 아닌 Workbook002.xlsx의 Sheet2에 DSLink2에서 추출한 두 번째 웨이브의 레코드(65,536)를 작성합니다. DSLink2의 두 번째 웨이브에 있는 레코드 수가 최대값을 초과하는 경우 Excel 스테이지는 Workbook003.xlsx(이)라는 이름의 Microsoft Excel 파일을 작성하고 DSLink2의 두 번째 웨이브에 있는 나머지 레코드(24,464)를 Workbook003.xlsx의 Sheet2에 작성합니다. 세 번째 웨이브의 경우 두 시트에 충분한 공간이 있으므로 Excel 스테이지는 DSLink1에서 추출한 모든 레코드(5,000) 및 DSLink2의 레코드(10,000)를 Sheet1 및 Workbook003.xlsx의 Sheet2에 작성합니다..
결과적으로 각 파일의 각 시트에 다음 수의 레코드가 기록됩니다.
파일 이름 |
Sheet1 |
Sheet2 |
Workbook001.xlsx |
1st 웨이브의 65,536개 |
1st 웨이브에서 오는 50,000개 |
Workbook002.xlsx |
29,464 (= 1st 웨이브의 24,464개 + 2nd 웨이브의 5,000개) |
2nd 웨이브의 65,536개 |
Workbook003.xlsx |
3rd 웨이브의 5,000개 |
34,464 (= 2nd 웨이브의 24,464개 + 3rd 웨이브의 10,000개) |