说在前面
- 操作系统:win10
- kettle版本:8.3
- 数据集:Soda
场景
- 存在表order内容如下:
需要将单个订单中的所有商品放在同一行中。
当前实现思路
- 方案一:分组排序后列转行
- 其他方案:应该有更快捷的实现,当前没找到
具体操作
-
方案一
- 整体结构
- CSV文件输入
- 字段选择
因为我们只需要订单号以及商品名;
- 排序记录
在使用分组前需要进行排序
- 分组
结果预览(emmm,商品序号那个字段请忽视)
- 根据字段值来改变序列
当订单号的值更改后会重新从1开始计数
结果预览(emmm,商品序号那个字段请忽视)
result为序号
- 字段选择
- 列转行
转换关系见下面的表格
结果预览
- 字段选择
- 文本文件输出
- 结果
- 转换关系
- 整体结构
分组字段 | 关键字段 | 数据字段 |
---|---|---|
订单号1 | 关键值1 | 数据值1 |
订单号1 | 关键值2 | 数据值2 |
订单号1 | 关键值3 | 数据值3 |
订单号2 | 关键值2 | 数据值4 |
订单号2 | 关键值3 | 数据值5 |
分组字段 | 关键值1 | 关键值2 | 关键值3 |
---|---|---|---|
订单号1 | 数据值1 | 数据值2 | 数据值3 |
订单号2 | 数据值4 | 数据值2 |