1. 概述
1.1 版本
FineBI 版本 | 功能变更 |
---|---|
6.0 | - |
1.2 应用场景
用户处在以下场景时:
某 DW 层表存在多个指标(如销售额、营业收入、营业成本、毛利),针对各产品,需要单独看各指标分析结果。
数仓建设场景下,在客户业务库设计不合理时,比如业务表将月份1、2、3作为三个字段存储。
此时可通过 ETL 做列转行计算。
1.3 功能简介
可以对输入的二维表进行列转行操作,输出一维表。
2. 功能介绍
「行列转换」算子,可实现列转行功能。界面如下图所示:
2.1 转换配置界面
「转换配置」界面具体设置项介绍如下表所示:
设置项 | 介绍 |
---|---|
转换种类 | 目前只支持列转行功能;行转列功能敬请期待 |
属性字段名称 | 列转行时,指定此属性字段名称,对所选择的需要列转行的多个字段名,进行归类描述。要求:
|
取值字段名称 | 列转行时,指定取值字段名称,将所选择的需要列转行的字段值放入该列。字段名称要求与「属性字段名称」要求相同 |
转换字段设置 | 点击「选择转换字段」,指定可编辑列表中「转换字段」列和「新建行值」列。如下图所示: 「新建行值」列可编辑、删除 |
2.2 数据预览界面
「转换配置」界面设置好之后,点击「数据预览」Tab,可预览列转行后的数据。如下图所示:
3. 示例
3.1 场景模拟
用户「成绩」表数据如下图所示:
示例数据下载:成绩.xls
希望表数据按照科目、分数展示。如下图所示:
3.2 创建任务
创建一个 ETL 任务,将一个「数据转换」节点拖到设计界面。如下图所示:
3.3 设置数据输入
点击「数据转换」节点,将一个「DB表输入」算子拖到数据转换的设计界面,如下图设置数据来源,SQL 语句取出「成绩」表中所有数据。如下图所示:
3.4 设置行列转换
再将一个「行列转换」算子拖到设计界面,并使用线条跟它的上游「DB表输入」算子相连。
点击「行列转换」算子对它进行设置。如下图所示:
3.5 设置DB表输出
再将一个「DB表输出」算子拖到设计界面,并使用线条跟它的上游「行列转换」算子相连。
点击「DB表输出」算子对它进行设置。如下图所示:
3.6 运行任务
1)点击右上角「确定」按钮。如下图所示:
2)点击右上角「保存并运行」,日志有执行成功信息表示任务成功运行。如下图所示:
可以看到数据库 etlwendy 中新增了一张表 hanglie,为列转行后数据。如下图所示:
4. 注意事项
列转行时,列值有NULL或空字符串。如下图所示:
列转行后,对应取值字段的值输出NULL。如下图所示: