데이터베이스 개발자 Tip & 강좌

SQLER의 개발자들이 만들어가는 데이터베이스 사용자 Tip & 강좌 게시판입니다. SQL서버, Oracle, MySQL 등 여러 클라우드/오픈소스 기반 데이터베이스 개발 및 운영 관련 팁과 쿼리 노하우를 이곳에서 가장 먼저 접하실 수 있습니다. 많은 도움 되시길 바랍니다.

패키지 실행 – 부모 패키지와 자식 패키지로 효율적인 관리하기

 

안녕하세요 강성욱 입니다.(www.sqltag.org, www.sqler.com, http://blog.naver.com/jevida)

 

이번 시간에는 [패키지 실행]에 대해서 알아 보도록 하겠습니다.

 

SSIS에서는 패키지 실행 작업을 이용하여 다른 SSIS 패키지를 호출하여 실행 할 수 있습니다.

패키지 호출 기능은 다음과 같이 이용할 수 있습니다.

  • 복잡한 대규모 데이터 처리 프로세스의 각 작업들을 작은 단위로 분리하여 관리할 수 있습니다.
  • 패키지 보안을 사용할 수 있습니다. 중요한 프로세스 경우 별도의 패키지를 만들고 패치지 호출 작업으로 해당 부분의 패키지를 호출 할 수 있습니다. 별도로 만든 패키지에는 SSIS에서 기본적으로 제공하는 암호 설정 기능을 이용하여 조회나 수정이 불가능하도록 설정 할 수 있습니다.
  • 작업 수행 및 관리가 용이 합니다. 마스터 패키지에서 자식 패키지를 호출하여 패키지 순서나 동시에 수행할 패키지 수를 조절할 수 있습니다.

패키지를 호출하는 패키지를 부모 패키지라 하고 호출 당하는 패키지를 자식 패키지라고 합니다. 부모 패키지는 자식 패키지에게 값을 전달할 수 있으며 자식 패키지에서는 이 값을 넘겨 받아 사용할 수 있습니다.

 

이번 실습 에서는 부모 패키지에서 자식 패키지로 변수 값을 설정하여 호출하는 방법에 대해서 알아 봅니다.

 

[BIDS]를 실행하여 [Integration Services 프로젝트]를 실행 합니다.

 

[솔루션 탐색기]에서 마우스 오른쪽을 클릭하여 [새 SSIS 패키지]를 선택 합니다.

[자식 패키지]로 이름을 변경 합니다.

 

 

[자식 패키지]에서 제어 흐름에서 [스크립트 태스크]를 마우스를 이용하여 드래그 앤 드롭 으로 끌어다 놓습니다.

 

 

[변수]에서 아래 그림과 같이 변수 값과 범위, 데이터 형식 등을 지정 합니다.

그리고 스크립트 태스크 속성에서 ReadOnlyVariables 항목에서 [User::Var1]을 설정합니다.

 

스크립트 편집기를 이용하여 다음과 같이 코드를 입력 합니다.

MessageBox.Show(Dts.Variables["Var1"].Value.ToString());

 

패키지를 실행하여 입력한 변수가 정상적으로 출력되는지 확인 합니다.

(현재 자식패키지가 호출되었으므로 팝업으로 자식 패키지 라는 글자가 나타납니다.)

 

 

이제 부모 패키지의 변수 값을 받아 오는 부분을 설정 하도록 하겠습니다.

[SSIS]-[패키지 구성]을 선택 합니다.

 

 

[패키지 구성 도우미] 창이 나타나면 [패키지 구성 설정]을 활성화 하고 [추가]버튼을 눌러 마법사를 시작 합니다.

 

 

[구성 유형 선택]에서 [구성 유형]은 부모 패키지 변수를 선택 합니다.

[구성 설정을 직접 지정]으로 선택하고 부모 변수를 아래 그림과 같이 입력 합니다.

 

 

 

[대상 속성 선택]에서 [변수] – [Var1] – [Properties] – [Value]를 선택 합니다.

 

 

구성 이름을 지정하고 마법사를 완료 합니다.

 

 

[부모 패키지]에서 다음 그림과 같이 변수 값을 설정 합니다. 그리고 [패키지 실행 태스크]를 드래그 앤 드롭으로 끌어다 놓습니다.

 

[패키지 실행 태스크] 편집기에서 다음과 같이 설정 합니다.

 

 

패키지를 수행하면 부모 패키지가 자식 패키지를 호출하면서 부모 패키지의 변수 값을 자식 패키지에게 할당 함으로써 자식 패키지는 부모 패키지의 변수를 받아 출력된 것을 확인 할 수 있습니다.

 

 

 

부모 패키지에서 자식 패키지를 호출 하는 방식은 복잡한 처리 프로세스를 개발하거나 관리 할 때 유용하게 사용합니다.

 

복잡한 프로세스에서 연관된 작업을 각각의 개별 패키지로 분리하여 각 패키지를 관리하는 부모패키지를 만들어 운용한다면 효율적으로 관리 할 수 있을 듯 합니다 

강성욱 / jevida@naver.com
Microsoft SQL Server MVP
Blog : http://sqlmvp.kr
Facebook : http://facebook.com/sqlmvp



No. Subject Author Date Views
1553 SSIS - 오류 메시지 전송 작업 jevida(강성욱) 2013.09.25 10341
1552 SSIS - 작업 전송 작업 jevida(강성욱) 2013.09.25 7458
1551 SSIS - 로그인 전송 작업 jevida(강성욱) 2013.09.25 8838
1550 SSIS - 데이터베이스 전송 작업 jevida(강성욱) 2013.09.25 8471
1549 SSIS - Master 저장 프로시저 전송 태스크 jevida(강성욱) 2013.09.25 7049
» SSIS - 패키지 실행 - 부모 패키지와 자식패키지로 효율적인 관리하기 jevida(강성욱) 2013.09.25 8915
1547 SSIS - XML 태스크 - XML 비교, 병합, 출력등 다양한 작업을 하자. jevida(강성욱) 2013.09.24 7146
1546 SSIS - 웹서비스 작업 - 웹 정보를 가져오자 jevida(강성욱) 2013.09.24 7968
1545 SSIS - 메시지 큐 - MSMQ를 이용한 비동기 전송 jevida(강성욱) 2013.09.24 10886
1544 SSIS - 메일 보내기 - 데이터 처리 결과를 메일로 전송 하자! jevida(강성욱) 2013.09.24 10400
1543 SSIS - 대량 삽입 작업 - BULK INSERT ? jevida(강성욱) 2013.09.24 10835
1542 SSIS - 이벤트 처리 및 오류 출력 - 다양한 이벤트로 오류를 출력하자 jevida(강성욱) 2013.09.24 8882
1541 SSIS - 데이터 흐름 경로 jevida(강성욱) 2013.09.24 8650
1540 VS2012 에서 CLR 프로젝트 작업 시 SSDT 오류 날 경우 쓸만한게없네(윤선식) 2013.08.21 5464
1539 SQL2014 Buffer Pool Extension 열이 2013.07.01 6066
1538 SQL Server 2014 CTP1 In-Memory OLTP 샘플 및 스샷 [1] 열이 2013.06.27 6287
1537 SQL Server 2014 CTP1 간단 설치 리뷰... [1] 이지만 2013.06.26 4856
1536 SQL Server 2014 Key Note. [2] 쓸만한게없네(윤선식) 2013.06.10 6564
1535 SQL Server Language Code [3] 쓸만한게없네(윤선식) 2013.05.06 7251
1534 sp_depends를 믿을 수 없다? [3] 차주언 2013.05.03 6762





XE Login