ETL.kettle初学者实例(获取企业微信打卡数据并将数据入库)

  • Kettle简介
  • 实例流程简介
    • 从数据库中取出人员信息
    • 处理人员信息
    • 获取人员打卡信息
    • 将打卡信息入库
  • 总结

Kettle简介

Kettle是一个Java编写的ETL工具,可以简化数据仓库的创建,更新和维护,使用Kettle可以构建一套开源的ETL解决方案。
官方社区https://community.hitachivantara.com/community/products-and-solutions/pentaho

实例流程简介

本文是针对刚接触ETL及Kettle使用的新手所分享的实例,文中几乎涉及大部分常用的组件,原则上尽量多用组件,少写js代码,让kettle功能最大发挥。
kettle的安装启动就不多赘述了,结合需求与自身能力,整个实例的流程是这样的:

  1. 从数据库中取出人员信息;
  2. 处理人员信息;
  3. 获取人员打卡信息;
  4. 将打卡信息入库;

流程图如下:

从数据库中取出人员信息

人员信息也可以从企业微信开发端接口获取,但这里把人员信息事先都放在数据库里了,这样更加方便获取,且能减少接口的频繁调用。

首先新建转换"连接数据库",为了从数据库取人员信息
表输入,连接数据库,并查出人员信息并放入结果集,方便之后获取。可以在js代码组件中直接获取上一结果的数据

处理人员信息

根据企业微信对请求数据的格式和数据量限制(一次最多100人)的要求,对刚才结果集的数据进行处理,把获取到的人员id拼接为数组,并设置变量i,j做之后整百循环的控制变量,把它们全部放入环境变量。
previous_result.getRows();获取结果集数据;
parent_job.setVariable(" “, );添加环境变量;
parent_job.getVariable(” ");获取环境变量;

获取人员打卡信息

创建循环体转换文件“拉取打卡数据”,如果都写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请求即可获取到打卡数据。

将打卡信息入库

处理获取到的数据,使用 createRowCopy 函数创建一个新行,放入数据。对json数据的处理网上有很多例子,写的很详细。
最后过滤数据,排序,再使用"记录集连接"通过id和右边查到的部门信息连接起来,并插入数据库。
必须要排序之后才能合并记录连接数据库,“用来查询的关键字”判断是更新还是插入,目标模式即数据库用户名。
循环条件
整百循环

总结

为减少接口调用,其实还可将获取access_token和获取部门信息拿出循环,这里没有再做。了解并掌握一种etl工具的使用,对于企业或个人解决数据的处理,转换,迁移一类对的问题是非常实用的。希望这个小例子能帮助你熟悉Kettle,并上手使用它。

kettle实例(获取企业微信打卡数据并将数据入库)相关推荐

  1. 利用kettle获取企业微信打卡数据

    利用kettle创建转换,把转换根据顺序执行,生成作业,通过计划任务定时执行作业,把企业微信的打卡记录插入到本地数据库中. 一.先获取打卡应用和通讯录的access_token,由于access_to ...

  2. C#获取企业微信打卡数据

    在涉及到获取第三方数据的时候都会涉及到调用接口,小编为此也是搜索了很长一段时间呢!https://www.cnblogs.com/BOSET/p/7089284.html这是小编参考的一份很完善的C# ...

  3. 企业微信打卡项目技术点总结

    背景 最近接到一个类似钉钉打卡和企业微信打卡的项目.找我们开发的一个主要原因是,他们希望打卡记录能和具体的项目关联起来.后台在进行统计处理.钉钉和企业微信无法满足此功能. 涉及资料 1.企业微信定位功 ...

  4. 企业微信打卡怎么防止作弊?看看其他企业是怎么做的

    上班打卡是大多数上班狗每天都会做的事情,打卡的方式多种多样,越来越多企业通过企业微信进行考勤打卡,员工不用排队,直接在PC端或者手机端就可以进行打卡,高效又快捷. 但是面对新兴的打卡方式,有些企业员工 ...

  5. 小程序获取企业微信二维码,使用联系我插件配置企业微信二维码

    通过配置获取企业微信二维码总共分为五步: 第一步:登录企业微信管理后台,查询企业微信的企业ID(corpid)和Secret(corpsecret); 第二步:获取access_token: 第三步: ...

  6. 获取企业微信access-token

    @Resourceprivate RedisTemplate<String, Object> redisTemplate;/*** 获取access-token*/@GetMapping( ...

  7. 获取企业微信的群组 ID

    获取企业微信的群组 ID 的方法如下: 打开企业微信后台中的 "通讯录". 在 "通讯录" 页面中找到需要添加的群组并进入该群组详情页. 在该群组详情页中找到 ...

  8. 企业微信如何查看员工的使用数据

    企业管理者无法直接了解员工的日常工作情况,但是可以通过查看员工企业微信的使用数据来判断他是否有认真工作. 前言 使用企业微信营销时,企业管理者无法直接了解员工每天的工作情况,但是可以通过一些使用数据来 ...

  9. springboot2.1:获取企业微信的审批数据

    1.我们先是呢要做好开始项目的准备工作 如果你是企业微信管理员可以看到,或者是你弄一个企业号如下:企业ID 同样方法可以在审批找到 有啦这两个可以获取到token 二:我这边创建一个表存获取到的审批相 ...

最新文章

  1. 架构演进之「微服务架构」
  2. Java黑皮书课后题第4章:*4.23(金融应用:酬金)编写一个程序,读取下面信息,然后输出一个酬金声明
  3. 利用string 字符串拷贝
  4. Halcon自定义函数封装方法(全网最详细)
  5. Unity3D学习笔记之五为Prefab添加材质
  6. 【转】DICOM通信 - PDU数据包(1)
  7. python文件流读取二进制_Python使用web.py从POST请求中提取二进制文件
  8. 链接聚合是将一组物理接口_500字描述华为VLAN聚合工作原理 你看懂了吗?
  9. c语言中语句作用,学习C语言的用途~
  10. 【sql那些事】时间处理的一揽子事
  11. python:就喜欢看你看不惯我又干不掉我的样子
  12. clion变量配置_cygwin安装和clion配置
  13. openCV播放视频的程序
  14. LINUX环境变量environ
  15. pip快速下载python包
  16. 26个开发者常用必备网站汇总推荐
  17. 阿里云叔度:一场技术人的自我修行
  18. 逗号表达式与赋值语句
  19. C语言学习经典书籍推荐
  20. 考拉解析网站Android 安卓手机下载视频到手机相册

热门文章

  1. System.InvalidOperationException:Each parameter in the deserialization constructor on type ‘‘ must
  2. 高数下-空间几何(一)-向量
  3. 德云一哥岳云鹏,准备录制河南和东方卫视节目,央视春晚还参加吗
  4. SUPER-VLAN
  5. amigo幸运字符什么意思_QQ有什么魅力?为什么00后都喜欢?细节都在这些“标识”里...
  6. STL的使用和背后数据结构
  7. amazon.设计1. tic tac toe
  8. 冰盾ARP防火墙V1.0 Build 80122
  9. php实现echarts任务关系图,react中使用echarts(人物关系图)
  10. Flutter开发IOS,上架AppStore的全部流程以及常遇到的坑