SQL Server/SSIS 강좌

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

SungWookKang 2015. 7. 16. 10:31
반응형

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

 

안녕하세요 강성욱 입니다.(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]를 선택 합니다.

 

 

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

 

 

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

 

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

 

 

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

 

 

 

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

 

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

반응형