주제 단순 Migration 작업 생성(DB to DB)
/* 2014.11.22 천정현 작성 */
설명
단순 Select Insert 방식으로 구현이 가능한 방법으로 ETL 을 위한 별도 로직을 심거나 수정하기는 어렵지만,(Merge/ Delete insert / Update ..) 데이터를 한번에 넘기거나, 구간을 정의해서 넘길때 유용하게 사용 가능 하다.
구성 방법
- Source System 에서 Select 부분 변수 처리 [자동 or 수동 생성]
- Target SystemInsert 부분 변수 처리 [자동 생성]
- Filter 사용시 수동 설정
- 프로시저를 통한 작업 수행
사용 코드
- variable
1. insert {refresh: select 'insert into -.#table ('||chr(10)||listagg(column_name, chr(10)||', ') within group (order by column_id)||chr(10)||') '||chr(10)||'values ('||chr(10)||listagg(':'||column_name, chr(10)||', ') within group (order by column_id)||chr(10)||') ' from all_tab_columns where table_owner = '-' and table_name = '#table'}
2. select{refresh: select 'select '||chr(10)||listagg(column_name, chr(10)||', ') within group (order by column_id)||chr(10)||' from #table' from all_tab_columns where table_owner = '-' and table_name = '#table'}
3. filter: manual
4. table: manual
### looping 시 사용
5. std_dt: manual
6. seq: 1++
###
- procedure - t: #insert / s: #select
- package
1. all
table -> insert -> select -> filter -> procedure(알맞은 서버)
2. part looping
table -> insert -> select -> std_dt -> seq -> (@loop) filter -> procedure -> seq++ -> seq 평가 (@loop)
응용 사항
- 접속 서버 정보도 변수 처리하여 구현 가능할 것으로 예상되나 테스트가 필요함.
* 접속 서버 정보: ODI Repository 에서 jdbc URL을 가져온다.
현시점까지는 접속 계정/비밀번호 - 사용할 계정명이 같은 경우, 가능한 정도까지 생각하고 있다.
작성이의 말.
위 내용은 응용사항을 제외하고 개발테스트가 진행되어 확인된 사항이나, 변수 새로고침이나, 패키지 구성에 관해서는 구성했던 기억만으로 작성하여 수정이 필요할 수 있습니다.