반응형


따라하기  – 스크립트 구성 요소를 데이터 변환으로 이용하기

 

SQL 쿼리를 이용한 입력 데이터에 대리키(Surrogate Key) 형태의 순번 열과 누적 수량(Quantity)을 추가하는 작업을 구현하겠습니다.

 

1.       빈 패키지 파일을 하나 추가한 후, 데이터 흐름 작업을 추가합니다.

 

2.       아래 부분에 있는 연결 관리자에서 AdventureWorks를 지정하는 OLE DB 연결을 생성합니다. 이 연결은 스크립트 구성 요소를 이용한 변환 작업을 수행하기 위한 OLE DB 원본에서 이용할 것입니다.

 

3.       데이터 흐름 영역OLE DB 원본을 추가한 후, 2에서 추가한 연결을 지정하고 데이터 액세스 모드테이블 또는 뷰 에서 SQL 명령으로 변경합니다. 그런 다음 SQL 명령 텍스트에 다음과 같은 쿼리를 입력합니다.

 

SELECT A.TransactionID, A.ProductID, B.Name AS ProductName, Quantity

FROM Production.TransactionHistory A JOIN Production.Product B ON A.ProductID = B.ProductID

             

             

 

4.       도구 상자에서 스크립트 구성 요소를 추가한 후, 유형을 변환으로 선택하고 OLE DB 원본의 녹색 선을 연결합니다.



5.       스크립트 구성 요소를 더블 클릭하여 스크립트 변환 편집기를 연 후, 입력 열 탭에서 네 개의 열을 모두 체크합니다.



6.       /출력 탭에서 출력 0을 확장한 후, 출력 열을 선택한 상태에서 열 추가(C)를 클릭하여 열을 추가합니다. 열의 이름은 Seq이며, DataType부호 없는 4바이트 정수(DT_I4)로 설정합니다. 동일한 방법으로 열을 하나 더 추가한 후, 열 이름을 AccumQuantity로 설정하고 DataType도 동일하게 DT_I4로 설정합니다.



7.       왼쪽의 스크립트 탭을 클릭한 후, 스크립트 디자인(S) 버튼을 클릭하여 스크립트를 작성할 VSA(Visual Studio for Applications)를 띄운 후, 다음 스크립트를 입력합니다.

' Microsoft SQL Server Integration Services user script component

' This is your new script component in Microsoft Visual Basic .NET

' ScriptMain is the entrypoint class for script components

 

Imports System

Imports System.Data

Imports System.Math

Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper

Imports Microsoft.SqlServer.Dts.Runtime.Wrapper

 

Public Class ScriptMain

    Inherits UserComponent

 

    Dim seq As Integer

    Dim AccumQty As Integer

 

 

    Public Sub New()

        seq = 0

        AccumQty = 0

 

    End Sub

 

    Public Overrides Sub 입력0_ProcessInputRow(ByVal Row As 입력Buffer)

        '

        ' Add your code here

        '

        seq += 1

 

        Row.Seq = seq

        AccumQty = AccumQty + Row.Quantity

 

        Row.AccumQuantity = AccumQty

 

    End Sub

 

End Class

 

8.       VSA를 닫은 후, 확인을 눌러 스크립트 변환 편집기를 닫습니다.

 

9.       데이터 흐름 영역의 빈 곳에서 마우스 오른쪽 클릭을 하여 나타나는 메뉴 중 변수(S)를 선택하여 변수 창을 띄운 후, tempResult라는 이름의 Object 형 변수를 하나 추가합니다

 

10.   도구 상자에서 레코드 집합 대상을 추가한 후, 스크립트 구성 요소의 녹색 선과 연결합니다. 레코드 집합 대상을 더블 클릭하여 레코드 집합 대상 편집기를 띄운 후, 구성 요소 속성 탭에서 VariableName 부분에 tempResult를 입력합니다. 입력 열 탭에서 모든 열을 선택합니다.



 

11.   추가되는 데이터를 확인하기 위해 데이터 뷰어를 추가합니다. 스크립트 구성 요소레코드 집합 대상 사이의 데이터 흐름 경로를 더블 클릭한 후, 데이터 뷰어 탭에서 형태의 데이터 뷰어를 추가합니다.

 

12.   패키지를 실행하여 처리되는 데이터를 확인합니다.



 

반응형

+ Recent posts