이번에 소개해드릴 내용은 한번쯤은 사용해 보셨을.. DTS라는 녀석에 대한 이야기

입니다.

 

이러한 수행으로.. 해당DB선택 -> 모든작업 에서.. 데이터 가져오기나 내보내기를

이용 DTS작업을 수행 하셨거나..

 

이렇게.. 데이터 가져오기 및 내보내기툴을 이용해서 작업을 해본 적도 

있으실 겁니다.

 

뭐 좋습니다. 

"한번쯤 다 해 봤고.. 알고 있는데 이런 야그 왜하냐 "  -_-;;

네.. 물론 알고는 계시겠지만. . 놓치고 지나치신 부분... 그리고 알아두시면

대단히 유용하게 작업 하실 수 있는... 그런 부분역시 설명을 드리려 한답니다. ^_^

 

또한.. DTS를 프로젝트에 한번 사용하시는 분도 계실것이고.. 데일리 배치, 위클리배치

등.. 여러 작업을 수행하시는 분들도 계실 것입니다.

프로젝트 개발 완료후.. 프러덕션 서버에 전송하기 위한 용도로 한번...

사용하시는 분... 매일매일 데이터의 동기화를 위해.. 원격지의 서버에 전송 작업을

하셔야 하는 분들.. 등 여러 부류의 개발자 분들이 계실 텐데요..

기껏해야 한두번 사용하는 건데..  하셔도 좋습니다. 하지만 언제 이 DTS와 함께

전쟁을 치루셔야 할지 모르니.. 한번쯔음~~ 자세히 보시는 것도 나쁘지 않겠지요?

^_^

 

DTS를 한마디로 말씀 드리자면?

이런 그림으로 표현이 됩니다.

반드시 하나 이상의 데이터를 가져올 데이터 원본 - Source가 필요하며 DTS엔진으로

SQL서버에 포함되어 있는 DTS엔진을 통해 하나 이상의 타겟 DATA에 전송되어야 합니다.

물론 여러개의 원본에서 데이터를 추출 / 적절한 가공 처리 / 여러개의 데이터 타겟

으로 전송 역시 가능하지요. 필수적인 것은 저렇게 붉은 색으로 처리된 것이며.

하나의 SQL서버에서 역시 데이터 소스 / 데이터 타겟 처리 가능하고

하나의 SQL서버 DB에서 역시나 테이블의 이름을 변경해 처리 역시 가능합니다.

중요한건 SQL서버가 중간에 포함되기만 하면 되며 오라클 <-> SQL서버 <-> 오라클

도 역시나 가능합니다.

 

여기서 잠시 DTS에 대한 여러 오해들을 알아 보도록 하지요.

DTS에 대한 오해들

1. SQL서버 끼리만 데이터 전송이 가능하다.

    - 데이터 소스에 대한 핸들러(ODBC, OLEDB Provider)만 있으면 가능합니다.

2. 다양한 데이터 핸들을 할 수 없다.

   - ODBC나 OLEDB가 접근만 가능하다면 모든 데이터를 핸들 가능합니다. 심지어는 

      TEXT화일까지도..

3. SQL서버의 데이터소스나 데이터 타겟에 없는 DB나 DBMS에 대해서는 DTS할 수 없다.

   - DBMS를 만들어 팔 정도의 회사는 프로그래밍 기술이 극한까지 올라가 있는 회사

      입니다. 또한 이기종과의 통합성을 '기본적으로' 제공하지 않으면 팔리지 않는것이

      요즘의 현실이지요. 당연히 대부분의 경우 ODBC, OLEDB Provider를 제공하며

      단지 모르기 때문에 저런 이야기가 나오는 것입니다. 각 업체에서 제공하는 이

      데이터 핸들러를 설치하고 다시 DTS의 데이터 소스나 타겟을 보시면? 해당하는

      제공자가 추가되어 있으며 DTS 처리가 가능합니다.

     추가적으로 ODBC나 OLEDB Provider는 MS에서 제창하고 그와 동시에 ADO나 그외

     프로그래밍에서 사용 되었습니다. 즉, 표준이 되어 버린 것이지요. 대부분의 어플들에서

     사용이 되며 손쉽고 빠르게 데이터 처리가 가능하기 때문에... 참고 하시길..

4. DTS는 재사용이 불가하다?

   - 설마요.. DTS는 패키지화 한후 자동화 작업인 Job에 등록후 재사용이 얼마든지 가능하며

     DTS패키지를 적절히 변환 다른 모듈을 붙일 수도 있으며 Job에 등록되기 때문에

     매일 / 매주 등의 스케쥴링 작업이 가능합니다.

     또한 이 DTS작업은 msdb의 sysdtspackage에 저장되며 이녀석을 이용 다른 서버에

     DTS패키지를 전송후 얼마든지 재사용이 가능합니다.

 

자... 그럼 DTS - 정확히는 MS의 데이터 핸들러가 어떤 데이터를 "기본적으로" 핸들 가능한지

알아 보도록 하지요.

간단합니다. 전부 적을거라 예상 하셨겠지만... -_-;;

이렇게..  DTS의 데이터 원본이나.. 데이터 소스 부분을 보시면 됩니다. -_-;;

뭐 좋습니다. 대단히 많습니다. 엑셀 / 엑세스 / 오라클 / DBase / 폭스 / SQL서버

등등이 있으며.. 텍스트 화일 역시 있습니다. ^_^

그렇다면.. 잘 사용은 하지만.. 이 리스트에 없는 녀석들은 어떻게 하는걸까요?

위에서 "기본적으로" 제공하는 녀석들에 대한 이야기만 말씀 드린 것이며..

"추가적으로" 범용적으로 국내에서 사용하는 몇몇 DB나 DBMS에 대한 글 역시

적어 보겠습니다.

 

1. MySQL 

이녀석은.. 최근 박훈님이 Friend's 강좌에 올려주신 MySQL Migration에

대한 글에서 쉽게 보실 수 있습니다. - 이자리를 빌어 박훈님께 감사 드립니다.

http://sqler.pe.kr/FriendLec/main.asp

부분의 진행된 강좌 부분에서 박훈님의 상세한 글을 보실 수 있으니 참고 하시구요.

MySQL ODBC를 이용하시면 되며 해당하는 글이 있으니 참고 하세요.

 

2. IBM DB2 

이녀석은.. 조금 난해 하실 수 있습니다.

가장 좋은 방법은 HIS서버(Host Integration Server)의 OLEDB Provider를 가져다가

사용하는 것입니다. HIS서버의 평가판은

http://microsoft.com/hiserver

에서 받으실 수 있으며 여기에 보시면? OLEDB 만 설치가 가능하니 이것을 이용하심이

좋습니다. HIS서버는 참고로 IBM 메인프레임과 연결 및 처리를 가능하게 하는 것으로..

메인 프레임의 ISAM / VSAM 데이터 역시 접근이 가능한 녀석입니다. 물론 DB2역시나..

이 녀석을 이용 DB2에 접근하실 수 있지요. 또는 CA400이라는 DB2용 클라이언트

툴 제작에 필요한 클라이언트인 이녀석에서 ODBC역시 구할 수 있다고 하니

참고 하세요.

 

3. Sybase 

이녀석은 쉽게 제공을 안해준다고 합니다. -_-;;

먼저 이녀석에 대한 ODBC를 구하시려면?  

Sybase에 정식으로 요청하는 방법과..파워빌더라는 개발툴에 

이 Sybase ODBC가 들어 있다고 합니다.

이녀석을 이용하시면 쉽게 Sybase용 ODBC를 설치가 가능하다고 하니 참고 하세요.

저역시 Sybase는 사용해 보지 않아서 모라 말씀 드리기 힘들군요.

확답을 가지신 분이 계시다면? 팁 게시판에 올려 주시거나..   

저에게 메일 주시면.. 등록하도록 하겠습니다.

 

5. Infomix 

이녀석은 특이하게도.. ODBC를 제공해 주지 않는다고 합니다. -_-;;

오로지 개발자에게만 ODBC를 제공 하며 라이센스를 구입해야 한다고 하네요.

역시나 파워빌더에는 이 인포믹스용 ODBC가 포함되어 있으며 적절히 추출(?) -_-;;

하시면 된다고 합니다. 참고 하시길 바랍니다. - 정보 주신 라라님 감사합니다.

 

이정도면 종종 사용하는 DB에 대한 소개는 해드린듯 하네요.

각각의 DB에 대한 버젼 / ODBC나 OLEDB의 버젼이 틀리다면 잘 안될 수 있으며

해당하는 문서들은 자신이 맞게 찾아서 해결 하셔야 할 것입니다.

 

ODBC와 OLEDB ?

ODBC는 Open DataBase Conectivity의 약자로 범용적인 데이터 접근을 위한 것입니다.

OLEDB역시 비슷하지요.

두개의 가장 큰 차이점을 말씀 드리자면? OLEDB는 훨씬 더 범용적입니다.

ODBC가 강형의(Strong) 2차원 테이블형의 정적인 데이터를 요구하는 반면..

OLEDB는? 좀더 느슨(Loosely Coupled)하며 좀더 범용적으로 

예를들면 텍스트 화일 / E-Mail등역시 데이터 원본으로 처리할 수 있지요. 

- 속도적인 측면으로 볼때 역시 OLEDB가 느릴것 같지만? 더 빠릅니다. -_-; 

또한 개발작업을 수행할 경우에 이용 역시 이 OLEDB가 간편합니다.

그외 UDL화일 생성 / 재사용을 위한 연결 등은 이 DTS에서 벗어나는 듯 하니.. 

넘어 가도록 하겠습니다. - 물론 UDL화일로 DTS역시 가능합니다.

 

그리고.. 남들이 잘 안하는 이야기로.. -_-;;

SQL서버끼리는 - 정확히 SQL2000 <-> SQL2000 또는 SQL7 <-> SQL2000 또는 SQL7 <-> SQL7

이녀석들은.. Transfer(데이터베이스간 개체 및 데이터 복사)가 가능합니다.

즉, 데이터 뿐 아니라.. 데이터베이스의 여러 개체들인 기본키, 참조키, 저장 프로시져

등등의 여러 개체들을 다른 SQL서버로 전송이 가능하다는 것이지요.

하지만 잘 모르시는 분들 - 처음 호스팅을 받으시거나.. 하시는 분들은 어려울 수 있습니다.

이때 생기는 여러 문제들의 해결 방안 역시 말씀 드릴 것이니 참고 하시길 바라구요.

 

참고로 SQL서버의 DTS에 대한 온라인 도움말 역시 많이 봐 보시길 바랍니다.

여러가지 발생 가능한 문제 - LOB데이터 처리 등.. 에 대한 글들 역시 참조 하실

수 있으니 도움 되시길 바랍니다.

 

자 그럼 다음으로..

이 DTS작업간의 여러 샘플들을 알아 보도록 하겠습니다.

 


12. DTS(Data Transfer Service) - 

                    1. DBMS간 데이터 전송에 대한 이해





profile

부족하지만, SQLER의 누군가와 함께한 나눔을 통해 제가 더 많이 즐거웠습니다.
SQLER와 함께 즐거워 할수록, 그 나눔을 통해 더 많은 기회와 가치를 발견하게 되었습니다.
나눔의 생각이 앞으로도 계속, SQLER를 움직일 것입니다.

코난, 김대우 / SQLER 운영자 / 골라먹는 SQLER RSS 정보 구독 / 실시간 SQLER 소식 uxkorea 트위터