# 转换组件
本章节详细说明输出组件的功能及属性,具体如下:
- 字段选择
- 增加常量
- Switch/Case
- 字符串替换
- 增加序列
- 字符串截取
- 去除重复记录
- 排序记录
- 排序合并
- 值映射
- 计算器
- 拆分字段
- 列拆分为多行
- 运行SSH命令
- 数据脱敏
- 设置字段值
- 列转行
- 行扁平化
# 字段选择
功能介绍:字段选择可以对字段增删改,也可以修改字段名称、数据类型
使用场景:从输入流中选择部分字段,修改字段名称、类型,并将选择的字段输出到下游组件,当字段比较多时,可以用来做过滤和修改操作
图标:
组件界面:
参数说明:
参数 | 说明 |
---|---|
节点名称 | 当前创建的节点名称,由用户自定义且不可为空。命名可包含字母、数字、下划线 |
字段名称 | 从前置步骤输出流中选择字段名称 |
改成名 | 字段改名后的目标名称,如果不希望改名,那么为空 |
类型 | 字段的数据类型 |
格式 | 指定字段需要格式化类型 |
长度 | 字段长度 |
精度 | 数字类型字段的浮点数的精确位数 |
# 增加常量
功能介绍:增加常量用于在转换模型中增加常量值
使用场景:往输出流中增加常量字段
图标:
组件界面:
参数说明:
参数 | 说明 |
---|---|
节点名称 | 当前创建的节点名称,由用户自定义且不可为空。命名可包含字母、数字、下划线 |
名称 | 从前置步骤输出流中选择字段名称 |
类型 | 字段的数据类型 |
格式 | 指定字段需要格式化类型 |
长度 | 字段长度 |
精度 | 数字类型字段的浮点数的精确位数 |
值 | 表示增加常量字段的值。默认值为空 |
是否空串 | 表示是否设为空字符串。默认值为空 |
# Switch/Case
功能介绍:Switch/Case用于进行条件判断,让数据流从一路到多路
使用场景:下游连接多个组件,根据条件判断,下游执行操作的组件
图标:
组件界面:
参数说明:
参数 | 说明 |
节点名称 | 当前创建的节点名称,由用户自定义且不可为空。命名可包含字母、数字、下划线。 |
Switch字段 | 从前置步骤输出流获取字段,将该字段作为条件字段 |
使用字符串包含比较 | 是,Switch字段值使用contains对Case值进行判断 否,Switch字段值与Case值使用equals进行判断 |
Case值数据类型 | 指定Case值数据类型,保证Switch值类型与Case值一致 |
Case值转换掩码 | 指定Case值掩码,保证Switch值格式与Case值一致 |
Case值小数点符号 | 指定数字类型Case值精度,保证Switch值精度与Case值一致 |
case值分组标志 | 指定数字类型Case值分组标志,保证Switch值与Case值一致 |
默认目标步骤 | 转换中任何与Case值不匹配的Case行都被发送到此目标步骤 |
字段 | Case值:Case值 |
目标步骤:Case值匹配上,转换将进行Case值对应步骤 |
# 字符串替换
功能介绍:字符串替换用于根据正则表达式或者直接将其他字段的值(前提是字符串类型的)替换掉目标字段中的值
使用场景:替换上游组件输出字段值
图标:
组件界面:
参数说明:
参数 | 说明 |
---|---|
节点名称 | 当前创建的节点名称,由用户自定义且不可为空。命名可包含字母、数字、下划线。 |
输入流字段 | 前置步骤输出流字段,指定要替换的字段名称 |
输出流字段 | 指定要输出到流中替换后新字段名称 |
是否Regex | 指定是否要使用正则表达式匹配值 |
搜索 | 指定要被替换的值 |
使用此值替换 | 值匹配上后,使用该值替换 |
使用字段值替换 | 从前置步骤输出流中指定字段,值匹配上后,使用该字段值对输入流字段指定字段值进行替换 |
是否空串 | 是:使用空串替换,否:替换值为空时,使用NULL值替换 |
是否单词匹配 | 是否替换匹配值的整个单词 |
是否大小写敏感 | 搜索值是否区分大小写 |
是否Unicode | 搜索值是否为Unicode字符序列 |
# 增加序列
功能介绍:增加序列用于给输入流中的数据增加一个自增主键字段
使用场景:输出流中增加一个自增字段
图标:
组件界面:
参数说明:
参数 | 说明 |
---|---|
节点名称 | 当前创建的节点名称,由用户自定义且不可为空。命名可包含字母、数字、下划线。 |
值的名称 | 在输出流中添加序列字段名称 |
计数器名称 | 当转换中的多个步骤生成相同的值名称,则需指定要关联的计数器的名称 |
起始值 | 序列起始值 |
增长值 | 序列每次改变步长 |
最大值 | 序列递增或递减边界,当达到最值后,序列从起始值开始重新计数 |
# 字符串截取
功能介绍:字符串截取用于在字符串中,去除多余的内容,保留需要的内容。例如:在“Hello,World!”字符串中,只保留“Hello”,而去除其余部分
使用场景:从输入流中选择字段,根据指定值进行截取,并将截取后值,放到新字段中,输出到输出流
图标:
组件界面:
参数说明:
参数 | 说明 |
---|---|
节点名称 | 当前创建的节点名称,由用户自定义且不可为空。命名可包含字母、数字、下划线。 |
输入流字段 | 前置步骤输出流字段,指定要剪切的字段名称 |
输出流字段 | 指定要输出到流中剪切后的新字段名称 |
起始位置 | 表示剪切的起始位置,位置从0开始计算,默认值为空 |
结束位置 | 表示结束对字符串剪切的位置,默认值为空 |
# 去除重复记录
功能介绍:去除重复记录用于将数据流中的数据进行字段比较,从而去掉重复值的过程。去除重复记录的前提是需要将数据流中的数据进行排序,然后再进行去重操作。
使用场景:从输入流中获取字段值,进行去重操作,在使用此组件之前需对表数据进行排序,可以在前置组件例如表输入中进行 order by。
图标:
组件界面:
参数说明:
参数 | 说明 |
节点名称 | 当前创建的节点名称,由用户自定义且不可为空。命名可包含字母、数字、下划线。 |
计数器字段名称 | 对重复记录计数的计数器字段名称 |
错误描述 | 输出到错误流中,对出现重复记录现象的内容描述 |
字段 | 字段名称:从前置步骤输出流中,获取用来比较的字段 |
忽略大小写:比较字段是否区分大小写 |
# 排序记录
功能介绍:排序记录用于对字段进行排序,一般都是配合“去除重复记录”和“数据连接”使用
使用场景:可以根据指定的字段对所有记录进行排序,可按升序或者降序
图标:
组件界面:
参数说明:
参数 | 说明 |
节点名称 | 当前创建的节点名称,由用户自定义且不可为空。命名可包含字母、数字、下划线。 |
临时文件存储目录 | 排序时存放临时文件的目录 |
临时文件前缀 | 临时文件前缀名称 |
缓存记录数 | 存放在内存的记录数,存储在内存中的记录越多,生成临时文件越少,排序过程就越快 |
未使用内存阈值(%) | 未使用内存的百分比限值。排序时,如果发现可用的空闲内存少于指定的数字,系统将会将数据写到新的临时文件 |
压缩临时文件 | 是否压缩该临时文件 |
只传递非重复的记录 | 是否仅向输出流传递唯一的记录 |
字段 | 字段名称:从前置步骤输出流中指定排序的字段名称,可用多个字段进行组合排序 |
是否升序:指定字段排序方式 | |
是否大小写敏感:指定的排序时是否区分大小写 | |
是否使用当前区域:是否使用Collator排序器 | |
校对器强度:指定Collator排序器强度 | |
预排序:是否进行预排序 |
# 排序合并
功能介绍:排序合并用于合并来自多个输入步骤的行,只要这些行在给定的关键字段上进行了排序
使用场景:接收多个输入流,根据指定字段对合并后的输入流进行排序
图标:
组件界面:
参数说明:
参数 | 说明 |
---|---|
节点名称 | 当前创建的节点名称,由用户自定义且不可为空。命名可包含字母、数字、下划线。 |
字段 | 从前置步骤输出流中,指定排序字段 |
升序 | 指定字段排序方式 |
# 值映射
功能介绍:值映射用于将字符串值从一个值映射到另一个值。
使用场景:将字符串值映射到另一个值,并将新值放到新字段中或者覆盖源字段,通常可以解决存储在数据库中字段值表示形式不同的问题。
图标:
组件界面:
参数说明:
参数 | 说明 |
节点名称 | 当前创建的节点名称,由用户自定义且不可为空。命名可包含字母、数字、下划线。 |
使用的字段名 | 源字段 |
目标字段名 | 指定生成新值时新字段名称,当为空,将源字段值覆盖 |
不匹配时的默认值 | 当源值不匹配时,使用该值 |
字段 | 源值:需要映射源字段值 |
目标值:映射成功后,需替换的值 |
# 计算器
功能介绍:计算器用于进行字段值的计算。计算器提供了预定义的函数,可以对输入字段值执行这些函数。是常用于计算的自定义JavaScript的一种简单快捷的替代方法。使用时需要指定要执行和返回结果的输入字段和函数类型。
使用场景:选择计算公式,对字段值进行计算
图标:
组件界面:
参数说明:
参数 | 说明 |
节点名称 | 当前创建的节点名称,由用户自定义且不可为空。命名可包含字母、数字、下划线。 |
文件不存在时抛异常 | 是否当字段A, B, C中提供文件不存在时,抛异常。该选项针对如CRC-32类即(计算公式名称带file名称)需要提供file计算公式使用 |
字段 | 新字段名称:指定存储计算结果的字段名称 |
计算公式:选择需要使用的计算公式 | |
字段A, B, C:从输入流中选择需要进行计算的字段名称,也可选择设置的新字段名称,也可以设置为常量,用于Set field to constant A这一计算类型给新字段赋值 | |
值类型:为新字段指定字段类型 | |
长度:对于数字:数字的有效长度;对于字符串:字符串的总长度;对于日期:字符串的打印输出长度(例如,输入4只会返回年份) | |
精确度:对于数字:小数位数 | |
是否移除:下拉框选择是否要移除新字段,如果选择移除则新字段不会出现在输出流当中 | |
字段格式:格式化字符串时需要 | |
小数点符号:在字符型转小数型时,识别字符串中的小数点 | |
分组符号:在字符型转小数型时,识别字符串中的分隔符(例如常见的千位分隔符) | |
货币符号:指定货币符号 |
# 拆分字段
功能介绍:拆分字段用于将指定的分隔符将字段拆分为多个字段
使用场景:从输入流中指定字段,该字段值将更具指定分隔符,拆分为多个字段
图标:
组件界面:
参数说明:
参数 | 说明 |
节点名称 | 当前创建的节点名称,由用户自定义且不可为空。命名可包含字母、数字、下划线。 |
需要拆分的字段名 | 指定要拆分字段的名称 |
分隔符 | 指定字段分隔符。特殊字符(如CHAR ASCII HEX01)可以用$[value]格式设置,如$[01]或$[6F,FF,00,1F]。默认值为“,”英文逗号 |
忽略括号内的分隔符 | 忽略括号内的分隔符 |
字段 | 新字段名称:拆分出的新的字段名称 |
新字段ID:拆分出新字段的ID编号 | |
是否移除ID:是否要移除该编号的的字段 | |
类型:字段的数据类型 | |
长度:字段长度 | |
精度:数字类型字段的浮点数的精确位数 | |
格式:字段转换掩码 | |
分组符号:在字符型转小数型时,识别字符串中的分隔符(例如常见的千位分隔符) | |
小数点符号:在字符型转小数型时,识别字符串中的小数点 | |
货币符号:指定货币符号 | |
Nullif名称:该字段不为空时,新字段数据与改字段指定值相等,且缺省值不为空时,使用缺省值;当新字段数据与改字段指定值相等,且缺省值为空时,使用NULL值,对于字符串类型需根据kettle-variables.xml中KETTLE_EMPTY_STRING_DIFFERS_FROM_NULL值而定的,该值为Y时,使用空字符串,N时使用NULL值 | |
缺省值:新字段数据与Nullif值相等,且缺省值不为空时,使用缺省值 | |
去除空格选择:指定去除拆分后新字段中空格位置 |
# 列拆分为多行
功能介绍:列拆分为多行用于将指定列通过分隔符拆开,转成多行
使用场景:从输入流中指定字段,该字段值将更具指定分隔符,拆分为多行
图标:
组件界面:
参数说明:
参数 | 说明 |
---|---|
节点名称 | 当前创建的节点名称,由用户自定义且不可为空。命名可包含字母、数字、下划线。 |
需要拆分的字段名 | 从前置步骤输出流中,指定需要拆分字段名 |
分隔符 | 指定字段分隔符。特殊字符(如CHAR ASCII HEX01)可以用$[value]格式设置,如$[01]或$[6F,FF,00,1F]。默认值为“,”英文逗号 |
分隔符是正则表达式 | 是否使用正则进行拆分,当分隔符为正则时使用 |
新字段名称 | 拆分后值字段名称 |
输出的行号字段名称 | 在输出流中输出拆分后每行数据行号 |
重置行号 | 是否重置行号。重置每行数据行号。例如:该行拆分字段数据为aa;bb,使用;进行拆分,那么输出行号为1,2,在处理下一行数据时,行号会重新从1开始计算 |
# 运行SSH命令
功能介绍:通过ssh,连接服务器,执行命令,获取结果
使用场景:通过ssh,连接服务器,执行命令,获取结果
图标:
组件界面:
参数说明:
参数 | 说明 |
---|---|
节点名称 | 当前创建的节点名称,由用户自定义且不可为空。命名可包含字母、数字、下划线。 |
IP/服务器地址 | 需要连接服务器地址 |
端口 | 需要连接服务器端口 |
超时时间(秒) | ssh连接超时 |
用户名 | 需要连接服务器用户名 |
密码 | 需要连接服务器密码 |
是否使用密钥 | 需要连接服务器是否需要使用密钥 |
密钥文件地址 | 需要连接服务器密钥文件地址 |
口令 | 需要连接服务器密钥口令 |
代理主机 | 需要连接服务器时使用代理主机地址 |
代理端口 | 需要连接服务器时使用代理主机端口 |
代理用户名 | 需要连接服务器时使用代理主机用户名 |
代理密码 | 需要连接服务器时使用代理主机密码 |
响应字段名 | 指定包含返回成功结果输出流字段 |
错误响应字段名 | 指定包含返回错误结果输出流字段 |
是否从字段获取命令 | 是否从前置步骤输出流中获取包含执行命令字段名称 |
命令字段名 | 从前置步骤输出流中指定包含执行命令字段名称 |
命令输入 | 需要执行命令 |
# 数据脱敏
功能介绍:数据脱敏用于根据元数据系统采集某表字段信息,对此表抽取的数据中的某些列字段内容,进行数据脱敏
使用场景:选择脱敏算法,对选择的字段值进行处理
图标:
组件界面:
参数说明:
参数 | 说明 |
节点名称 | 当前创建的节点名称,由用户自定义且不可为空。命名可包含字母、数字、下划线。 |
选择算法 | 选择脱敏算法 |
整体算法(OVERALL_CONFIGURATION) | 字符参数:脱敏字段值中需要脱敏的数据段 |
替换字符:替换类算法,使用该值替换脱敏字段值中指定数据段 | |
字段 | 脱敏字段:从前置步骤输出流中选择需要脱敏的字段 |
脱敏算法:选择指定脱敏算法,OVERALL_CONFIGURATION使用整体算法配置 | |
字符参数:脱敏字段值中需要脱敏的数据段 | |
日期格式:指定日期类型数据段掩码 |
# 设置字段值
功能介绍:设置字段值多行用于将一个字段的值替换为另一个字段的值
使用场景:从输入流中获取字段,并将该字段值替换为指定值
图标:
组件界面:
参数说明:
参数 | 说明 |
---|---|
节点名称 | 当前创建的节点名称,由用户自定义且不可为空。命名可包含字母、数字、下划线。 |
字段名称 | 从前置步骤输出流中,指定需要被替换字段名 |
替换值来源字段 | 从前置步骤输出流中,指定需要替换字段名 |
# 列转行
功能介绍:用于将表格中的的列数据转换输出为行数据。
使用场景:
原始数据:
转换:
结果:
图标:
组件界面:
参数说明:
参数 | 说明 |
节点名称 | 当前创建的节点名称,由用户自定义且不可为空。命名可包含字母、数字、下划线。 |
关键字段 | 转置列 |
分组字段 | 分组列 |
目标字段 | 目标字段:选择作为新生成列的最终输出列名 |
数据字段:新生成列值对应字段 | |
关键字值:关键字对应列名,生成新列按这个值进行划分 | |
类型:字段的数据类型 | |
格式:字段转换掩码 | |
长度:字段长度 | |
精度:数字类型字段的浮点数的精确位数 |
# 行扁平化
功能介绍:行扁平化允许您平面化顺序提供的数据。当您有一个按连续行组织的文件,其中每行是一个属性,并且您希望将这些行数据结构化为列时,请使用此组件。前置需接排序记录组件。
使用场景:
原始数据:
转换:
结果:
图标:
组件界面:
参数说明:
参数 | 说明 |
---|---|
节点名称 | 当前创建的节点名称,由用户自定义且不可为空。命名可包含字母、数字、下划线。 |
需要扁平化的字段 | 前置步骤输出流字段,指定要扁平化的字段 |
字段名称 | 指定生成新列名称 |