Data Sync Manager (DSM 3.0) Training Guide DSM Copyright 2003 Ari System, Inc. All Rights reserved. Data Sync Manager are trademarks or registered trademarks of Ari System, Inc.
Table of Contents CHAPTER1 개요... 4 1.1 개요... 4 1.2 이글을읽을대상... 4 CHAPTER2 DSM 개요... 4 2.1 개요... 4 CHAPTER3 설치 & 설정... 5 3.1 설치... 5 CHAPTER4 DATA SYNC MANAGER... 6 4.1 DATA SYNC MANAGER 기본화면... 6 4.2 PROJECT... 7 4.3 SCHEDULE... 8 4.4 PROCESS... 13 4.5 FUNCTION( 기능 )... 14 4.5.1 구성정보... 14 4.5.2 사용예시1 INPUT/OUPUT 설정... 18 4.5.3 사용예시2 병렬처리... 21 4.5.4 사용예시3 제어코드삽입... 23 4.6 대시보드 & 로그... 26 4.6.1 대시보드... 26 4.6.2 로그모니터링... 26 4.6.3 작업이력로그... 27 4.7 실시간모니터링... 28 CHAPTER5 예제... 29 5.1 시나리오1... 30 5.1.1 준비... 30 5.1.1 DerbyDB 테이블생성... 31 5.1.2 DSM 개발... 33 5.1.3 결과확인... 39 5.2 시나리오2... 40 5.2.1 준비... 40 5.2.2 DSM 개발... 40 5.2.3 결과확인... 47 CHAPTER6 로그관리... 49
6.1 로그조회및장애처리등록... 49
chapter1 개요 1.1 개요 이가이드는예제를통하여 DSM 을쉽게접근할수있도록기술한문서이다. 이문서는예제를만들기위해필요한것만기술해놓았으므로세부적인설정이나설명을원한다면 DSM Developer Guide 를참고하기바란다 1.2 이글을읽을대상 프로그램을개발하고자하는개발자혹은이를운용하고자하는운영자가참고할수있다. 이시스템은 FrameBuilder 시스템환경에서동작되는플러그인형태의개발 / 운영모듈로써 이해할수있다 chapter2 DSM 개요 2.1 개요 개발자는 Data Sync Manager(DSM) 를이용하여인터페이스에관한배치, 실행, 장애처리에관련된모든것을관리할수있다. Schedule 및 Process를 Module별로세분화시킬수있고 Function들을배치조합시킴으로써코딩작업을간소화하여개발기간을줄이고직관적인 UI를통해쉽게파악할수있고관리를용이하게할수있다. DSM (Data Sync Managers) 는 ETL(Extraction, Transformation, Loading) 제품軍으로분류되며, 異기종의다양한원천시스템 (Source System) 으로부터필요한 Data를추출 (Extract) 하여변환 (Transformation) 작업을거쳐목적시스템 (Target System) 으로전송및로딩 (Loading) 하는기능을스케줄링에따라 Data를적재하여순차적 (FIIFO-First In First Out) 으로진행하고, 모니터링이가능한 ETL + M(Management)Solution이다.
chapter3 설치 & 설정 3.1 설치 Frame Builder 와같이설치가되므로 Data Sync Manager Group 에서사용하면된다. FrameBuilder Install Guide 를참고하길바란다.
chapter4 Data Sync Manager 4.1 Data Sync Manager 기본화면 FrameBuilder 에로그인하여 Data Sync Manager Group->Data Sync Manager 를실행한다. Task menu Tool Bar Tree menu View 대시보드 & 로그 실시간모니터링 가동중인 CPU 와 MEMORY 상태표시 [ 그림 1] 처음실행화면
[ 그림 2] DSM 기본화면 ( 빨간테두리부분이 Project, Schedule, Process 일때마다바뀐다. ) 4.2 Project [ 그림 8] 프로젝트속성 1. 화면조절 를클릭하면화면을마우스드래그를하여이동과화면크기조절이가능하다. 최대화단추를클릭하면화면이원래상태의위치로돌아온다. 2. 설명추가및삭제 을클릭하여설명을추가한다. 을클릭하여설명을삭제한다. 3. 속성추가및삭제 을클릭하여속성을추가한다. 을클릭하여속성을삭제한다.
4. 속성 프로젝트의설명, Revision, 속성, 스케줄정보가표시된다. 그림 8 에서속성값을설정하면프로젝트하위 ( 스케줄, 프로세스, 기능 ) 에서 ${ 속성이름 } 으로값을사용할수있다. Ex) 5. Schedule 정보보기 Schedule을생성하게되면 Schedule에대한정보를볼수있다. ( 자세한설명은 Schedule 부분을참조 ) 4.3 Schedule [ 그림 9] 스케줄화면 1. 스케줄요약명 [ 그림 10-1] 스케줄요약명설정 [ 그림 10-2] 리스트에서보여지는스케줄요약명스케줄요약명을지정한경우프로젝트리스트에서스케줄명왼쪽에 [ ] 안에스케줄요약명이보인다.
2. 스케줄시간 [ 그림 11] 스케줄시간설정스케줄이언제시작할지체크를통해지정할수있으며모두 (*) 는전부체크한효과이다. 를누르게되면설정부분에대한도움말이나온다. Second : Minute : Hour : Day_of_Month : Month : Week_of_Year 단위 범위 설명 Second 0-59 초 Minute 0-59 분 Hour 0-23 시 Day_of_Month 1-31 일 Month 0-11 달 (0=Jan, 11=Dec) Week_of_Year 1-7 요일 (1=Sunday, 7=Saturday) 규칙 설명 : Separator * 매시간 ex) 매시간 0:0:*:*:*:* 언제부터언제까지 ex)1시부터8시까지 0:0:1-8:*:*:*, 언제, 언제단일지정 ex) 월요일화요일 0:0:0:*:*:2,3 * 와, 를혼합도가능하다 ex) 월요일, 화요일-금요일 0:0:0:*:*:2,4-6 [ 표 7] 스케줄시간도움말 3. 장애처리담당자 [ 그림 12] 스케줄이실행도중오류발생시장애처리를할담당자를지정할수있다. 4. 반복횟수 [ 그림 13] 스케줄실행실패시스케줄의실행반복횟수를설정
5. 반복간격 [ 그림 14] 스케줄의실행을반복시간격시간을지정한다. 6. 예외속성 [ 그림 15] 예외속성사용자가설정한스케줄시간대로스케줄이처리되지않고시간이길어진경우스케줄처리에대한설정 시나리오정리 스케줄러에의해반드시실행여부실행중중복실행여부설명 [ 표 8] 예외속성선택에따른스케줄처리 반드시실행되어야할스케줄을큐에저장하고스케줄시간에따라순서대로처리한다. 스케줄실행이진행중에있어도예정된시간대 로스케줄을병렬로처리한다. 예정된스케줄시간이지나면이스케줄은실행 하지않는다. 스케줄실행이진행중에있어도예정된시간대 로스케줄을병렬로처리한다. Oracle DB JDBC 일부버전에서많은데이터처리후접속을닫아주지않으면, 메모리누수가발생한다. 7. 속성 [ 그림 16] 속성추가하기속성을등록하면스케줄하위 ( 프로세스,Function) 에서사용할수있다. Ex) 을클릭하여속성을추가한다. 을클릭하여속성을삭제한다. 8. Callable Param Comments 스케줄실행시값을받는인자값의설명을적는다. Ex)Callable params 에인자값을 123 이라고 넣는다면 Function 에서이인자값을쓸수있다. [ 그림 30] 인자값입력
[ 그림 17] 인자값전달 sharedmap.get(dsmserverconstants.shared_map_request_object) = 입력한인자값 [ 그림 18] 성공시사용자정의, 실패시사용자정의를할때도움코드추가버튼을클릭하면, 기본적인소스가제공된다. 9. 성공또는실패시실행할스케줄 을클릭하여성공시실행할스케줄을추가한다. 을클릭하여성공시실행할스케줄을삭제한다. 을클릭하여실패시실행할스케줄을추가한다. 을클릭하여실패시실행할스케줄을삭제한다. 성공시실행할스케줄 실패시실행할스케줄 해당스케줄이문제없이종료되었을때실행할스케줄을설정 스케줄실행중오류발생시실행할스케줄을설정 10. 성공또는실패시사용자정의성공시사용자정의스케줄이정상적으로실행되었을경우 execute 함수안에정의한 Logic이수행된다. 실패시사용자정의스케줄이실패했을경우 execute 함수안에정의한 Logic을수행하게된다예를들어 sms기능을넣어에러가발생하면문자로전송이될수있도록할수있다.
[ 그림 19] 언어선택옵션라디오버튼과사용자도움코드버튼 Language Type 에보면 Java 와 Groovy 가있다. Groovy 에대해간략한설명이다. Groovy 는자바에파이썬, 루비, 스몰토크등의특징을더한동적객체지향프로그래밍언어이다. Groovy 의문법체계는자바의것을계승발전시켰다. 자바에는없는간편표기법 (syntactic sugar) 을지원하는외에리스트, 맵, 정규식을위한구문을제공함으로써프로그래밍을쉽고간결하게해준다. 더구나 LISP 언어초기부터있어왔던클로저를도입함으로써메타프로그래밍이가능하게하였다. 자바가상기계 (JVM) 상에서동작하는동적인스크립팅언어 Jython, JRuby, Jacl, Rhino, LuaJava 등에비해손색 이없으며, 짧은역사에도불구하고빠른발전을하고있다. 자바소스는컴파일해야만사용할수있지만, Groovy 소스는스크립트파일그대로실행시킬수도있고, 자바처람컴파일하여쓸수도있다. 거의대부분의자바소스는확장명만바꾸면수정없이 Groovy에서도쓸수있다. http://groovy.codehaus.org/ 를참고하길바란다. Ex) 다음은표준 Java 의예제이다. public class StdJava { public static void main(string argv[]) { for (String it : new String [] {"Rod", "Carlos", "Chris"}) if (it.length() <= 4) System.out.println(it); } } Groovy 로는간단히다음과같이표현할수있다. ["Rod", "Carlos", "Chris"].findAll{it.size() <= 4}.each{println it}
4.4 Process [ 그림 20] 프로세스 1. 프로세스요약명 [ 그림 21-1] 프로세스요약명설정 [ 그림 21-2] 프로세스요약명설정프로세스요약명을지정한경우프로젝트리스트에서프로세스명왼쪽에 [ ] 안에프로세스요약명이보인다. 2. 격리레벨 Isolation Level 이란 : 잠금 (Lock) 을어떤식으로적용할것인가에관한얘기이다. TRANSACTION_NONE 격리수준을사용하지않는다. TRANSACTION_READ_UNCOMMITTED commit되지않은데이터도읽을수있는격리수준이다. TRANSACTION_READ_COMMITTED commit된데이터만읽을수있는격리수준이다. TRANSACTION_SERIALIZABLE SELECT 했을때 SELECT된 ROW에 RANGED S-LOCK이걸리고트랜잭션종료시까지유지되기때문에, 트랜잭션종료시까지해당범위에대해서일체의 UPDATE, INSERT, DELETE가차단되고, 따라서동일한 SELECT 결과재현이보장된다. 이것은가장높은격리수준이며가장높은데이터무결성이제공된다. TRANSACTION_REPEATABLE_READ [ 표 9] 트랜젝션격리레벨 REPEATABLE READ 수준에서는동일트랜잭션내에서한번 SELECT했던 ROW에대해서는 UPDATE나 DELETE가불가능하며트랜잭션종료시까지다시 SELECT했을때같은값이 SELECT된다는것이보장된다. 3. 트랜젝션재설정하나의스케줄에할당된트랜젝션이많은프로세스에의해 Lock상태가발생할수있다. 체크를하게되면다시트랜젝션을할당받게되어 Lock상태발생을줄일수있다. 이전에수행되었던트랜젝션은모두 commit 되고다시트랜젝션이시작된다. 4. 기능단위 commit 기능 (Function) 단위로 commit을수행한다. 기능이수행된후에는 commit이수행되고다음 Function이수행된다.
스케줄을수동으로실행시키거나스케줄에의해서실행되는경우프로세스순서대로실행이되므로선행으 로실행이되어야하는경우상단에프로세스를위치해놓아야한다. Ex) 새스케줄이실행이되면새프로세스 -> 새프로세스 _1-> 새프로세스 _2-> 새프로세스 _3 순으로실행이된다. 4.5 Function( 기능 ) 4.5.1 구성정보 [ 그림 22] 기능흐름도 1. 기능에대한 Tool Bar 이다. 2. 팔레트에서선택한기능들을가져다가사용하는곳 3. 오버뷰 : 화면상에기능이다보여지지않을경우보기위한툴이다.
4.5.1.1 팔레트 [ 그림 23-1] 팔레트의기본적인구조 [ 그림 23-2] 팔레트의하위메뉴 1. Data Sync Manager에서처리할데이터들을분류한전체적인틀이다. 사용자는목적에따라하위메뉴를선택할수있다. BIGDATA: Hadoop관련기능들이모여있다. COMPORESS: 파일압축관련기능들이모여있다. DATA MIGRATION: DB에서파일로파일에서 DB로데이터를적재하는기능들이모여있다. DATABASE: DB관련기능들이모여있다. ETC: 미분류기능들이모여있다. FILE: 파일관련기능들이모여있다. LDAP: LDAP관련기능들이모여있다. MAIL: MAIL관련기능들이모여있다.
MAPPER: JOIN 을걸수없는경우 JOIN 을걸수있도록 MAPPER 기능들이모여있다. MEMORY-OUTPUT: MEMORY 로데이터를저장하는기능이모여있다. NETWORK: 네트워크를통하여사용하는기능이모여있다. USER DEFINE: 사용자가직접정의할수있는기능이모여있다. VERIFY: DB 나파일데이터개수를확인할수있는기능이모여있다. 4.5.1.2 속성 [ 그림 24] 기본속성 Menu 프로퍼티 / 카테고리이 름순정렬 카테고리별보기 / 일반 리스트로보기 프로퍼티설명보이기또는감추기 설명속성이름또는카테고리이름으로속성들을정렬한다. 카테고리별보기또는일반리스트보기카테고리를보이거나안보이게한다. 프로퍼티설명보기또는감추기속성에대한설명을보이거나안보이게한다 데이터영향도분석사용설명에러무시이름입력파라미터명 & 출력파라미터명. 데이터영향도분석에서해당정보를사용유무설정해당기능의사용여부설정해당기능의설명입력실행도중오류발생시계속실행여부설정해당기능의이름설정파라미터의이름을넣어준다.
넣어주게되면그전에실행되었던기능의출력파라미터명을입력파라미터에서사용할 수있다. Ex) DWQuery ->CSV File 기능의출력파라미터 (output_csv_file : csv_file) 로 설정, 설정한출력파라미터명으로 Input CSV File 기능의입력파라이터 (input_csv_file : csv_file) 로설정함으로써생성되는 csv 파일을바로사용할수있다. 짧은설명 Function 에대한짤막한설명을적는다. [ 표 11] 속성 Tool 과기본속성에관한설명 [ 그림 25] 기본속성설정창기능을더블클릭을하면, 입 / 출력파라미터의이름을지정하는창이뜬다. 필수속성 : 각 Function 마다필수속성이있다. 필수속성을설정해야 Function 들이제기능을할수있으므로꼭 설정해야한다. 일반속성 : 각 Function 마다부가적인속성을정의할수있다.
4.5.2 사용예시 1 INPUT/OUPUT 설정 [ 그림 26-1] INPUT: Input CSV File 팔레트에서 INPUT 으로사용할타입의기능을선택하여마우스로클릭후기능흐름도에가져온다. [ 그림 26-2] OUTPUT: DBCUD OUTPUT 으로사용할타입의기능을선택하여마우스로클릭후 INPUT 으로사용할기능위에겹쳐놓는다.
[ 그림 26-3] 위치조절기능의위치를조정하여보기편하도록놓는다. [ 그림 26-4] 프로세스마우스우클릭해당기능의마우스오른쪽버튼을눌러기능을추가할수있다. 예제는 OUTPUT 으로 EXCEL file 을두는것을보 여준다.
[ 그림 26-5] OUTPUT 기능추가두가지 OUTPUT (DB CUD, Output Excel File) 기능을실행한다.
4.5.3 사용예시 2 병렬처리 [ 그림 27-1] 병렬처리 INPUT: Input CSV File, OUTPUT: Output CSV File INPUT: Input FIX File, OUTPUT: Output FIX File INPUT: Input EXCEL File, OUTPUT: Output EXCEL File 3 가지처리가병렬로처리된다. ( 화살표로연결되어있지않음 ) [ 그림 27-2] 프로세스실행창 실행버튼 실행된다. 을누르거나, 트리메뉴의해당프로세스에서마우스우클릭후실행버튼을누르면해당프로세스가
[ 그림 27-3] 스케줄실행중화면스케줄이진행되는모습을보여준다.
4.5.4 사용예시 3 제어코드삽입 설명 : Input FIX File 과 Input EXCEL File 을연결하여기능의흐름을정한다. [ 그림 28-1] 기능흐름정하기 Input FIX File 의 input 부분에마우스오버시키면박스가나타난다. [ 그림 28-2] 기능흐름정하기클릭후드래그하여다음실행할기능인 Input EXCEL File 에연결하면, 다음과같은화살표가나타난다. 기능흐름화살표를더블클릭하면, 조건에따라어느기능을실행할것인지를정할수있다. 주의사항 기능흐름화살표가생기지않을경우 옵션 >>Dsm 옵션에서이동방지에체크가되어있으면기능흐름을설정할수없다. 체크가해제되어있는지확인한다.
[ 그림 28-3] 주의사항 [ 그림 28-4] 제어코드삽입창 1. 코드 project, schedule, process, sharedmap, beforeattr, nextattr 을제어할수있는코드부분으로 return 은 boolean 타입 true, false 로해야된다. 2. 연산자버튼 연산자버튼을클릭하면코드에삽입된다. 3. 도움말 제어코드에대한도움말을볼수있다. 4. Shared Map Shared Map 에관한설정을할수있다 5. 프로젝트 & 스케줄속성 프로젝트와스케줄의작업경로를속성으로이용한다. 6. 적용 / 취소 작업한제어코드를적용또는취소하는버튼
[ 그림 28-5] 제어코드화살표위에삽입한제어코드가나타난다.
4.6 대시보드 & 로그 4.6.1 대시보드 [ 그림 3] 대시보드 1. 실행된스케줄별로성공또는실패횟수와실행된시간을보여준다. 2. Memory/CPU 정보창에서는서버측의 Memory 와 CPU 사용률을보기에용이하다. 3. 사용자가원하는프로젝트, 스케줄기간별로검색조건을달리하여원하는로그를볼수있다. 4. 대시보드화면에서 Ctrl + Enter 키를누르면최대화화면이되고원래화면상태로돌아가려면한번더누른다. 4.6.2 로그모니터링 [ 그림 4] 로그모니터링 1. 대시보드보다자세하게실행로그를볼수있다. 2. 프로젝트별로로그를보여준다. 3. 해당스케줄을클릭하면실행된기능의세부사항까지조회가가능하다 4. 프로세스의로그를더블클릭하면해당기능의기능흐름도로이동한다.
4.6.3 작업이력로그 [ 그림 5] 작업이력로그 1. DSM 을사용한기록을최근에작업한날짜순으로보여준다. 2. 작업일시 작업한기간날짜와시간에따라작업한기록을확인할수있다. 3. 작업자 ID 작업자 ID 에따라작업한로그들을분류하여볼수있다. 4. 작업자명 작업자명에따라작업한로그들을분류하여볼수있다. 5. 작업자 IP 작업자 IP 주소에따라작업한로그들을분류하여볼수있다. 6. 엑셀보기 로그들을엑셀파일로보여주고저장할수있다. 7. 목록수 목록수에원하는로그개수를보여주도록수를입력후에 Enter 키를치면개수와페이지가자동조절된다.
4.7 실시간모니터링 [ 그림 6] 실시간모니터링현재실행되고있는스케줄의정보를볼수있다. [ 그림 7-1] 실시간모니터링 [ 그림 7-2] 진행상황보기 Progress Bar 선택시아래그림과같이진행상황을볼수있다.
chapter5 예제 예제에앞서자신이사용하고있는 DB 가없는경우 5.1.1DerbyDB 를참고하고 사용하고있는 DB 가있는경우 DataSource 를설정한다. 1. 데이터베이스설정을누른다. 2. Data Sources 를우클릭하여데이터베이스추가를누른다. 1. 새로생성된 Data Source 를선택한다. 2. 자신이사용하고있는 DB 의드라이버,URL, 아이디, 비밀번호등을입력한다. 데이터베이스가연결이되는지확인한다. 연결이성공한경우 연결이실패한경우
5.1 시나리오 1 준비된파일 (USERINFO.txt) 의내용을읽어 NAME 컬럼을 NAME+ 님 으로수정하여 DB(test) 에 Insert 를한다. 단, ID 가 test 인사람은제외한다. 5.1.1 준비 DB에입력시킬데이터가기록되어있는파일 (USERINFO.txt) 과 DB가필요하다. USERINFO.txt DB 에테이블을생성한다. CREATE TABLE TEST ( ID NAME ADDRESS ); CREATE TABLE TEST1( ID NAME ADDRESS ); VARCHAR(20) NOT NULL, VARCHAR(20) NOT NULL, VARCHAR(100) VARCHAR(20) NOT NULL, VARCHAR(20) NOT NULL, VARCHAR(100)
5.1.1 DerbyDB 테이블생성 사용하고있는 DB 가없는경우 FrameBuilder 를설치하면 DerbyDB 를제공한다. 그림 2 그림 2 에서개발자그룹을선택한다. 그림 2 그림 3 에서쿼리편집기를실행한다. 1 번을누르면 Server Configure 가나오며 2 번을눌러 3 번에접속할서버정보를입력한다. 4 번을눌러저장한뒤 5 번을눌러연결한다.
1. 접속한서버의 DataSource 를선택한다. 2. DB 의테이블이표시된다. 3. SQL Editor 를누른다. 4. Create SQL Query 를입력한다. 5. Query 문을드래그후 Excute SQL 버튼을누른다. 1. Refresh Schema 를누른다. 2. 생성된테이블목록이보인다.
5.1.2 DSM 개발 왼쪽하단에그룹을선택하여 Data Sync Manager Group 을선택한다. 왼쪽상단의 Data Sync Manager 를실행시킨다. 프로젝트, 스케줄, 프로세스를생성후스케줄을선택하여아래그림처럼속성을정의한다. 1. 추가버튼을누른다. 2. 사용자환경에맞춰이름, 값, 설명을입력한다. 스케줄에속성을정의하면해당스케줄하위에있는프로세스에서속성값을사용할수있으며 ${ 속성이름 } 형태로사용한다.
1. 프로세스를선택하면기능흐름도팔레트기능에대한속성을볼수있다. 2. File>>Input>>Input CSV File 기능을 3 번기능흐름도에드래그 & 드롭하여놓는다. 3. DATABASE>>OUTPUT>>DB Insert 기능을 3 번기능흐름도에드래그 & 드롭하여놓는다. Input CSV File 기능을선택하여필수속성을설정한다. 그림 3 입력 Csv 파일정보설정 그림 4 입력 Csv 파일 / 폴더 USERINFO.txt 파일에맨첫줄은필요없는데이터이므로시작제거줄수를 1 로설정한다.
DB Insert 기능을선택하여필수속성을설정한다.. 1. 데이터소스를설정하고눌러 TEST 테이블을선택한다. 2. Input CSV File 기능에서입력파일정보에설정되어있는필드명이나온다. 전체필드를선택하여 ctrl+ 드래그하여 3 번에놓는다. 여기까지했다면파일을읽어서 TEST 테이블에 Insert 를할수있다. 이제 NAME 컬럼에 님 을붙이기위해서 DB Insert 기능의사용자정의코드를설정한다.
1. 도움팁을누르면필요한함수들이나온다. 2. Init() 함수는기능이시작될때한번실행이되며 execute() 함수는각각 Row 에대해여러번실행이된다. Destroy() 함수는기능이종료될때한번실행이된다. Execute() 함수안에위의그림처럼소스를입력한다. if( row.getstring("id").equals("test") ) return false; ID 가 test 인경우는 return false; 를하고있다. 이의미는해당 row 를포함하지않는다는의미이다. 그외인것은 NAME+ 님을 setstring 해주고 return true; 를해주었다. 사용자정의코드를사용하지않고 NAME+ 님 을붙이는다른설정방법이다. Input CSV File 의입력 Csv 파일정보설정을선택한다.
1. NAME 필드의변환코드를선택한다. 2. {NAME} 을더블클릭한다. 3. {NAME}+ 님 을입력한다. DB Insert 기능의사용자정의코드를설정한다.
해당프로세스를선택한후우클릭하여실행을한다. 성공시화면 실패시화면 파란색으로된링크를누르면에러가난 editor 창을볼수있으며수정은해당기능의 editor 로들어가서수정해야 한다. ( 링크로뜬 editor 에서바꾸어도바뀌지않는다.)
5.1.3 결과확인 결과확인을위해쿼리편집기로이동한다. 1. 테이블을선택한다. 2. Object Information 탭을선택한다. 3. Data 탭을선택한다. 4. 데이터를확인한다.
5.2 시나리오 2 준비된파일 (USERINFO.txt) 의내용을읽어서 DB(test) 에 Insert 를수행하고 DB(test) 에서 Sync Function 을적용하여 DB(test) 와 DB(test1) 을동기화시키고 DB(test1) 의내용을파일 (test1_ 생성날짜.txt) 로생성후압축한다. 5.2.1 준비 시나리오 1 에서사용한 USERINFO.txt 를사용한다. 시나리오 1 에서사용한 TEST DB 를사용한다 5.2.2 DSM 개발 1. CSV File-> DB Insert 기능을기능흐름도에드래그하여놓는다. 필수속성인 Insert 설정과입력 CSV 파일 / 폴더를설정한다.
Insert 설정 1. 데이터소스, 스키마, 테이블타입, 테이블을설정한다. 2. 파일에서읽을정보를설정한다. USERINFO.txt 파일에첫줄에는컬럼명이있으므로시작제거줄수를 1 로설정한다. 1. Sync DB->DB 기능을기능흐름도에드래그하여놓는다. 필수속성인싱크정보를설정한다.
1. 을눌러원본테이블을설정한다. 1. 데이터소스, 스키마, 테이블타입등을설정한후누르면테이블목록이나타난다. 2. TEST 테이블을드래그하여테이블디자인에디터에놓는다. 3. 에디터에서테이블을선택하여우클릭후 Select field 에전체컬럼추가를누르거나해당컬럼을선택후 ctrl+ 드래그하여 4 번창에놓는다. 4. ID, NAME, ADDRESS 를설정한다.
1. 데이터소스. 스키마, 테이블을설정한다. 2. TEST1 테이블에 ID, NAME, ADDRESS 컬럼을드래그한다. 3. ID, NAME, ADDRESS 를매칭시킨다. 4. Pk 를체크한다. Sync 관련기능은 Pk 를기준으로 Insert/Update 를하므로꼭설정해야한다. -> CSV File -> DB Insert 기능을선택하여선택, 드래그하여 Sync DB -> DB 기능에놓는다. 1. DWQuery -> CSV File 기능을기능흐름도에드래그하여놓는다.
필수속성인 SQL 설정, 출력파일을설정한다. {YYYY} = 년도, {MM} = 월, {DD} = 일을나타내며파일이생성될때자동으로치환된다. {HH}= 시간, {min}= 분, {ss}= 초를나타내며 {s_yyyy},{s_mm}. s_ 가붙으면설정되어있는스케줄의 값으로치환된다. Ex) 스케줄이 1 일 23 시 50 초에설정되어있는상태라고가정한다면해당스케줄이실행되는도중 24 시를 넘어가면 {DD} = 2 일이되지만 {s_dd} = 1 일로치환된다. 그러므로 s_ 를붙여서사용하는것을 권장한다. 1. 데이터소스, 스키마, 테이블타입등을설정한후누르면테이블목록이나타난다. 2. TEST1 테이블을드래그하여테이블디자인에디터에놓는다. 3. 에디터에서테이블을선택하여우클릭후 Select field 에전체컬럼추가를누르거나 해당컬럼을선택후 ctrl+ 드래그하여 4 번창에놓는다. 4. ID, NAME, ADDRESS 를설정한다. Sync DB -> DB 기능과 DWQuery -> CSV File 기능을연결시킨다.
1. Archive File 기능을기능흐름도에드래그하여놓는다. 필수속성인입력경로와출력파일을설정한다. 입력경로에생성된파일을입력해도되지만입력파라미터와출력파라미터를이용하여설정하는방법도있다. 1. 전체 I/O 속성보기를선택한다. 2. DWQuery -> CSV File 기능을선택한다. 1. 출력파라미터명을선택한다.
2. CSV_FILE 을입력한다. 1. Archive File 을선택후입력파라미터명을선택한다. 2. CSV_FILE 을입력한다. 3. 파란색으로 CSV_FILE 로설정된것을확인한다. 입력파라미터에서 DWQuery -> CSV File 의출력파라미터를넘겨받았으므로입력경로를설정하지않아도된다. DWQuery -> CSV File 과 Archive File 을연결시킨다. 1. 트랜젝션재설정과기능단위 commit 을설정한다. 하나의프로세스가종료되기전에는 commit 이되어있지않은상태이기때문에 Sync DB->DB 기능에서 TEST 테이블에데이터가존재하지않기때문에 CSV File-> DB Insert 기능이끝나고난뒤 Commit 을시켜주기위함이다.
해당프로세스를선택한후우클릭하여실행을한다. 5.2.3 결과확인 1. 테이블을선택한다. 2. Data 탭을선택한다. 3. 데이터를확인한다.
Chapter6 로그관리 6.1 로그조회및장애처리등록 [ 그림 68] 로그조회및장애처리 DSM 에서실행되었던기능들의로그를볼수있으며스케줄에서지정한담당자가오류에대해서어떻게처리했는 지, 처리중인지장애처리에대해관리를할수있다. chapter5 예제에서실행한로그를 4.6 대시보드 & 로그메뉴를통하여확인할수있다.