1、示例描述
公司业务人员在对“产品销售数据”收集整理时,发现存在以下问题:
- 订单表数据未更新:由于公司疫情调整,华南、华东地区的仓库暂停发货;原华南订单由华北发货,华东订单由华中发货。
- 订单明细表未去重:在订单明细表中,发现有部分数据重复,将会影响分析结果。
- 数据未排序:为了能直观分析相关业务数据,订单表需按“运费字段”进行降序排序;订单明细表按“销售量字段”进行升序排序。
为了更好地解决上述问题,将通过自助ETL对订单表、订单明细表进行数据预处理!
2、入口及界面
Smartbi侧边栏点击数据准备,打开数据准备界面后选择自助ETL,即可开始新建:
入口 | ETL界面 |
---|---|
3、选择数据源(输入)
(1)数据源下,分别拖入关系数据源节点至画布区
(2)对关系数据源进行配置:参数中,数据源选择“wiki_test",表选择”订单表“,列选择全部字段;属性中,节点别名改为”订单表“。
(3)对另一关系数据源进行配置:参数中,数据源选择“wiki_test",表选择”订单明细表“,列不选择”产品编号“字段;属性中,节点别名改为”订单明细表“。
(4)配置完成后,右键节点,分别执行两节点及查看输出结果
执行入口 | 执行效果 | |
---|---|---|
查看输出入口 | 输出效果 | |
订单表 | 订单明细表 | |
4、数据预处理
接下来按照示例描述,对订单表节点进行”值替换“、”降序“和”增加序列号“处理;对订单明细表进行”去除重复值“、”升序“和”增加序列号“处理。
订单表
- 值替换
(1)拖入”值替换“节点,”订单表“节点下方圆圈,拖出连接线与其连接
(2)对节点进行条件配置:
- 添加配置1:选择字段:区域,处理方式为:值替换,原值为:华南,新值为:华北;
- 添加配置2:选择字段:区域,处理方式为:值替换,原值为:华东,新值为:华中;
(3)配置完成后,右键节点,执行节点及查看输出结果
执行入口 | 执行效果 |
---|---|
查看输出入口 | 输出效果 |
- 降序
(1)拖入”排序“节点,”值替换“节点下方圆圈,拖出连接线与其连接
(2)对节点进行条件配置:字段选择“运费”,排序方式选择“desc”;
(3)右键节点,执行节点及查看输出结果
执行入口 | 执行效果 |
---|---|
查看输出入口 | 输出效果 |
- 增加序列号
(1)拖入”增加序列号“节点,”排序“节点下方圆圈,拖出连接线与其连接
(2)右键节点,执行节点及查看输出结果
执行入口 | 执行效果 |
---|---|
查看输出入口 | 输出效果 |
订单明细表
- 去除重复值
(1)拖入”去除重复值“节点,”订单明细表“节点下方圆圈,拖出连接线与其连接
(2)选择列:”订单编号“进行去重处理
(3)右键节点,执行节点及查看输出结果
执行入口 | 执行效果 |
---|---|
查看输出入口 | 输出效果 |
- 升序
(1)拖入”排序“节点,”去除重复值“节点下方圆圈,拖出连接线与其连接
(2)对节点进行条件配置:字段选择“数量”,排序方式选择“asc”;
(3)右键节点,执行节点及查看输出结果
执行入口 | 执行效果 |
---|---|
查看输出入口 | 输出效果 |
- 增加序列号
(1)拖入”增加序列号“节点,”排序“节点下方圆圈,拖出连接线与其连接
(2)右键节点,执行节点及查看输出结果
执行入口 | 执行效果 |
---|---|
查看输出入口 | 输出效果 |
5、选择目标源(输出)
- 订单表
(1)拖入”关系目标表(追加)“节点,”增加序列号“节点下方圆圈,拖出连接线与其连接
(2)对节点进行配置:数据源选择:wiki_test;表选择新建表,表名为:orders_pretreatment。
点击创建表,创建成功后弹出窗口“orders_pretreatment表创建成功”
(3)右键节点,执行节点及查看输出结果
执行入口 | 执行效果 |
---|---|
查看输出入口 | 输出效果 |
- 订单明细表
订单明细表选择目标源,重复上述订单表(1)-(3)步的操作,新建表名为:orderdetails_pre;执行及输出结果如下所示:
执行效果 | 输出效果 |
---|---|
6、查看结果
(1)对本次ETL处理进行保存,名称为:wiki_demo
(2)返回数据源wiki_test的表列表,可看到成功处理后的表:orders_pretreatment、orderdetails_pre
至此,关于产品系列数据的预处理已完成,接下来您可以基于处理好的数据,进入到业务主题、数据模型的创建阶段
7、资源参考
(1)上述快速进行ETL预处理的示例资源,可参考快速创建自助ETL.xml
(2)若您想深入了解自助ETL相关内容,可参考以下文档:
- 自助ETL详情可参考:自助ETL
- 自助ETL更多示例可参考自助ETL-应用示例