DataStage 잡 설계 트러블슈팅
ibm-datastage 잡 실패 원인 중 설계 레이어(스테이지 구성·컬럼명·링크 연결)에서 비롯되는 문제 유형과 진단·해결 방법.
설명
DataStage 잡 실패는 런타임 데이터 문제 외에도 잡 설계 자체의 결함에서 비롯되는 경우가 있다. 이 경우 데이터나 소스 시스템을 수정하는 것이 아니라 Designer에서 잡 설계를 수정하고 재컴파일하면 해결된다. 설계 레이어 문제는 다음 세 가지 유형이 대표적이다.
유형 1: 고아 스테이지 (Orphan Stage)
입력·출력 링크가 없어 잡 흐름과 단절된 스테이지. 팔레트 가장자리에 위치해 일반 편집 뷰에서는 보이지 않는다. 잡 실패 증상이 명확하지 않은 경우 고아 스테이지가 원인일 수 있다.
진단: DataStage Designer에서 줌 아웃(zoom out) 아이콘으로 전체 팔레트를 확인. 링크 없는 스테이지 아이콘이 있는지 점검한다.
해결: 불필요한 스테이지 → 삭제. 누락된 연결이라면 → 올바른 링크 추가 후 재컴파일.
중요 맥락: 일부 구버전 IIS는 고아 스테이지를 컴파일 오류 없이 통과시키고 런타임에서 무시했다. IIS 업그레이드 또는 Connector Migration Tool 사용 후에 과거에 동작하던 잡이 갑자기 실패하면 고아 스테이지를 우선 의심해야 한다.
유형 2: 컬럼명 규칙 위반
DataStage 병렬 엔진의 컬럼명 규칙:
- 허용: 알파벳(Unicode·Kanji·악센트 포함), 숫자(0–9), 밑줄(
_) - 금지: 특수문자, 공백, 마침표(
.), 대시(-) 등 - 추가 금지: 숫자로 시작하는 이름
마침표(.)는 서브레코드 구분자로 예약되어 있다. asub.b 형식은 서브레코드 asub 내의 컬럼 b를 지칭하는 경로 표현이므로, 컬럼명에 .를 사용하면 파서가 서브레코드 경로로 해석해 런타임 abort가 발생한다.
해결: 해당 컬럼명을 규칙에 맞게 수정(특수문자 제거·밑줄로 치환) 후 재컴파일.
유형 3: 단일 문자 컬럼명 “t”/“T” 버그
IIS 8.5 이후 특이 케이스: 컬럼명이 소문자 t 또는 대문자 T 단 하나로만 구성된 경우 런타임 검증(validation) 단계에서 잡이 abort된다. 소스에서 넘어오는 컬럼명을 그대로 사용할 경우 조우할 수 있다.
해결: 해당 컬럼명을 t/T 이외의 이름으로 변경.
배경 / 역사
- IIS 8.5부터
t/T컬럼명 버그 도입 - 구버전(8.5 이전)은 고아 스테이지를 런타임에서 무시 → 업그레이드 후 문제 표면화
- DataStage Flow Designer v11.7에서 컴파일 오류 UI 개선: 모든 오류를 한 번에 하이라이트, hover로 상세 확인 → 대형 잡(30–50개 이상 스테이지) 디버깅 효율 향상
실전 적용
- ibm-datastage 잡이 원인 불명으로 실패할 때, 먼저 설계 레이어(고아 스테이지·컬럼명 규칙)를 점검한다
- IIS 업그레이드 후 기존 잡이 갑자기 실패하면 → 고아 스테이지 여부 확인이 1순위 점검 항목
- 소스 시스템 컬럼명을 그대로 가져올 때
.포함 여부, 단일 문자t/T여부를 사전 확인하는 습관 권장
관련 개념
- dag-idempotency — 잡 재실행 안전성 관련 설계 원칙 (Airflow 맥락이나 DataStage 잡 설계에도 적용 가능)