Kettle例子——生成100个随机数,并统计小于等于50和大于50个数

生成 100 个随机数,随机数取值于[0,100)之间, 计算小于等于 50 的随机数个数和 大于50 的随机数个 数;并把这两个统计数字放在数据库表的一行的两列中,即输出的结果有一行,一行包括两列,每列是一个统 计值。

 

  1. 生成随机数[0,100)
    1. Input –> Generate random value (Type: Random number) 生成一个[0,1)的随机数 (f1)
    2. 在Generate random value上右键点击Change Number of Copies to Start…设置100个拷贝数
    3. Transform –> Add constants 添加Integer常量100 (f2)
    4. 添加Transform –> Calculator,用公式A * B 获得随机数[0,100) (f3)
    5. (optional) Output –> Microsoft Excel output,导出生成的100个随机数,以便后面做数据验证
  2. 条件判断
    1. 条件判断:Flow –> Filter rows,条件是f3>50,条件为true的指向分组一,false的指向分组二
    2. 两个分支:Statistics –> Group by 创建两个分组,分组里面计算总条数
      1. Aggregates
        Name: >50count
        Subject:f3
        Type: Number of rows (without fields argument)
      2. Aggregates
        Name: <=50count
        Subject:f3
        Type: Number of rows (without fields argument)
    3. 条件判断后有两个分支,判断前,默认的数据发送模式Data Movement是轮询分发Round-Robin,要保证数据全部都流到两条支路去,条件判断前要用复制分发模式Copy Data to Next Steps(在Calculator上右键点击Data Movement数据发送…)
  3. 关联记录
    1. Join –> Join rows (Cartesian product) 笛卡尔乘积
    2. (optional) Output –> Microsoft Excel output,导出最终结果,跟1.5的数据比对验证

ktr文件下载 百度网盘 提取密码:o5pl

【版权说明:仅允许非商业转载且请注明出处:Mac私塾 网址:http://macsishu.com】

发表评论

邮箱地址不会被公开。