您的位置:威尼斯官方网站 > 威尼斯官方网站登录 > 威尼斯官方网站:SSIS的数据类型

威尼斯官方网站:SSIS的数据类型

发布时间:2020-01-04 07:04编辑:威尼斯官方网站登录浏览(196)

    在扩充ETL开垦时,数据类型(Data Type)是最根基的,但也轻松被忽视,楼主使用的SQL Server 版本是2011,用此博文记录,常用的SSIS数据类型和TSQL数据类型的照射。SSIS的数据类型,是指多少流组件使用的数据类型和变量的数据类型(Data Flow 和 Variable)。

    当数码踏向Package的data flow task中时,SSIS 通过数据源组件从数据源抽出(extract)数据,获取元数据类型,并转变来SSIS扶植的数据类型,SSIS的数据类型首要分为三类:字符(string),数值(numeric)和日期/时间(date/time),如若源数据相同不能够调换来相应的SSIS 数据类型,SSIS Engine就能够报错。SSIS的数据类型,以“DT_”开头,是Data Type的简写。

    风流浪漫,SSIS 数据流的数据类型和TSQL数据类型的投射

    1,字符类型

    字符类型用于存款和储蓄字符串,在SQL Server中,使用单引号表示一个字符,可是在SSIS中,使用双引号表示二个字符串。

    SSIS的字符类型和TSQL的数据类型的附和关系:

    • DT_STR:对应TSQL的 varchar, char
    • DT_WSTR:对应TSQL的 nchar, nvarchar, xml

    2,数值类型

    数值类型分为整数和小数,SSIS的板寸类型和TSQL数据类型的附和关系:

    • DT_BOOL:bit
    • DT_UI1:tinyint,占用一个字节,非负整数,数值范围是:0-255
    • DT_I2:smallint,占用2个字节,有暗记整数
    • DT_I4:int,占用4个字节,有暗号整数
    • DT_I8:bigint,占用8个字节,有暗记整数
    • DT_BYTES:binary, varbinary, RowVersion

    TSQL的小数数值类型分为两类:正确小数(decimal)和贴近小数(float),小数也叫实数(real),SSIS的小数类型和TSQL数据类型的呼应关系:

    • DT_NUMERIC:准确小数,decimal
    • DT_R4:相同小数,float(24State of Qatar
    • DT_R8:相通小数,float(53卡塔尔(قطر‎

    3,日期时间等级次序

    SSIS的日兔时间等级次序和TSQL数据类型的照管关系:

    • DT_DBDATE:date
    • DT_DBTIME2:time(p)
    • DT_DBTIMESTAMP:datetime
    • DT_DBTIMESTAMP2:datetime2

    SSIS 内置函数:GETDATE(卡塔尔(قطر‎ 和 GETUTCDATE(卡塔尔(قطر‎再次来到值的数据类型是DT_DBTIMESTAMP,对应TSQL的DateTime,由此,只保留3位飞秒。在Expression Builder中,将时刻类型调换来字符串类型,展现的纳秒数有效数值独有3位,末尾补6个0,共9位:

    • (DT_WSTR,30) GETDATE(),Evaluated Value是:2016-10-13 17:04:01.765000000
    • (DT_DBTIMESTAMP2,7) GETDATE(),Evaluated Value是:10/13/2016 5:01:54 PM

    二,SSIS 变量(VariableState of Qatar的数据类型和TSQL数据类型的照射**

    SSIS 变量的数据类型,差异于SSIS的数据类型,但都和SSIS的数据类型相称合,在进展表明式求值时,SSIS自动将变量的数据类型隐式调换成SSIS的数据类型,然后举办求值。

    Variables have a Variant data type and the expression evaluator converts the data type of a variable from a Variant subtype to an Integration Services data type before it evaluates the expression. 

    1,字符数据类型

    字符变量和TSQL数据类型的炫丽关系:

    • String:char,nchar,varchar(n),nvarchar(n)
    • object:varchar(max),nvarchar(max)

    2,数值类型

    数值类型的变量和TSQL数据类型的照耀关系:

    • Boolean:bit
    • Int64:bigint
    • Int32:int
    • Int16:smallint
    • Byte:tinyint
    • object:binary, varbinary(n), varbinary(max)
    • 规范小数:Decimal 在SQL Server 2012以后,对应TSQL的decimal
    • 雷同小数:Single 对应TSQL的float(24),  Double 对应TSQL的float(53)

    3,日期/时间项目

    日期/时间档案的次序的变量和TSQL数据类型的投射关系:

    • DateTime:对应TSQL的datetime
    • Object:对应TSQL的time,date,datetime2

    三,压迫类型调换

    SSIS在开展表明式求值时,自动将叁个数据类型隐式调换到相包容的其余三个数据类型,假诺类型不匹配,务必强迫类型调换,不然,SSIS报错。对数据开展强逼类型转变的格式是:(type) expression,在进展显式类型调换时,尽量利用窄的数据类型,那样能够进步多少传输的速度;可是,数据转变须要交给一定的代价,由此,必得衡量类型调换和数量传输对品质的影响。

    An implicit conversion of a data type occurs when the expression evaluator automatically converts the data from one data type to another. If the data in a column does not require the full width allocated by the source data type, you might want to change the data type of the column. Making each data row as narrow as possible helps optimize performance when transferring data because the narrower each row is, the faster the data is moved from source to destination.

    1,将字符串转变来TSQL的日子/时间等级次序

    在SSIS中,字符串常量使用双引号“”,[] 表示可选:

    • 转换成date:(DT_DBDATE)"yyyy-mm-dd"
    • 转换成time(n):(DT_DBTIME2,n)"hh:mm:ss[.fffffff]"
    • 转换成datetime:(DT_DBTIMESTAMP)"yyyy-mm-dd hh:mm:ss[.fff]"
    • 转换成datetime2(n):(DT_DBTIMESTAMP2,n)"yyyy-mm-dd hh:mm:ss[.fffffff]"

    2,转变到字符串

    字符串分为双字节字符和单字节字符,对于单字节字符,SSIS使用 DT_ST福特Explorer表示,在威迫类型调换时,必需制订code page和字符长度:

    • 将整数5调换为单字节字符:(DT_STR,30,1252)5
    • 将整数5改变为双字节字符:(DT_WSTR,30)5
    • 将 DT_DBTIMESTAMP 类型调换到字符串:(DT_WSTGL450,30卡塔尔(قطر‎GETDATE(卡塔尔(قطر‎,再次回到的数据格式是: 2015-10-13 14:55:31.248000000,GETDATE()再次来到的数据类型是DT_DBTIMESTAMP;

    3,数值类型调换

    • 将字符串转换到bit:(DT_BOOL)"True"
    • 将小数转换来int:(DT_I4) 3.57
    • 将整数转产生准确小数:(DT_NUMERIC,7,3)4000

    四,数据类型调换的质量

    将数据从一个SQL Server 加载到另三个SQL Server以前,倘使须求改动数据类型,提出利用TSQL Conversion,那样,能简化Package的宏图,升高转变速度。

    威尼斯官方网站 1

    五,参数的数据类型

    在Execute SQL Task援用变量时,必需在Parameter Mapping Tab中装置参数的Data Type,请参见《Execute SQL Task 参数和变量的炫酷》

     

    参照文书档案:

    Integration Services (SSIS) Expressions.aspx)

    Cast (SSIS Expression).aspx)

    Integration Services Data Types.aspx)

    SQL Server Integration Services, Data Type Mapping

    Performance Comparison between Data Type Conversion Techniques in SSIS 2008

    本文由威尼斯官方网站发布于威尼斯官方网站登录,转载请注明出处:威尼斯官方网站:SSIS的数据类型

    关键词: