본문 바로가기

ETL Tools/Oracle Data Integrator

[ODI 11g SDK] ODI Interface Interpreter (Create Interface using Query)


-- 추가 개발 요청 및 필요 사항 2012.05.24

1. 기존 작성된 Interface 수정이 가능 했으면 한다.

 - 전체 매핑 수정  OK!

   사유: 전체 쿼리가 너무 긴 경우는 한번에 인식하는게 불가능하므로, 이 때는 등록은 별도로 하고, 매핑 업데이트만 수행해서 원하는 인터페이스를 생성하도록 구현

 - 생성된 Interface에 Dataset 추가 OK!

   사유: 현재 버전에서는 데이터 셋을 추가해서 한번에 interface를 생성하는 것이 불가능하다. 복잡도가 어느 정도 일지 판별하기가 어렵기 때문에 제외된 사항으로, 이 문제점을 해결하기 위한 중간 해결책으로 생성된 interface의 dataset을 add 하는 기능 추가


2. 현재 버전 오류 사항 수정

 - 한글 깨짐

   사유: 쿼리를 등록하면 encoding 이 달라 한글이 깨짐





ODI provides SDK, so we can make some brilliant function for ODI.
This is the one of these.
What this code can do is that sql query is transformed to ODI Interface.
So, we called this is ODI Interface Interpreter.
this has been still working since 2012.01.01.
Attached is the "ODI-SDK connect and create interface" part of whole code.
the  is consist of two parts.
"Web and Core."
Web connects with a client, inputs sql, parses it, structure it as ODI-SDK(core) can understand, and send it to core.
Core gets objects related with ODI Interface from Web, connects ODI Repository, makes Interface as wished. 

it can show the possibilities anyone can handle ODI easily and make the job exactly as aimed.

But it is not working perfectly now.
I mean any SQL structures like 1:1, join, mapping, inline view, subquery, dataset(union, minus) and etc is transformed by it. We will make it someday sooner or later, but not now. 

What It can do is: 
1:1 mapping ok. 
custom mapping ok.
source tables join ok.
filter ok.
group by ok.


Then what is "What can it not do". 
Restrictions of this version is: 
inline view not yet (but it can handle the subquery, you may know what i mean).
dataset not yet.


At last, you can use this code as you wish, and when updating please let me know so that I can fix it as you do.
And if you cannot understand this code but want to use it, let me know as write reply or email me. 

And plz let us share opinions.

thanks for reading this then.

email: jeonghyeoncheon@gmail.com


2011.12.28.


public class OdiWideTNSInterfaceInterpreter extends OdiWideTNSRepository {






2012.03.08

package odi.widetns;


public class OdiWideTNSInterfaceInterpreter extends OdiWideTNSRepository {

/*********************************************************************************************/
/*********************************************************************************************/
/*********************************************************************************************/
/**************** 00. Interpreter Key Dictionary ******************/
/*********************************************************************************************/
/*********************************************************************************************/
/*********************************************************************************************/

}


OdiWideTNS.java

OdiWideTNSInterfaceInterpreter.java

OdiWideTNSLineage.java

OdiWideTNSRepository.java