历史版本2 :使用条件分析获取优秀员工信息 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

1.1 应用场景

我们每月定期对员工销量总和进行计算,若销量总和大于 500,则筛选出销售量大于平均值的员工信息,写入优秀员工信息表,进行表扬嘉奖,若销量总和小于 500 则筛选出销售量小于平均值的员工信息,写入需要进步员工信息表,区域负责人和对应同学进行沟通,辅助成长。

1.2 实现思路

  • 使用参数赋值节点获取员工销量总和,并传递给参数。

  • 使用条件分支节点判断参数值,若参数值大于等于 500,控制执行A下游节点,若参数值小于 500,控制执行 B 下游节点。

2. 示例编辑

2.1 准备数据

1)数据库中新建一张表,使用sql脚本节点,创建员工销量统计表,主键是id,如下图所示:

drop TABLE sales;
CREATE TABLE  IF NOT EXISTS `sales` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) DEFAULT NULL,
  `sales` varchar(255) DEFAULT NULL,
  `city` varchar(255) DEFAULT NULL,
  `prov` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=29 DEFAULT CHARSET=utf8;
ALTER TABLE   sales AUTO_INCREMENT=1;
INSERT INTO `sales` VALUES (null, '张飞云', 45,'苏州','江苏');
INSERT INTO `sales` VALUES (null, '李亮', 50,'无锡','江苏');
INSERT INTO `sales` VALUES (null, '王大林', 70,'常州','江苏');
INSERT INTO `sales` VALUES (null, '刘再清', 30,'无锡','江苏');
INSERT INTO `sales` VALUES (null, '曹子云', 80,'苏州','江苏');
INSERT INTO `sales` VALUES (null, '张强', 60,'常州','江苏');
INSERT INTO `sales` VALUES (null, '王小明', 40,'无锡','江苏');
INSERT INTO `sales` VALUES (null, '陈俊', 100,'常州','江苏');
INSERT INTO `sales` VALUES (null, '周旭', 50,'南京','江苏');
INSERT INTO `sales` VALUES (null, '柳一', 75,'南京','江苏');


2.2 整体流程

实现上述场景的 ETL 整体流程如下:

2.3 实现步骤

首先按照上图把节点拖到设计界面,给这些节点重命名,并将节点连接起来。

创建员工销量表和为员工销量表插入数据,2 个节点操作已经在 2.1准备数据 中进行了介绍,这里从第三个节点“获取所有员工的销量总和”开始介绍。

2.3.1 获取所有员工的销量总和

使用参数赋值节点,获取所有员工的销量总和,并赋值给sales参数。

2.3.2 判断销量总和是否大于500

使用条件分支节点,控制若销量大于等于 500,执行下游节点“销量大于平均值的员工信息入库”,若销量小于 500,则执行下游节点“销量小于平均值的员工信息入库”

2.3.3 销量大于平均值的员工信息入库

使用离线同步节点,获取销量大于的员工信息,写入优秀员工表

2.3.4 销量小于平均值的员工信息入库

使用离线同步节点,获取销量小于的员工信息,写入需进步员工表。

2.4 效果查看

因为销量总和 sales 参数值是 600,所以执行“销量大于平均值的员工信息入库”分支,所以“销量小于平均值的员工信息入库”分支被跳过。