kettle实例(获取企业打卡数据并将数据⼊库)
ETL.kettle初学者实例(获取企业打卡数据并将数据⼊库)
Kettle简介
实例流程简介
本⽂是针对刚接触ETL及Kettle使⽤的新⼿所分享的实例,⽂中⼏乎涉及⼤部分常⽤的组件,原则上尽量多⽤组件,少写js代码,让kettle功能最⼤发挥。
kettle的安装启动就不多赘述了,结合需求与⾃⾝能⼒,整个实例的流程是这样的:
1. 从数据库中取出⼈员信息;
2. 处理⼈员信息;
3. 获取⼈员打卡信息;
4. 将打卡信息⼊库;
流程图如下:
从数据库中取出⼈员信息
⼈员信息也可以从企业开发端接⼝获取,但这⾥把⼈员信息事先都放在数据库⾥了,这样更加⽅便获取,且能减少接⼝的频繁调⽤。
⾸先新建转换"连接数据库",为了从数据库取⼈员信息
表输⼊,连接数据库,并查出⼈员信息并放⼊结果
集,⽅便之后获取。可以在js代码组件中直接获取上⼀结果的数据
处理⼈员信息
根据企业对请求数据的格式和数据量限制(⼀次最多100⼈)的要求,对刚才结果集的数据进⾏处理,把获取到的⼈员id拼接为数组,并设置变量i,j做之后整百循环的控制变量,把它们全部放⼊环境变量。
Rows();获取结果集数据;
parent_job.setVariable(" “, );添加环境变量;
Variable(” ");获取环境变量;
获取⼈员打卡信息
创建循环体转换⽂件“拉取打卡数据”,如果都写js⼤可不必这么复杂,但为了学习使⽤kettle我们尽量多⽤组件,少写js代码,让kettle功能最⼤发挥。
红⾊箭头为获取打卡数据,黄⾊和绿⾊的功能是为⼈员匹配上他们的部门信息。黄⾊和绿⾊根据需求和实际情况可有可⽆,其逻辑和代码也与左边⼤致相同,就不多赘述了。
取我们之前设置的循环变量
从企业获取数据,第⼀步即获取access_token(前四个组件),在"⽣成记录"中填好将要发送请求的url,并填好corpsecret和corpid 参数。
发送请求,获得json格式的result,即access_token。
得到access_token,我们才能发送其他的请求,将其他url中的ACCSEE_TOKEN替换成真正的access_token,绿⾊箭头步骤即可以相同⽅式获取到数据。
代码转换接下来,进⾏数据组装,由于kettle的组件中没有数组类型,使⽤attrs.split(",")将⼈员字符串分割成数组取前100个⼈,根据企业的要求以json格式发送post请求即可获取到打卡数据。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论