什么是ETL?
ETL,是英文Extract-Transform-Load的缩写,用来描述将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至指定端的过程,ETL的目的是将企业中分散、凌乱、标准不统一的数据整合到一起,为企业的决策提供分析依据。举个现实场景,通常我们的数据库分为当前业务库、备份库、主题库(BI用)。业务库和备份库可能结构相同,只是数据的归档日期不同,主题库则是根据需求将业务库或备份库提取数据且转换成指定格式的数据写入到了主题库。
kettle介绍
kettle是实现ETL的一个工具,kettle支持图形化的GUI界面,操作简单。kettle是使用java编写的,需要在具有java 虚拟机的环境下使用,kettle是免费开源的,同时不需要安装,下载后配置好环境,在文件中找到Spoon.bat执行即可运行(程序启动可能较慢)。
kettle基本使用
前置配置:修改kettle启动程序(spoon.bat),如下图
下载kettle后在kettle目录中找到Spoon.bat,双击运行,kettle可以新建两种不同的文件:transformation(文件格式为ktr)、job(文件格式为kjb),transformation针对数据进行基础转换,job则是完成对整个工作流的控制。
点击文件中的新建可以选择新建transformation文件或者job文件
新建的文件左侧目录树有两个切换对象列表,主对象树是你现在使用的对象,核心对象是可以使用的对象。kettle的所有功能都由这些对象连接组成,使用时将核心对象中需要的对象组件拖至右侧编辑界面即可使用,组件功能与初始名称描述相同。
kettle请求接口数据
相关组件: HTTP post,REST client
REST client中可以设置URL以及HTTP Get或者Post等请求方式。
Body field为要传递的参数,这个参数有前面处理的数据传过来
1新建转换,点击文件菜单——新建——转换,建立新转换
2. 切换到核心对象,选择自定义常量数据(也可以使用其他输入组件获取数据),将组件拖拽至编辑界面。
3. 拖拽至编辑页面后双击打开组件,编辑内容,在元数据TAB页中添加自定义字段名(WebAPI请求的参数名)以及类型等信息。
4. 找到JSON输出组件,拖拽该组件到创建的转换TAB页内,长按前面添加的常量组件,将常量组件连接至JSON输出组件上。
5. 编辑JSON输出组件,点击【操作】选项,选择值为:Output value 。
6. 编辑JSON输出组件,点击【字段】选项,点击下方的【获取字段】按钮获取之前自定义常量数据中设置好的字段信息。
7. 新增查询步骤REST Client,如下图:
8. 双击REST Client步骤配置http请求服务,URL为部署在Web服务器上的站点地址,HTTP Method则不用多说了吧~
9. 保存转换,方便多个作业(JOB)引用~