Работа с типами данных в потоке данных
Область применения: среда выполнения интеграции SSIS SQL Server в Фабрика данных Azure
При разработке пользовательского компонента потока данных в службах Integration Services постоянно идет работа с типами данных: копирование данных в буферы потока и из буферов потока, а также преобразование значений. Сведения в этом разделе помогают выбрать верные типы данных служб Integration Services и использовать правильные методы работы с ними.
Вставка данных в поток данных
Класс PipelineBuffer предоставляет ряд методов Set для копирования данных в столбцы буфера и соответствующий ряд методов Get для получения данных из столбцов буферов. В следующей таблице показано, какие методы используются с соответствующим типом данных служб Integration Services.
Использование методов Set с различными типами данных
В следующей таблице в первом столбце приведен список типов данных с соответствующими методами Set и Get.
Типы данных для использования с методами Set
Сопоставление типов данных в потоке данных
При перемещении данных из источников в место назначения путем их преобразования компонент потока данных иногда должен преобразовывать типы данных в типы данных служб Integration Services SQL Server, определенные в перечислении DataType, и в типы управляемых данных Microsoft .NET Framework, определенные в пространстве имен System. Кроме того, компонент иногда должен преобразовывать один тип данных служб Integration Services в другой перед преобразованием в тип управляемых данных.
Примечание.
Файлы сопоставления в XML-формате, установленные по умолчанию в папку C:\Program Files\Microsoft SQL Server\130\DTS\MappingFiles, не связаны с сопоставлением типов данных в этом разделе. Эти файлы сопоставляют типы данных одной версии базы данных или системы с другой (например, типы данных SQL Server и Oracle), и используются только мастером импорта и экспорта SQL Server. Дополнительные сведения об этих файлах сопоставления см. в разделе Мастер импорта и экспорта SQL Server.
Сопоставление типов данных служб Integration Services и управляемых типов данных
Методы BufferTypeToDataRecordType и DataRecordTypeToBufferType сопоставляют типы данных служб Integration Services с типами управляемых данных.
Внимание
Разработчикам следует соблюдать осторожность при использовании методов класса PipelineComponent: может оказаться более удобным написать собственные методы сопоставления типов данных, более подходящие для специальных задач разрабатываемых ими компонентов. В существующих методах не учитывается числовая точность и масштаб, а также другие свойства, тесно связанные с типом данных. В следующей версии служб Integration Services корпорация Microsoft может изменить или удалить эти методы, или изменить эти процедуры сопоставления.
В следующей таблице представлены сопоставления различных типов данных служб Integration Services с типами управляемых данных с помощью методов BufferTypeToDataRecordType и DataRecordTypeToBufferType.
Тип данных служб 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: может оказаться более удобным написать собственные методы сопоставления типов данных, более подходящие для специальных задач разрабатываемых ими компонентов. В существующих методах не учитывается числовая точность и масштаб, а также другие свойства, тесно связанные с типом данных. В следующей версии служб Integration Services корпорация Microsoft может изменить или удалить эти методы, или изменить эти процедуры сопоставления.
В следующей таблице объясняется использование метода 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
Кері байланыс
https://aka.ms/ContentUserFeedback.
Жақында қолжетімді болады: 2024 жыл бойы біз GitHub Issues жүйесін мазмұнға арналған кері байланыс механизмі ретінде біртіндеп қолданыстан шығарамыз және оны жаңа кері байланыс жүйесімен ауыстырамыз. Қосымша ақпаратты мұнда қараңыз:Жіберу және пікірді көру