본문 바로가기

ETL Tools/Oracle Data Integrator

[ODI 11G] BUG LIST

* ODI의 이상한 부분(버그)을 찾아 기록하다.


   ODI를 사용하여 ETL 개발하면서 발견되는 ODI의 불완전한 기능을 찾아내어 정보를 공유하는 목적으로 기록 하는 것입니다.

 발견되는 사항들이 실제 버그인지 아닌지는 모릅니다. 하지만, 잘못된 사항이기에 해결책을 공유하거나 ORACLE에 SR을 보내는데 사용하면 이로울 듯 합니다.


1. INTERFACE BUG [2012.04.24]

버그 사항: UNION 을 사용하여 여러 DATA SET 중 하나의 로직에만 집계 함수(GROUP BY)를 사용하는 경우 모든 쿼리에 적용되거나 하나도 적용이 안되거나 둘중하나다. (All or Nothing)


발견 상황: 테이블들 중 UNION ALL을 사용하여 하나의 인터페이스에 개발하는데 일부 Dataset 에서만 집계함수를 사용하여 group by 절을 사용


2. INTERFACE BUG [2012.05.18]

버그 사항: SUBQUERY를 사용한 INTERFACE를 생성할 때, 변수가 31로 변환되어 실행되는 경우가 발생함.


발견 상황:

 1. 2중으로 subquery를 사용하여 쿼리를 생성하는 도중 제일 내부 인터페이스에서 기간별로 데이터를 추출하는 로직이 있는 경우, 외부에서는 사용하지 않는다. 오류가 발생하여 실행 로그를 봤더니, 사용한 변수가 31로 치환되어 static 하게 #변수명 이 있을 자리에 있음. (최초)

 2. 일반 서브쿼리를 사용하는 인터페이스를 개발, 이 경우에도 내부 인터페이스에서만 odi 변수를 사용하는 로직이 존재함


원인 추적중: 메인 인터페이스에서 변수를 사용하지 않는 경우, 발생하는 것으로 의심. 

임시 해결 방법: 메인 인터페이스에 변수를 사용한다. 

                실제로 사용하지 않는 경우에도, 주석 처리로 사용하던지 하는 방법을 사용하여 강제로 변수를 넣어놨더니 해결되었음.


3. INTERFACE BUG [2012.05.18]

인터페이스 개발시 집계함수 매핑 문장(SUM(...), COUNT(...), ETC)이 길 경우, 해당 컬럼이 집계대상이 아닌 그루핑 대상으로 인식되어 GROUP BY 절에 들어감 (헐....)


발견 상황: 

 인터페이스 개발 시, SUM() 함수를 사용하여 집계하는 로직이 있는데 SUM() 괄호 안의 매핑 절에 Scalar Subquery를 사용하게 되어 매핑 절이 길어 졌는데 오류가 발생하여 확인해보았더니, 두둥.. SUM 함수가 그루핑 절로 가 있다. 그래서 혹시나 해서 매핑 절을 짧게 줄여 봤더니 정상적으로 집계되어 수행됨


원인: 뭐 컬럼 매핑이 길면 한로우에 매핑 부분을 저장할 수 없으니, 나누어 저장하면서 실제 ODI 분석 코드에서 인식 불가 상태로 되는 것이 아닌가 하는 의심이 듬.

임시 해결 방법: 해경방법은 아닌데... 로직을 변경하여 작업 했다.