kettle设置数据库连接变量、js脚本设置变量、数据流合并、设置分支等

来源:互联网 发布:wave动作数据mmd 编辑:程序博客网 时间:2024/06/05 11:11

kettle设置数据库连接变量、js脚本设置变量、数据流合并、设置分支等

关于kettle工具的介绍就不赘述了,某百科可以自行查阅。回顾自己当初刚接触这个工具的时候,网上资料虽然众多,但多数都是博客为主,很多博客都是写个【start –》查个表数据】就结束了,浪费了大量时间查找,最终不得要领。后来无奈,只能慢慢查阅“丰富”的官方文档。这篇博客没有深入的原理探讨,只是分享一些自己使用过程中用到的组件功能,希望能帮助一些入门的同学,快速定位解决自己的问题,不足之处,欢迎大家雅正!


需求说明

  • 涉及两个数据库连接A和B,其中A库是用户数据,B库中是业务数据。需要查询A中所有用户在B中是否有相关业务数据,如果有,则不作处理;否则,新增。

表名称说明

  • 涉及的数据表:uc_user用户主表、uc_user_organization非机构用户表、cloud_user_desktop_folder应用文件夹、cloud_user_desktop_app应用表、cloud_app_authorization应用权限表

流程图

  • 总流程图
    这里写图片描述
  • 组件位置

这里写图片描述

  • 设置数据库参数

这里写图片描述
这里写图片描述

  • 子流程(处理非机构用户)
    这里写图片描述

子流程说明【处理非机构用户】

  • 创建临时表
    创建临时表使用的是“执行sql脚本”组件,这里写图片描述
    直接在编辑区写sql语句就好了。

  • 表输入合并数据,筛选字段,使用js脚本处理数据流,插入/更新

这里写图片描述
从左往右,依次说明:两个表输入组件,从不同的库查询数据(直接写sql);通过合并排序组件将两个表输入的数据合并(相当于left join);然后通过switch组件筛选,不同的数据走不同的流程,通过js给数据流中的字段赋值;最后通过插入更新,将处理后的数据插入目标表中。
这里写图片描述

  • 对于从A库查询出数据,作为参数,到B库中查询的情况可以利用“数据库连接”组件这里写图片描述

大致用到的组件就这么多,每个就不单独的一一展开了,spoon中都有相关的说明,一般只要找到组件,知道功能,都比较容易上手使用。
最后,博客不常写,行文组织比较乱,还望围观大佬多包涵。