kettle8.1转换-转换组件介绍_第1页
kettle8.1转换-转换组件介绍_第2页
kettle8.1转换-转换组件介绍_第3页
kettle8.1转换-转换组件介绍_第4页
kettle8.1转换-转换组件介绍_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

kettle8.1转换-转换组件介绍1.值映射组件(ValueMapper)流中某个字段的值根据映射关系映射成新的字段值或替换原有字段的值。 表1值映射组件属性说明属性项属性说明使用的字段名流中的字段,作为源字段目标字段名若不添加字段名则在原有字段上修改,若添加字段名则将映射的值添加到新字段名中,保留原有字段。空表示为重写。不匹配时的默认值根据映射关系若没有匹配上则赋默认值。字段值映射设置源字段与目标字段之间的映射关系设置列表。源值源字段值。目标值对应源字段值,要映射成的目标值。2.列拆分为多行组件(SplitFieldToRows)从流中一条记录中选择某个字段,根据指定标识符将一个字段的值拆分为多个值,并将每个被拆分的值作为一个新的字段与原记录合并产生多条新的记录。进行拆分的源字段必须是字符串字段。表2列拆分为多行组件属性说明属性项属性说明要拆分的字段流中的某个字段。分隔符默认值“;”。分隔符是一个正则表达正则表达式作为分隔符。新字段名拆分后的字段名称。附加字段在新生成的记录中加入行号字段信息。输出中包括行号设置输出流中输出的记录行号,同时需要设置新行号字段名称,用来记录行号。对接收到的每一行重置行号将组件接收到的每一行都重置行号,值赋给新行号字段名称。3.列转行(DeNormaliser)此组件可以完成合并记录的功能,把多条记录合并成一条记录,改变数据表的结构,将某些在源表中不同记录的同一个字段的值(这些值不相同),将它们变成目的表中不同的字段。【注释】:列转行组件中,记录要首先用指定关键字排序。表3列转行组件属性说明属性项属性说明关键字段根据此字段不同的值,设置输出流的新字段,输出流的各个新字段通过目标字段列表来设置。分组字段设置用于合并成一条记录的分组字段。分组字段通常用输入流中已经过排序的主键作为分组字段。【获取字段】点击【获取字段】按钮,可以获取输入流中的全部字段,进一步在字段列表中选择分组字段。目标字段设置设置新记录的目标字段:源记录同一字段根据不同关键字段值,形成多个字段值的目标字段设置。目标字段通过多个记录的“关键字段”的不同取值,指定新的字段名称,如果存在主键值冲突(在指定的组中,关键字不是唯一的),可以指定聚合策略。对接收到的每一行重置行号将组件接收到的每一行都重置行号,值赋给新行号字段名称。数据字段指定源输入流中的某个字段,根据关键字段的不同取值,此字段的值将会被作为不同的新字段的值。关键字值指定关键字不同的值的标准。类型新字段对应的类型。格式按照格式输出数据,格式的优先级高于长度和精度,如果设置格式,则长度和精度的设置无效。长度设置数值类型的数据长度。精度设置带小数位的数值类型的数据精度,在长度大于0时才能生效。货币符号设置货币符号。千位分隔符设置千位分隔符。置空条件当某关键字段对应的新字段值为此值时,将其设置为空。聚合当分组字段存在主键冲突时,(在指定的组中,关键字不是唯一的),可以指定聚合策略。【获取查询字段】点击【获取查询字段】按钮,可以在字段名和类型两列,获取到输入流中获取到全部字段名及类型,再进一步设置字段名和类型。4.裁剪字符串(StringCut)从流中获取某个字段,根据该字段的值下标裁剪字符串。表4裁剪字符串组件属性说明属性项属性说明要裁剪的字段对字段值进行剪切操作并输出至新字段中(字符串类型)。输入流字段流中字段。输出流字段剪切之后的字段名。剪切开始位置字符串下标开始位置(下标最小可以从0开始)。剪切结束位置字符串下标结束位置。5.去除重复记录(UniqueRows)删除输入流中的重复记录,需要先排序才能正确的执行。如果有多条重复记录,则此组件会保留第一条记录。表5去除重复记录组件属性说明属性项属性说明设置输出中增加计数器是否在输出流中增加计数器。包含计数器的字段名计数器字段名称。重定向重复记录将重复行处理为错误,并将行重定向到步骤的错误流。需要为此步骤设置错误处理。错误描述设置在检测到重复行时显示的错误处理描述。仅在选中“重定向重复行”时可用。在错误处理流程中设置“错误描述列名”,用于描述重定向的记录。用来比较的字段用来作为记录是否重复的比较字段设置。名称指定要强制去除重复记录的字段名称。大小写敏感比较重复记录时,当前字段是否大小写敏感。【获取】点击【获取】按钮,获取输入流中所有字段。重定向重复记录以及错误描述配置如下(右键单击红叉即可进入配置对话框):注释:选项描述错误处理组件名出现错误的组件名称,也就是错误处理的源组件。目标组件处理错误的组件名称,也就是错误处理的目标组件。启用错误处理是否启用错误处理机制。错误数字段名在后面组件的输入流中增加一个字段,此字段保存出错的数量,值默认为1。错误描述字段名在后面组件的输入流中增加一个字段,此字段保存错误描述。错误字段的字段名在后面组件的输入流中增加一个字段,此字段保存出错字段的名称,比较字段若为多个,自动用逗号隔开。错误编码字段名在后面组件的输入流中增加一个字段,此字段保存错误编码。去除重复记录组件的值默认为UNR001,意为UniqueRows001;唯一行(哈希值)组件的值默认为UNRH001,意为UniqueRowsByHashSet001。允许最大错误数设定一个允许的最大错误记录数,如果错误的记录数超过此数,则流程报错,流程停止,而不会继续进行流程处理。允许最大错误百分比设定一个允许的最大错误百分比,如果错误的记录数的百分比超过此数,则流程报错,流程停止,而不会继续进行流程处理。在计算百分比前最少读入的行数设定一个最少读入行数,记录数超过次数后,才开始进行错误百分比的统计。结果如下:6.合并字段(ConcatFields)合并字段组件用于将多个字段连接到一个目标字段。这些字段可以通过分隔符分隔,并且封闭符逻辑与“文本文件输出”步骤完全兼容。表6合并字段组件属性说明属性项属性说明选项目标字段名称目标字段的名称(字符串类型)。目标字段的长度字符串类型的长度(设置String类型的元数据,快速数据转储选项也使用它来进行性能优化)。分隔符指定在单行文本中分隔字段的字符。通常这是;

或标签。封闭符一对字符串可以包含一些字段。这允许字段中的分隔符。封闭符字符串是可选的。字段选项卡名称该字段的名称。类型字段的类型可以是String,Date或Number。格式要转换的格式掩码。有关格式符号的完整说明,请参见数字格式。长度长度选项取决于字段类型如下:数字-数字中有效数字的总数String-字符串的总长度日期-字符串打印输出的长度(例如4只返回年份)精度precision选项取决于字段类型,如下所示:Number-浮点数字符串-未使用日期-未使用货币用于表示$10,000.00或E5.000,00等货币的符号小数小数点组分组符号修剪类型应用于字符串的修剪方法。修剪仅在没有给定字段长度时有效。空值如果该字段的值为null,则将此字符串替换获取字段单击以从输入字段流中检索字段列表最小宽度更改字段选项卡中的选项,使文本文件中生成的行宽度最小。因此,不是保存0000001,而是写1,等等。字符串字段将不再填充到指定的长度。高级选项卡删除所选字段选中此选项可从输出流中删除所有选定的字段。强制在字段周围加封闭符?此选项强制所有字段名称都包含在上面封闭符属性中指定的字符。禁用封闭符修复?这是出于向后兼容性原因(自版本4.1起)与封闭符和分隔符相关。从版本4.1开始的逻辑是:当字符串字段包含一个封闭符时,它会被封闭,并且封闭本身会被转义。当字符串字段包含分隔符时,它将被封闭。如果不需要此逻辑,请选中此选项。由于扫描字符串的封闭符和分隔符,因此还会产生额外的性能负担。因此,当您确定不需要这样的逻辑,因为您的字符串中没有这些字符并且您想要提高性能时,请取消选中此选项。头部如果需要标题行,请启用此选项。(流中的第一行)。注意:生成此行时,所有其他输出流字段都设置为Null。尾部如果需要页脚行,请启用此选项。(流中的最后一行)。注意:生成此行时,所有其他输出流字段都设置为Null。编码指定要使用的字符串编码。留空以使用系统上的默认编码。要使用Unicode,请指定UTF-8或UTF-16。首次使用时,Spoon将在您的系统中搜索可用的编码。注意:当您使用唯一编码将不同的编码字段连接到目标字段时,尤其需要这样做。由于延迟转换,这也适用于二进制存储的字符串字段。字段右填充在字段末尾添加空格(或删除末尾的字符),直到它们具有指定的长度。快速数据转储(无格式化)通过不包括任何格式信息来连接大量数据时提高性能。请考虑将“目标字段长度”选项设置为目标字段长度的近似最大值。这样可以提高性能,因为内部缓冲区将被分配,并且在不足时不需要重新分配。

注意:当“目标字段长度”选项为“0”时,内部缓冲区大小计算为连接字段数的50倍,例如,默认情况下,5个字段使用250的内部缓冲区。分拆每...行如果此数字N大于零,则将得到的流分成N行的多个部分。注意:仅当使用页眉/页脚与文本文件输出步骤的结果兼容时才需要此选项。添加文件的结尾行允许您为输出流指定备用结束行。注意:生成此行时,所有其他输出流字段都设置为Null。7.唯一行(哈希值)(UniqueRowsByHashSet)使用HashSet去除输入流中的重复记录,可以指定重复的字段。如果有多条重复记录,则此组件会保留第一条记录。重复记录重定向的配置与去除重复记录组件一致,可参考5.去除重复记录。表7重复记录去除组件(哈希)属性说明属性项属性说明设置使用存储的行值进行比较这个选项选中的话,是把所有行的哈希值都存到内存,然后新来一条数据计算哈希,然后判断是否重复。例:"Aa"和"BB"哈希值相等,内容却不同。重定向重复记录将重复行处理为错误,并将行重定向到步骤的错误流。需要为此步骤设置错误处理。错误描述设置在检测到重复行时显示的错误处理描述。仅在选中“重定向重复行”时可用。在错误处理流程中设置“错误描述列名”,用于描述重定向的记录。用来比较的字段用来作为记录是否重复的比较字段设置。字段名称指定要强制去除重复记录的字段名称。【获取】点击【获取】按钮,获取输入流中所有字段。8.增加常量(Constant)向流中增加一个常量。表8增加常量组件属性说明属性项属性说明字段(表格说明)对增加的常量字段进行字段名及字段值具体设置的列表。名称字段的名称。类型字段的类型。格式按照格式输出数据,格式的优先级高于长度和精度,如果设置格式,则长度和精度的设置无效。长度设置数值类型的数据长度。精度设置带小数位的数值类型的数据精度,在长度大于0时才能生效。货币符号设置货币符号。小数点符号设置小数点符号。千位分隔符设置千位分隔符。值增加的常量字段值。设为空串设置此字段为空字符串。9.增加序列(AddSequence)向流中增加一个序列。序列是一个不断变化的的一个特定的起始和增量值的整数值。用户可以使用一个数据库(如Oracle)序列确定序列值,或者由转换计数器生成。表9增加序列组件属性说明属性项属性说明值的名称添加到流中的新序列的值的名称。使用数据库来生成序列使用DB获取sequence是否用数据库序列驱动(如:使用oracle数据库的序列来生成序列)。数据库连接设置序列来自哪个数库连接。模式名称数据库模式名。sequence名称数据库序列名称。使用转换计数器来生成序列 序列由计数器自动生成。 使用计数器来计算序列是否使用计数器自动生成序列。计数器名称(可选)序列名称。初始值序列初始值。递增值序列递增值。最大值序列最大值(超过最大值后,序列会重新从初始值开始计数)。10.增加校验和(CheckSum)此步骤计算输入流中一个或多个字段的校验和,并将其作为新字段添加到输出中。表10增加校验和组件属性说明属性项属性说明类型需要计算的校验和类型。结果类型

某些校验和类型允许设置不同的结果类型:String,Hexadecimal和Binary结果字段

包含校验和的结果字段的名称。OldChecksumBehaviourMode是否将所有字段都当作字符串来计算处理校验和。校验和中使用的字段要包含在校验和计算中的字段的名称。

注意:您可以使用“获取字段”按钮插入先前步骤中的所有输入字段。11.字段选择(SelectValues)这个组件用来选择、重命名、更改数据类型和配置精度。分成三种操作:选择并修改:指定字段在输出记录中被放置的确切的顺序和名称。移除:指定要从输出记录中移除的字段。元数据:更改一个或多个字段的名称、类型、长度和精度(元数据)表11字段选择组件属性说明属性项属性说明字段名称源字段名称。改名成源字段要重新命名成的字段名称。长度字段长度设置。精度字段精度设置。【获取选择的字段】获取所有输入流来的字段,显示在名称列。【编辑映射】打开映射对话框,在源字段和目标字段之间定义多重映射。包含按名称排序未指定的字段隐式的选择其他包含在输入流中但没被选中的字段。移除要移除哪些字段的设置选项卡。名称要移除的字段名称。【获取移除的字段】点击【获取移除的字段】按钮,获取所有源字段名称列表,显示在名称列。元数据(表格说明)对新元数据进行设置的选项卡。字段名称源字段名称。改名成源字段要重新命名成的字段名称。类型字段类型。长度设置数值类型的数据长度。精度设置带小数位的数值类型的数据精度,在长度大于0时才能生效。转换二进制从二进制类型转换为正常类型时,需要将此选项设置为“是”。格式按照格式输出数据,格式的优先级高于长度和精度,如果设置格式,则长度和精度的设置无效。日期格式宽松日期格式宽松。DateFormatlenient日期区域设置日期区域设置。时区时区。数字转换宽松数字转换宽松。字符编码字段编码方式。小数点小数点符号。分组分组符号。货币货币类型。(1)关于“DateFormatlenient”的说明:【注释】:日期格式的月设置为15时,自动计算为3月。(2)类型为Number时,对应默认各种可选格式的说明:Number下的格式各种格式说明#,##0.###12345.67(12,345.67)0.0012345.678(12345.68)000000000000012345.67(0000000012346)#.#12345.678(12345.7)#12345.67(12346)###,###,###.#12345.555(12,345.6)#######.###12345.555(12345.555)#####.###%12345.555(1234555.5%)自定义格式自定义格式效果##,###.###%12345.555(1,234,555.5%)【注释】:当格式中包含分组符号时,才可以通过设置“分组符号”替换格式中的分组符号。12.字符串操作(StringOperations)将操作(例如修剪,填充等)应用于字符串值。表12字符串操作组件属性说明属性项属性说明需要操作的字段指定要转换的字段。输出字段指定要创建的字段的名称。Trim类型指定修剪类型:无,左,右或两者。大小写指定大小写。填充类型指定左或右填充或无。填充字符指定填充字符。填充长度设置填充字符的长度。会循环添加‘填充字符’,直至符合‘填充长度’INITCAP单词首字母大写。优先级大于‘大小写’。如:iamfine!IAmFine!编解码方式定义为EscapeXML或UnescapeXML,UnescapeHTML及EscapeHTML,useCDATA及EscapeSQL。其中对XML及HTML的操作是进行转义及反转义;EscapeSQL能够有效的防止sql注入;useCDATA会把xml当成文本存储。防止xss攻击/sql注入等问题。数字操作提供了only和remove。如果选择remove,会删除字符串中的数字;如果选择only,只保留字符串中的数字。删除特殊字符指定要删除的特殊字符(空格/回车等)。注:1.目的转换字段必须存在; 2.padding的字符串会覆盖trim操作(即trim不生效)3.表输出—》表输入,目的字段在原表中不存在。13.字符串替换(ReplaceString)字符串替换是一个简单的搜索和替换。它也支持正则表达式。表13字符串替换组件属性说明属性项属性说明输入流字段源字段名称。输出字段指定要创建的字段的名称。使用正则表达式替换规则:是否使用正则表达式。搜索替换规则:可以设置为正则表达式或字符串。替换值用来替换源字段值的新值。设置为空串字符串替换为空。优先级高于‘替换值’和‘字段替换’字段替换使用哪个字段来替换源字段,优先级高于‘替换值’。整个单词匹配替换规则:是否匹配完整源字段大小写敏感替换规则:搜索源字段内容时,大小写是否敏感。ISUNICODE能够使用预定义的字符类和POSIX字符类,兼容Unicode正则表达式。【注释】:此组件只能获取到类型为String的字段。14.将字段值设置为常量(SetValueConstant)设置字段的值为常量。属性项属性说明在常量中使用变量是否在常量中包含变量的值。字段(表格说明)要设置常量的字段和对应值的设置列表。字段设置值的字段。替换的值设置的值,可以包含变量名,如“数量${number}”。格式(转换掩码)对于日期类型时,字符串的值转换为日期类型时的格式字符串。设为空串设置此字段值为空。表14设置常量组件属性说明15.拆分字段(FieldSplitter)使用分隔符拆分字段。表15列拆分为多列组件属性说明属性项属性说明需要拆分的字段需要拆分的字段的名称。分隔符要拆分的字段所使用的分隔符,默认”,”。封闭符拆分之后的值如果不包含该enclosure,则该字段无效,即不做任何处理。如果包含该enclosure,且为基数,则设置为null,如果为偶数,则保留原值。字段列表(表格说明)新字段名称按分隔符拆分后的新字段名。ID设置字段的唯一标识。(该标识应设置为以拆分后字段值的第一个数字或字符开始的1个或多个数字或字符);字段值拆分后是否是以该ID为起始值的,如果是,则保留保留源字段值,如果不是,则设为null;移除ID是否在输出时移除字段的ID。可选项:Y和N。(选择Y时,输出的拆分后的字段值会去除ID使用的1个或多个数字或字符);前提是以ID开始,“移除ID”才生效。若为Y,则会截取ID以后的值作为该字段真实值。类型新字段类型。长度设置数值类型的数据长度。精度设置带小数位的数值类型的数据精度,在长度大于0时才能生效。格式按照格式输出数据,格式的优先级高于长度和精度,如果设置格式,则长度和精度的设置无效。分组符号分组符号。小数点符号设置小数点符号。货币符号设置货币符号。置空条件如果字段的值等于置空条件中设置的值,则将此值设置为空,不区分大小写。缺省值当前字段超过分隔符分隔的字段个数时,当前新字段的缺省值,比如分隔符可以分隔出三个字段,而字段列表中设置了四个新字段,那么第四个新字段的值由缺省给出,否则为空。去除空格方式针对新字段设置去除空格类型,可选项:“不去掉空格”、“去掉左空格”、“去掉右空格”和“去掉左右两端空格”。16.排序记录(SortRows)根据指定关键字排序记录。【注释】:排序记录时需要使用临时文件。表16记录排序组件属性说明属性项属性说明排序目录临时文件储存的目录,缺省目录是系统存放临时文件的目录。排序缓存大小内存中存储的记录越多,排序速度越快。当记录数超出排序缓存大小,将会将记录写入临时文件,每个文件的记录个数与排序缓存大小相同,所以如果排序缓存过小,在排序时可能会同时打开多个临时文件。空闲内存阈值设置可用空闲内存大小。当排序算法发现可用的空闲内存少于设定值,将把数据写到磁盘上。该值仅为粗略参考值,其优先级高于‘排序缓存大小’。压缩临时文件为完成排序,在排序时是否压缩使用到的临时文件。仅传递非重复记录只把唯一的记录传递到输出流中。仅校验关键字段【获取字段】点击【获取字段】按钮,获取流中的所有字段,并显示在字段列表。名称要排序的字段名称。升序排序原则:升序或降序。如果选择升序,排序顺序将是:数字>英文>汉字,汉字是按照拼音排序的,也同样会按照声调排序。如果是多音字,只会取一个读音,无法根据语境判断其的读音。区分大小写排序时,字段值是否大小写敏感。Sortbasedoncurrentlocale基于当前区的排序。应为是否使用‘collatorstrength’(未使用)collatorstrength排序器强度(未使用)Presorted预排序。设计思路:除读取的第一条记录不排序外,其余每两条记录排序并输出。整个过程中使用内存排序(buffer中一直存有两条记录)。排序算法流程图: 17.数值范围(NumberRange)指定一个数值字段的范围。表17数值范围组件属性说明属性项属性说明输入字段输入流中的源字段名。输出字段数值范围定界后的新字段名。缺省值如果没有匹配到范围,赋缺省值。范围(表格说明)最小值数值下界设置。最大值数值上界设置。字段值对于满足最大值与最小值范围的值,给定描述值,该值作为输出字段的值。18.获取serverID(GetSlaveSequence)此步骤从您选择的从属服务器获取唯一ID。该步骤通过向从服务器询问一系列值来工作。换句话说,该步骤为某个给定的中央从属服务器序列保留一系列ID。然后它增加1直到该范围内没有更多值,询问另一个范围,依此类推。这意味着返回的ID可以是顺序的,但这不能保证。您唯一知道的是,每次执行每个输入行后,您将获得一个唯一ID,其值高于返回的最后一个ID。返回的最后一个值+范围(增量)的大小存储在数据库表中,以便在多次转换运行中保留该值。

表18获取serverID组件属性说明属性项属性说明值的名称(整数类型)输出字段的名称(序列或ID)。Slaver服务器从服务器获取唯一ID范围。这可以使用变量指定。序列名称从服务器上定义的序列名称(见下文)。可以使用变量指定序列名称。增量或批大小从从属服务器获取新值(范围)之前生成的ID数。增量大小越高,步骤运行得越快。但是,它会更快耗尽可用ID(1x10^15)。例如,如果您将1,000,000,000作为增量,则可以保留1,000,000倍的ID范围。如果每次转换运行时只使用其中一些ID,那么在1M执行后无论如何都会耗尽ID。不要使这个值太高;

使用此步骤,将其保持在1000-10000范围内,以实现超过100,000行/秒的速度。可以使用变量指定此参数。例子:按照如下方式配置slave-config.xmlSequence表sql:19.行扁平化(Flattener)行扁平化 表19行扁平化组件属性说明属性项属性说明需要扁平化的字段选择字段。目标字段字段展平的目标字段的名称。 算法思路:将被扁平化的字段放置最后,按顺序读取行记录,最终生成的一条记录,是由n(扁平后字段个数)条原纪录合并而成,取前n条记录的被扁平字段值,依次合并而成。在表输入的情况下,默认读取的数据按照主键排序。 20.行转列(RowNormaliser)此组件可以完成合并记录的功能,把多条记录合并成一条记录,改变数据表的结构,将某些在源表中不同记录的同一个字段的值(这些值不相同),将它们变成目的表中不同的字段。【注释】:行转列组件中,记录要首先用指定关键字排序。表20行转列组件属性说明属性项属性说明TYPEFIELD类型字段的名称(上例中的产品)。输出字段数值范围定界后的新字段名。字段表要标准化的字段列表;

您必须为每个选定的字段设置以下属性:Fieldname:要规范化的字段的名称(示例中的产品A?C)。类型:给字符串分类字段(在我们的示例中为A,B或C)。新字段:您可以提供一个或多个要转移新值的字段(在我们的示例中为sales)。步骤名称步骤的名称;

此名称必须在单个转换中是唯一的。获取字段单击以检索流中的所有字段的列表。21.计算器(Calculator)计算器组件提供了可以在输入字段的值上执行的预定义函数的功能。除了参数(字段A,字段B和字段C),以还应指定函数的返回值的类型。你也可以选

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论