스크립트 태스크와 스크립트 구성 요소 비교
Integration Services 디자이너의 제어 흐름 창에서 사용할 수 있는 스크립트 태스크와 데이터 흐름 창에서 사용할 수 있는 스크립트 구성 요소는 Integration Services 패키지에서 서로 매우 다른 용도로 사용됩니다. 태스크는 일반적인 용도의 제어 흐름 도구인 반면 구성 요소는 데이터 흐름에서 원본, 변환 또는 대상으로 사용됩니다. 이러한 차이에도 불구하고 스크립트 태스크와 스크립트 구성 요소는 사용하는 코딩 도구와 개발자가 사용할 수 있는 패키지의 개체에서 약간의 유사성이 있습니다. 이러한 유사점과 차이점을 이해하면 태스크와 구성 요소 모두를 보다 효율적으로 사용할 수 있습니다.
스크립트 태스크와 스크립트 구성 요소의 유사점
스크립트 태스크와 스크립트 구성 요소는 모두 다음과 같은 일반적인 기능이 있습니다.
기능 |
설명 |
---|---|
두 개의 디자인 타임 모드 |
태스크에서든 구성 요소에서든 코드를 작성하려면 먼저 편집기에서 속성을 지정한 다음 개발 환경으로 전환합니다. |
Microsoft VSTA(Visual Studio Tools for Applications) |
태스크와 구성 요소는 모두 동일한 VSTA IDE를 사용하며 Microsoft Visual Basic 2008 또는 Microsoft Visual C# 2008에서 작성된 코드를 지원합니다. |
미리 컴파일된 스크립트 |
SQL Server 2008 Integration Services(SSIS)에서는 모든 스크립트가 미리 컴파일되어 있습니다. 이전 버전에서는 스크립트가 미리 컴파일되었는지를 지정할 수 있었습니다. 스크립트는 보다 빠르게 실행될 수 있도록 이진 코드로 미리 컴파일되지만 이 경우 패키지 크기는 늘어납니다. |
스크립트 태스크와 스크립트 구성 요소의 차이점
스크립트 태스크와 스크립트 구성 요소는 다음과 같은 중요한 차이점이 있습니다.
기능 |
스크립트 태스크 |
스크립트 구성 요소 |
---|---|---|
제어 흐름/데이터 흐름 |
스크립트 태스크는 디자이너의 제어 흐름 탭에서 구성되며 패키지의 데이터 흐름 외부에서 실행됩니다. |
스크립트 구성 요소는 디자이너의 데이터 흐름 페이지에서 구성되며 데이터 흐름 태스크의 원본, 변환 또는 대상을 나타냅니다. |
용도 |
스크립트 태스크에서는 일반적인 용도의 거의 모든 태스크를 수행할 수 있습니다. |
스크립트 구성 요소를 사용하여 원본, 변환 또는 대상 중 무엇을 만들지를 지정해야 합니다. |
실행 |
스크립트 태스크에서는 패키지 워크플로의 일부 지점에서 사용자 지정 코드를 실행합니다. 사용자 지정 코드를 루프 컨테이너나 이벤트 처리기에 추가하지 않은 경우 해당 코드는 한 번만 실행됩니다. |
스크립트 구성 요소도 한 번만 실행되지만 일반적으로 스크립트 구성 요소에서는 주 처리 루틴을 데이터 흐름의 각 데이터 행에 대해 한 번씩 실행합니다. |
편집기 |
스크립트 태스크 편집기는 일반, 스크립트 및 식이라는 세 개의 페이지로 구성됩니다. 작성할 수 있는 코드에 직접적으로 영향을 주는 것은 ReadOnlyVariables, ReadWriteVariables 및 ScriptLanguage 속성뿐입니다. |
스크립트 변환 편집기는 입력 열, 입/출력, 스크립트 및 연결 관리자라는 최대 네 개의 페이지로 구성됩니다. 이러한 각 페이지에서 구성하는 메타데이터 및 속성은 코딩에 사용할 수 있도록 자동으로 생성되는 기본 클래스의 멤버를 결정합니다. |
패키지와의 상호 작용 |
스크립트 태스크용으로 작성된 코드에서는 Dts 속성을 사용하여 패키지의 다른 기능에 액세스합니다. Dts 속성은 ScriptMain 클래스의 멤버입니다. |
스크립트 구성 요소 코드에서는 형식화된 접근자 속성을 사용하여 변수 및 연결 관리자와 같은 일부 패키지 기능에 액세스합니다. PreExecute 메서드는 읽기 전용 변수만 액세스할 수 있습니다. PostExecute 메서드는 읽기 전용 변수와 읽기/쓰기 변수 모두에 액세스할 수 있습니다. 이 방법에 대한 자세한 내용은 스크립트 구성 요소 코딩 및 디버깅을 참조하십시오. |
변수 사용 |
스크립트 태스크에서는 Dts 개체의 Variables 속성을 사용하여 태스크의 ReadOnlyVariables 및 ReadWriteVariables 속성을 통해 사용할 수 있는 변수에 액세스합니다. 예를 들면 다음과 같습니다. |
스크립트 구성 요소에서는 구성 요소의 ReadOnlyVariables 및 ReadWriteVariables 속성에서 만들어진 자동 생성 기본 클래스의 형식화된 접근자 속성을 사용합니다. 예를 들면 다음과 같습니다. |
연결 사용 |
스크립트 태스크에서는 Dts 개체의 Connections 속성을 사용하여 패키지에 정의된 연결 관리자에 액세스합니다. 예를 들면 다음과 같습니다. |
스크립트 구성 요소에서는 사용자가 편집기의 연결 관리자 페이지에서 입력한 연결 관리자 목록에서 만들어진 자동 생성 기본 클래스의 형식화된 접근자 속성을 사용합니다. 예를 들면 다음과 같습니다. |
이벤트 발생 |
스크립트 태스크에서는 Dts 개체의 Events 속성을 사용하여 이벤트를 발생시킵니다. 예를 들면 다음과 같습니다. |
스크립트 구성 요소에서는 ComponentMetaData 속성에서 반환된 IDTSComponentMetaData100 인터페이스의 메서드를 사용하여 오류, 경고 및 정보 메시지를 발생시킵니다. 예를 들면 다음과 같습니다. |
로깅 |
스크립트 태스크에서는 Dts 개체의 Log 메서드를 사용하여 설정된 로그 공급자에 정보를 로깅합니다. 예를 들면 다음과 같습니다. |
스크립트 구성 요소에서는 자동으로 생성된 기본 클래스의 Log 메서드를 사용하여 설정된 로그 공급자에 정보를 로깅합니다. 예를 들면 다음과 같습니다. [Visual Basic] Dim bt(0) As Byte Me.Log("Test Log Event", _ 0, _ bt) |
결과 반환 |
스크립트 태스크에서는 Dts 개체의 TaskResult 속성과 선택적 ExecutionValue 속성을 모두 사용하여 런타임에 결과를 알려 줍니다. |
스크립트 구성 요소는 데이터 흐름 태스크의 일부로 실행되며 이러한 속성 중 하나를 사용하여 결과를 보고하지 않습니다. |
디버깅 |
스크립트 태스크는 디자인 환경에서 디버깅하는 동안 중단점과 단계별 코드 실행을 지원합니다.
참고
스크립트 태스크가 여러 개 포함된 패키지를 디버깅할 경우 한 개의 스크립트 태스크에서만 디버거가 중단점에 도달하며 다른 스크립트 태스크에서는 중단점이 무시됩니다. 스크립트 태스크가 Foreach 루프 또는 For 루프 컨테이너의 일부일 경우 디버거는 루프의 첫 번째 반복 뒤에 있는 스크립트 태스크의 중단점을 무시합니다.
|
스크립트 구성 요소는 디버깅을 지원하지 않습니다. 자세한 내용은 스크립트 구성 요소 코딩 및 디버깅의 "스크립트 구성 요소 디버깅"을 참조하십시오. |
|