SQL Server/SSIS 강좌

패키지 구성

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

패키지 구성

 

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

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

 

SQL Server 2005 SSIS 부터는 패키지의 속성값을 설정할 수 있는 구성(Configurations)이라는 기능을 제공 합니다. 패키지에 포함되어 있는 컨테이너나 작업, 연결 등에 대한 속성 뿐만 아니라 패키지의 격리 수준이나 검사점 파일 등과 같은 패키지의 전반적인 속성에 대해서도 값을 설정할 수 있습니다.

 

동일한 패키지 작업을 여러 서버에서 수행하야 하거나 다수의 패키지에서 사용하는 연결 속성 등을 일괄 관리하고자 할 때 구성을 이용할 수 있습니다. 또한 부모 패키지에서 자식 패키지로 값을 지정해 주는 기능을 구현할 때에도 이용할 수 있습니다.

시스템 레지스트리의 항목을 읽어오거나 시스템 변수의 값을 사용해야 하는 경우에도 이용할 수 있습니다.

 

패키지 구성에서 설정된 값들은 실제 실행이 되는 시점에 적용 됩니다.(런타임 적용)

구성이 설정되었다고 하더라도 해당 구성 파일 또는 테이블 정보가 없는 경우에도 패키지는 정상적으로 실행 됩니다. 이러한 경우에는 구성 정보를 이용하여 속성값을 변경하는 대신 기존의 속성값을 사용하게 됩니다.

 

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

 

BIDS 상단의 메뉴에서 [SSIS(S)] – [패키지 구성©]를 선택 합니다.

 

[패키지 구성 도우미] 창이 나타나면 추가를 선택 합니다.

 

다음과 같은 [패키지 마법사]가 실행 됩니다.

  • XML 구성 파일 – XML 파일 형태로 구성 설정 값이 저장 됩니다. 하나의 XML 파일에 여러 개의 구성 설정 값이 저장될 수 있습니다. XML구성 파일은 상단의 제목 부분에는 구성 파일 자체에 대한 정보를 포함 하는 부분이며 파일을 만든 시간, 패키지 명, 패키지 ID등과 같은 값 등이 저장 됩니다. 하단의 내용은 구성으로 저장된 속성과 속성값이 저장되는 부분 입니다.

 

  • 환경 변수 – 시스템의 환경 변수에 등록된 값을 패키지에서 이용하도록 설정 합니다. 시스템의 환경 변수 설정 부분에서 변수를 추가한 후 이를 SSIS의 패키지에서 사용하도록 지정할 수 있습니다. 시스템에서 설정된 환경 변수들은 패키지의 작업 폴더의 경로나 다른 속성의 값으로 이용하도록 기본적으로 제공되는 환경 변수를 지정할 수 있습니다.

 

  • 레지스트리 항목 – 구성에서 사용할 항목의 값을 레지스트리에 저장한 후 이를 사용할 수 있습니다. 또한 환경 변수와 마찬가지로 시스템에 저장되어 있는 레지스트리 항목을 SSIS패키지에서 사용할 수 있습니다. 이 때 읽어오거나 지정할 수 있는 레지스트리는 HKEY_CURRENT_USER하위에 있는 키 값 이어야 합니다.

 

  • 부모 패키지 변수 – 부모 패키지에서 자식 패키지를 호출 할 때 자식 패키지에 있는 변수의 값 또는 개체의 속성 값을 지정할 수 있습니다. 자식 패키지에서는 값을 가져올 부모 패키지의 변수 이름을 지정해 줍니다. 부모 패키지 변수가 설정된 자식 패키지를 부모 패키지에서 호출 할 때 특별한 설정 없이도 부모 패키지에 해당 변수가 있을 때 이 변수에 저장된 값이 자식 패키지로 전달되어 실행 됩니다.

 

  • SQL Server – SQL Server에 테이블 형태로 구성 정보를 저장하여 이용할 수 있습니다.

CREATE TABLE DBO.SSIS_CONFIG

(

CONFIGURATIONFILTER NVARCHAR(255) NOT NULL,

CONFIGUREDVALUE NVARCHAR(255) NOT NULL,

PACKAGEPATH NVARCHAR(255) NOT NULL,

CONFIGUREDVALUETYPE NVARCHAR(20) NOT NULL

)

GO

 

INSERT DBO.SSIS_CONFIG VALUES ('SAMPLE1', '12345', '\Package.Variable', 'String')

GO

 

 

반응형