列转行帮助文档

列转行步骤是将流中“关键字段”的列,以“分组字段”分组、“关键字值”匹配,然后将值以行的方式展示在目标字段再次输出到流中的过程,步骤配置信息如图1所示。

                           列转行帮助文档

 

                                                                                图1 步骤配置信息

 

下文详细解释各控件的含义:

1、转换步骤名称:步骤的名称,在单一转换中,名称必须唯一。

2、关键字段:指定列转行的字段。

3.构成分组的字段:填写输入步骤中的字段名,并根据该字段值进行分组,最后转换为行输出到流中。:该字段为空时,以“关键字值”为条件,匹配输入步骤中符合该条件的最后一个值转换为行输出到流中。

4.目标字段

(1)目标字段:为转换后的数据行定义一个别名,用来存储转换后的数据。:当“目标字段”输入相同名称时,会自动生成副本字段名;如:存在两个“目标字段”名为code,则转换后的数据行名称就为:code与code_1。

(2)数据字段:选择输入步骤中的字段并将此字段值,在“目标字段”中展示。

(3)关键字值:根据“关键字段”设置该值,对输入步骤中存在该值的所有数据整合为单独一列输出到流中。

(4)类型:指定字段类型:字符串、日期、数字、布尔值、整数、BigNumber、可序列化或二进制。

(5)格式化:格式化字符串时需要。例如需要格式化日期与时间,那么可以用yyyy-MM-dd'T'HH:mm:ss.XXX,注意其中单引号限定部分。如果需要在日期格式中使用原始字母,那么必须用单引号限定,否则将当成表达式解析。:需与类型关联使用。

(6)长度:对于数字:数字的有效长度;对于字符串:字符串的总长度;对于日期:字符串的打印输出长度(例如,输入4只会返回年份)。

(7)精度:对于数字:小数位数。

(8)货币类型:货币符号,主要用在财务场景,一般放在货币金额数字的前缀或者后缀。例如人民币一般用的¥,美元一般用$,欧元一般用€。该控件对于步骤本身不产生影响,只是对该字段的货币类型进行备注。

(9)精度:应叫“小数点符号”更为合理,在字符型转小数型(BigNumber)时,识别字符串中的小数点。如字符串“123,456.789”和“123456.789”转BigNumber型时,设置十进制为“.”,则能转变为123456.789。有意思的是这里除了能识别“.”,还能适配其他字符,如“,”、“|”、“_”、甚至字母“a”都可以。只要字符被替换成“.”之后整个字符串是符合数字格式的就行。注意不管设置多长的字符串,这里始终只取第一个字符作为小数点符号。

(10)分组:在字符型转小数型(BigNumber)时,识别字符串中的分隔符(常见的千位分隔符)。如字符串“6,123,456.789”转BigNumber型时,设置分组为“,”,则能转变为6123456.789。有意思的是这里除了能识别“,”,还能适配其他字符,如“.”、“|”、“_”、甚至字母“a”都可以。只要字符被转换后整个字符串是符合数字格式的就行。另外分组可以结合小数点符号做一些更有意思的事情,如有一个字符串如“123.456,789”,将小数点符号设为“,”,将分组设为“.”,可转换为“123,456.789”。

(11)如果为空:字段中指定要匹配的字符串。当字段值与指定字符串匹配时,字段值设置为空。

(12)聚合:针对“关键字值”的聚合操作。注:只有在经过分组后,“关键字值”存在重复数据,才会生效

接下来通过实例再次进行说明:

输入行集结构:

                                                        列转行帮助文档

 

                                                                                图2 输入表结构

列转行设置:

                             列转行帮助文档

 

                                                                                    图3 步骤设置

输出行集结构:

                                                            列转行帮助文档

 

                                                                                图4 输出结构和数据

通过上例:根据“分组字段”no对数据进行分组,再对“关键字段”中的“关键字值”语文、数学、英语进行筛选,将筛选后的数据以行的形式输出到流中。

 

文章原创首发于:https://ckettle.ccsaii.com.cn/help/StepPluginType/Denormaliser?s=****

更多CKettle内容,欢迎点击上述链接学习。