1. 概述编辑
1.1 版本
FineDataLink 版本 | 功能变动 |
---|---|
3.5 | 「数据转换」节点新增算子「行列转换」,目前支持列转行功能,行转列功能敬请期待 |
4.0.14 | 行转列和「列转行」拆分 |
1.2 应用场景
在使用 FineDataLink 进行 ETL 开发过程中,如果数据是二维表,想要通过列转行,将二维表转化为一维表。
1.3 功能说明
可以对输入的二维表进列转行操作,输出一维表。
「数据转换」节点新增算子「行列转换」,可实现列转行功能,如下图所示:
2. 操作步骤编辑
示例数据下载:成绩.xls
对于二维表:
希望表数据按照科目、分数展示。如下图所示:
2.1 数据输入
创建一个定时任务,将一个「数据转换」节点拖到设计界面。如下图所示:
新建「数据转换」节点,进入编辑界面,新增 DB表输入节点,如下图所示:
取出成绩表中的数据,如下图所示:
点击「数据预览」,即可预览数据,如下图所示:
2.2 列转行
1)新增「列转行」,使用线条跟它的上游「DB表输入」算子相连,设置属性字段为「科目」,也就是希望将语文、数学、英语这些数据归类为「科目」字段,如下图所示:
注:归类的属性字段不允许为空,字符长度<=30字符,只能是字母 (a-z A-Z)、数字 (0-9)、下划线(_)、或中文的组合,不能包含空格,不能与取值字段及原表去除转换字段外的其他字段名重复。
2)列转行时,指定取值字段名称,将所选择的需要列转行的字段值放入该列,示例中将不同「科目」对应的分数值命名为「分数」,如下图所示:
3)点击「选择转换字段」,指定可编辑列表中「转换字段」,也就是指定需要进行列转行的字段,如下图所示:
注:不允许同时选择不同数据类型的字段。
4)可以设置列转行后数据值的名称,如下图所示:
注:「转换字段」不允许为空,不允许重复;「新建行值」限制长度<=200字符,不允许为空。
5)点击「数据预览」,即可看到列转行后的数据,如下图所示:
2.3 输出数据
再将一个「DB表输出」算子拖到设计界面,并使用线条跟它的上游「行列转换」算子相连。
设置将处理好的数据输出至指定的数据库中,如下图所示:
2.4 运行任务
1)点击右上角「保存并运行」,日志有执行成功信息表示任务成功运行。如下图所示:
可以看到数据库中新增了列转行后数据。如下图所示:
3. 注意事项编辑
列转行时,列值有NULL或空字符串。如下图所示:
列转行后,对应取值字段的值输出NULL。如下图所示: