스크립트 태스크 및 스크립트 구성 요소 비교
적용 대상: Azure Data Factory의 SQL Server SSIS Integration Runtime
Integration Services 디자이너의 제어 흐름 창에서 사용할 수 있는 스크립트 작업과 데이터 흐름 창에서 사용할 수 있는 스크립트 구성 요소는 Integration Services 패키지에서 매우 다른 용도로 사용됩니다. 이 작업은 범용 제어 흐름 도구인 반면, 구성 요소는 데이터 흐름의 원본, 변환 또는 대상으로 사용됩니다. 그러나 스크립트 태스크와 스크립트 구성 요소는 서로 다른 용도에도 불구하고 사용하는 코딩 도구와 개발자가 사용할 수 있도록 하는 패키지의 개체에 몇 가지 유사점이 있습니다. 유사점과 차이점을 이해하면 작업과 구성 요소를 보다 효과적으로 사용하는 데 도움이 될 수 있습니다.
스크립트 태스크와 스크립트 구성 요소 간의 유사점
스크립트 태스크와 스크립트 구성 요소는 다음과 같은 일반적인 기능을 공유합니다.
기능 | 설명 |
---|---|
두 개의 디자인 타임 모드 | 작업과 구성 요소 모두에서 먼저 편집기에서 속성을 지정한 다음 개발 환경으로 전환하여 코드를 작성합니다. |
VsTA(Microsoft Visual Studio Tools for Applications) | 작업과 구성 요소 모두 동일한 VSTA IDE를 사용하며 Microsoft Visual Basic 또는 Microsoft Visual C#으로 작성된 코드를 지원합니다. |
미리 컴파일된 스크립트 | SQL Server 2008 Integration Services(SSIS)부터 모든 스크립트가 미리 컴파일됩니다. 이전 버전에서는 스크립트가 미리 컴파일되었는지 여부를 지정할 수 있습니다. 스크립트는 이진 코드로 미리 컴파일되어 더 빠른 실행을 허용하지만 패키지 크기는 증가합니다. |
디버깅 | 태스크 및 구성 요소 모두 디자인 환경에서 디버깅하는 동안 중단점과 단계별 코드 실행을 지원합니다. 자세한 내용은 스크립트 태스크 코딩 및 디버깅, 스크립트 구성 요소 코딩 및 디버깅을 참조하세요. |
스크립트 태스크와 스크립트 구성 요소 간의 차이점
스크립트 태스크와 스크립트 구성 요소는 다음과 같은 중요한 차이점이 있습니다.
기능 | 스크립트 태스크 | 스크립트 구성 요소 |
---|---|---|
제어 흐름/데이터 흐름 | 스크립트 작업은 디자이너의 제어 흐름 탭에서 구성되고 패키지의 데이터 흐름 외부에서 실행됩니다. | 스크립트 구성 요소는 디자이너의 데이터 흐름 페이지에서 구성되며 데이터 흐름 태스크의 원본, 변환 또는 대상을 나타냅니다. |
목적 | 스크립트 태스크는 거의 모든 범용 작업을 수행할 수 있습니다. | 스크립트 구성 요소를 사용하여 원본, 변환 또는 대상을 만들 것인지 여부를 지정해야 합니다. |
실행 | 스크립트 태스크에서는 패키지 워크플로의 일부 지점에서 사용자 지정 코드를 실행합니다. 루프 컨테이너 또는 이벤트 처리기에 배치하지 않는 한 한 한 번만 실행됩니다. | 스크립트 구성 요소도 한 번만 실행되지만 일반적으로 스크립트 구성 요소에서는 주 처리 루틴을 데이터 흐름의 각 데이터 행에 대해 한 번씩 실행합니다. |
편집기 | 스크립트 태스크 편집기에는 일반, 스크립트 및 식이라는 3개 페이지가 있습니다. ReadOnlyVariables 및 ReadWriteVariables 및 ScriptLanguage 속성만 작성할 수 있는 코드에 직접 영향을 줍니다. | 스크립트 변환 편집기에는 입력 열, 입/출력, 스크립트 및 연결 관리자 등 최대 4개 페이지가 있습니다. 이러한 각 페이지에서 구성하는 메타데이터 및 속성은 코딩에 사용하기 위해 자동으로 생성된 기본 클래스의 멤버를 결정합니다. |
패키지와의 상호 작용 | 스크립트 작업을 위해 작성된 코드에서 Dts 속성을 사용하여 패키지의 다른 기능에 액세스합니다. Dts 속성은 ScriptMain 클래스의 구성원입니다. | 스크립트 구성 요소 코드에서는 형식화된 접근자 속성을 사용하여 변수 및 연결 관리자와 같은 특정 패키지 기능에 액세스합니다. PreExecute 메서드는 읽기 전용 변수에만 액세스할 수 있습니다. PostExecute 메서드는 읽기 전용 및 읽기/쓰기 변수 모두에 액세스할 수 있습니다. 이러한 메서드에 대한 자세한 내용은 스크립트 구성 요소 코딩 및 디버깅을 참조 하세요. |
변수 사용 | 스크립트 태스크는 Dts 개체의 속성을 사용하여 Variables 태스크 ReadOnlyVariables 및 ReadWriteVariables 속성을 통해 사용할 수 있는 변수에 액세스합니다. 예시: [Visual Basic] Dim myVar as String myVar = Dts.Variables("MyStringVariable").Value.ToString [C#] string myVar; myVar = Dts.Variables["MyStringVariable"].Value.ToString(); |
스크립트 구성 요소에서는 구성 요소의 ReadOnlyVariables 및 ReadWriteVariables 속성에서 만들어진 자동 생성 기본 클래스의 형식화된 접근자 속성을 사용합니다. 예시: [Visual Basic] Dim myVar as String myVar = Me.Variables.MyStringVariable [C#] string myVar; myVar = this.Variables.MyStringVariable; |
연결 사용 | 스크립트 태스크는 Dts 개체의 속성을 사용하여 Connections 패키지에 정의된 연결 관리자에 액세스합니다. 예시: [Visual Basic] Dim myFlatFileConnection As String myFlatFileConnection = _ DirectCast(Dts.Connections("Test Flat File Connection").AcquireConnection(Dts.Transaction), _ String) [C#] string myFlatFileConnection; myFlatFileConnection = (Dts.Connections["Test Flat File Connection"].AcquireConnection(Dts.Transaction) as String); |
스크립트 구성 요소는 편집기의 연결 관리자 페이지에서 사용자가 입력한 연결 관리자 목록에서 만든 자동 생성된 기본 클래스의 형식화된 접근자 속성을 사용합니다. 예시: [Visual Basic] Dim connMgr As IDTSConnectionManager100 connMgr = Me.Connections.MyADONETConnection [C#] IDTSConnectionManager100 connMgr; connMgr = this.Connections.MyADONETConnection; |
이벤트 발생 | 스크립트 태스크는 Dts 개체의 속성을 사용하여 Events 이벤트를 발생합니다. 예시: [Visual Basic] Dts.Events.FireError(0, "Event Snippet", _ ex.Message & ControlChars.CrLf & ex.StackTrace, _ "", 0) [C#] Dts.Events.FireError(0, "Event Snippet", ex.Message + "\r" + ex.StackTrace, "", 0); |
스크립트 구성 요소는 속성에서 반환 ComponentMetaData 된 인터페이스의 IDTSComponentMetaData100 메서드를 사용하여 오류, 경고 및 정보 메시지를 발생합니다. 예시: [Visual Basic] Dim myMetadata as IDTSComponentMetaData100 myMetaData = Me.ComponentMetaData myMetaData.FireError(...) |
로깅 | 스크립트 태스크는 Dts 개체의 메서드를 사용하여 Log 사용 가능한 로그 공급자에 정보를 기록합니다. 예시: [Visual Basic] Dim bt(0) As Byte Dts.Log("Test Log Event", _ 0, _ bt) [C#] byte[] bt = new byte[0]; Dts.Log("Test Log Event", 0, bt); |
스크립트 구성 요소는 자동 생성된 기본 클래스의 메서드를 사용하여 Log 활성화된 로그 공급자에 정보를 기록합니다. 예시: [Visual Basic] Dim bt(0) As Byte Me.Log("Test Log Event", _ 0, _ bt) [C#] byte[] bt = new byte[0]; this.Log("Test Log Event", 0, bt); |
결과 반환 | 스크립트 태스크는 Dts 개체의 속성과 선택적 ExecutionValue 속성을 모두 TaskResult 사용하여 런타임에 결과를 알립니다. | 스크립트 구성 요소는 데이터 흐름 태스크의 일부로 실행되며 이러한 속성 중 하나를 사용하여 결과를 보고하지 않습니다. |