데이터 흐름의 데이터 형식 작업

적용 대상: Azure Data Factory SSIS Integration Runtime SQL Server

Integration Services에서 사용자 지정 데이트 흐름 구성 요소를 개발할 때는 데이터를 데이터 흐름 버퍼에 복사하거나 데이터 흐름 버퍼에서 복사해 오고 값을 변환하는 방식으로 데이터 형식에 대한 작업을 지속적으로 수행하게 됩니다. 이 항목에서는 올바른 Integration Services 데이터 형식을 선택하고 데이터 형식에 대한 작업을 수행할 때 올바른 메서드를 사용할 수 있도록 유용한 정보를 제공합니다.

데이터 흐름에 데이터 삽입

PipelineBuffer 클래스는 버퍼 열에 데이터를 복사하는 일련의 Set 메서드 및 해당 버퍼 열에서 데이터를 검색하는 일련의 Get 메서드를 제공합니다. 다음 표에서는 각 Integration Services 데이터 형식으로 사용할 메서드를 보여 줍니다.

데이터 형식에 사용할 수 있는 Set 메서드

다음 표에서는 첫 번째 열에 데이터 형식을 나열한 다음 해당 SetGet 메서드를 나열합니다.

데이터 형식 Set 메서드 Get 메서드
DT_BOOL SetBoolean GetBoolean
DT_BYTES SetBytes GetBytes
DT_CY SetDecimal GetDecimal
DT_DATE SetDateTime GetDateTime
DT_DBDATE SetDate GetDate
DT_DBTIME SetTime GetTime
DT_DBTIME2 SetTime GetTime
DT_DBTIMESTAMP SetDateTime GetDateTime
DT_DBTIMESTAMP2 SetDateTime GetDateTime
DT_DBTIMESTAMPOFFSET SetDateTimeOffset GetDateTimeOffset
DT_DECIMAL SetDecimal GetDecimal
DT_FILETIME SetDateTime GetDateTime
DT_GUID SetGuid GetGuid
DT_I1 SetSByte GetSByte
DT_I2 SetInt16 GetInt16
DT_I4 SetInt32 GetInt32
DT_I8 SetInt64 GetInt64
DT_IMAGE AddBlobData 또는 AddBlobData GetBlobData
DT_NTEXT AddBlobData 또는 AddBlobData GetBlobData
DT_NULL SetNull 이 데이터 형식에 적용할 수 있는 Get 메서드가 없습니다.
DT_NUMERIC SetDecimal GetDecimal
DT_R4 SetSingle GetSingle
DT_R8 SetDouble GetDouble
DT_STR SetString GetString
DT_TEXT AddBlobData 또는 AddBlobData GetBlobData
DT_UI1 SetByte GetByte
DT_UI2 SetUInt16 GetUInt16
DT_UI4 SetUInt32 GetUInt32
DT_UI8 SetUInt64 GetUInt64
DT_WSTR SetString GetString

Set 메서드와 함께 사용할 수 있는 데이터 형식

Set 메서드 데이터 형식
AddBlobData 또는 AddBlobData DT_IMAGE, DT_NTEXT또는 DT_TEXT
SetBoolean DT_BOOL
SetByte DT_UI1
SetBytes DT_BYTES
SetDate DT_DBDATE
SetDateTime DT_DATE, DT_DBTIMESTAMP, DT_DBTIMESTAMP2 또는 DT_FILETIME
SetDateTimeOffset DT_DBTIMESTAMPOFFSET
SetDecimal DT_CY, DT_DECIMAL또는 DT_NUMERIC
SetDouble DT_R8
SetGuid DT_GUID
SetInt16 DT_I2
SetInt32 DT_I4
SetInt64 DT_I8
SetNull DT_NULL
SetSByte DT_I1
SetSingle DT_R4
SetString DT_STR 또는 DT_WSTR
SetTime DT_DBTIME 또는 DT_DBTIME2
SetUInt16 DT_UI2
SetUInt32 DT_UI4
SetUInt64 DT_UI8

데이터 흐름에서 데이터 형식 매핑

변환을 통해 원본에서 대상으로 데이터를 이동하는 동안 데이터 흐름 구성 요소에서 DataType 열거형에 정의된 SQL Server Integration Services 형식과 System 네임스페이스에 정의된 Microsoft .NET Framework의 관리형 데이터 형식 간에 데이터 형식을 변환해야 하는 경우가 종종 있습니다. 또한 구성 요소에서는 하나의 Integration Services 데이터 형식을 다른 형식으로 변환한 후에만 관리되는 형식으로 변환할 수 있는 경우가 있습니다.

참고

기본적으로 C:\Program Files\Microsoft SQL Server\130\DTS\MappingFiles에 설치되는 XML 형식의 매핑 파일은 이 항목에서 설명하는 데이터 형식 매핑과는 관련이 없습니다. 이러한 파일은 예를 들어 SQL Server의 데이터 형식을 Oracle의 데이터 형식에 매핑하는 경우와 같이 한 데이터베이스 버전 또는 시스템의 데이터 형식을 다른 데이터 형식에 매핑하며, SQL Server 가져오기 및 내보내기 마법사에서만 사용됩니다. 이러한 매핑 파일에 대한 자세한 내용은 SQL Server 가져오기 및 내보내기 마법사를 참조하세요.

Integration Services와 관리되는 데이터 형식 간의 매핑

BufferTypeToDataRecordTypeDataRecordTypeToBufferType 메서드는 Integration Services 데이터 형식을 관리되는 데이터 형식에 매핑합니다.

주의

개발자는 PipelineComponent 클래스의 이러한 메서드를 신중히 사용해야 하며, 사용자 지정 구성 요소의 고유한 요구 사항에 보다 적합한 데이터 형식 매핑 메서드를 직접 코딩할 수도 있습니다. 기존 메서드는 전체 자릿수 또는 소수 자릿수나 데이터 형식 자체와 밀접하게 관련된 그 밖의 속성을 고려하지 않습니다. Microsoft는 이후 버전의 Integration Services에서 이러한 메서드를 수정 또는 제거하거나 이러한 메서드가 수행하는 매핑을 수정할 수 있습니다.

다음 표에서는 BufferTypeToDataRecordTypeDataRecordTypeToBufferType 메서드가 다양한 Integration Services 데이터 형식을 관리되는 데이터 형식에 매핑하는 방식을 보여 줍니다.

Integration Services 데이터 형식 매핑 대상(관리되는 데이터 형식)
DT_WSTR System.String
DT_BYTES System.Byte의 배열
DT_DBTIMESTAMP System.DateTime
DT_DBTIMESTAMP2 System.DateTime
DT_DBTIMESTAMPOFFSET System.DateTimeOffset
DT_DBDATE System.DateTime
DT_DBTIME System.TimeSpan
DT_DBTIME2 System.TimeSpan
DT_DATE System.DateTime
DT_FILETIME System.DateTime
DT_NUMERIC System.Decimal
DT_GUID System.Guid
DT_I1 System.SByte
DT_I2 System.Int16
DT_I4 System.Int32
DT_I8 System.Int64
DT_BOOL System.Boolean
DT_R4 System.Single
DT_R8 System.Double
DT_UI1 System.Byte
DT_UI2 System.UInt16
DT_UI4 System.UInt32
DT_UI8 System.UInt64

관리되는 데이터 형식에 맞게 Integration Services 데이터 형식 매핑

데이터 흐름 구성 요소에서는 한 Integration Services 데이터 형식을 다른 데이터 형식으로 변환한 후에만 해당 형식을 관리되는 형식으로 변환할 수 있는 경우도 종종 있습니다. ConvertBufferDataTypeToFitManaged 메서드 클래스는 Integration Services 데이터 형식을 다른 Integration Services 데이터 형식에 매핑한 다음 BufferTypeToDataRecordType 메서드를 사용하여 관리되는 데이터 형식에 매핑할 수 있습니다.

주의

개발자는 PipelineComponent 클래스의 이러한 메서드를 신중히 사용해야 하며, 사용자 지정 구성 요소의 고유한 요구 사항에 보다 적합한 데이터 형식 매핑 메서드를 직접 코딩할 수도 있습니다. 기존 메서드는 전체 자릿수 또는 소수 자릿수나 데이터 형식 자체와 밀접하게 관련된 그 밖의 속성을 고려하지 않습니다. Microsoft는 이후 버전의 Integration Services에서 이러한 메서드를 수정 또는 제거하거나 이러한 메서드가 수행하는 매핑을 수정할 수 있습니다.

다음 표에서는 ConvertBufferDataTypeToFitManaged 메서드가 Integration Services 데이터 형식을 다른 Integration Services 데이터 형식에 매핑하는 방법을 나열합니다.

원본 Integration Services 데이터 형식 매핑 대상(Integration Services 데이터 형식)
DT_DECIMAL DT_NUMERIC
DT_CY DT_NUMERIC
DT_DATE DT_DBTIMESTAMP
DT_DBDATE DT_DBTIMESTAMP
DT_FILETIME DT_DBTIMESTAMP
DT_DBTIMESTAMP2 DT_DBTIMESTAMP
DT_DBTIME DT_DBTIME2
DT_BOOL DT_I4
DT_TEXT DT_WSTR
DT_NTEXT DT_WSTR
DT_STR DT_WSTR
DT_IMAGE DT_BYTES

참고

ConvertBufferDataTypeToFitManaged 메서드는 DT_DBTIMESTAMPOFFSET 데이터 형식에 대한 값은 반환하지 않으며 이때 UnsupportedBufferDataTypeException이 발생됩니다. 따라서 DT_DBTIMESTAMPOFFSET 데이터 형식은 관리되는 데이터 형식에 매핑할 수 있는 Integration Services 날짜/시간 데이터 형식 중 하나로 변환해야 합니다. 관리되는 데이터 형식에 매핑할 수 있는 Integration Services 날짜/시간 데이터 형식의 목록은 앞부분의 "Integration Services와 관리되는 데이터 형식 간의 매핑" 섹션에 나오는 표를 참조하세요. 데이터 형식 변환에 대한 자세한 내용은 Integration Services 데이터 형식을 참조하세요.

참고 항목

BufferTypeToDataRecordType
DataRecordTypeToBufferType
ConvertBufferDataTypeToFitManaged
Integration Services 데이터 형식