前置概念

ETL: ETL,是英文Extract-Transform-Load的缩写,用来描述将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至指定端的过程,ETL的目的是将企业中分散、凌乱、标准不统一的数据整合到一起,为企业的决策提供分析依据

kettle介绍

kettle文档:
https://wiki.pentaho.com/display/EAI/Getting+Started

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为调用的接口,
Body field为要传递的参数,这个参数有前面处理的数据传过来,

  1. 新建转换,点击文件菜单——新建——转换,建立新转换


2. 切换到核心对象,选择自定义常量数据(也可以使用其他输入组件获取数据),将组件拖拽至编辑界面

  1. 拖拽至编辑页面后双击打开组件,编辑内容,在元数据中添加自定义字段名,在数据中添加自定义字段值,点击确定关闭组件设置

    4.找到json输出组件,拖拽json输出组件到编辑页面,长按前面的添加常量组件,打开组件基础配置,找到连接组件功能,点击连接组件功能拖动连接到右侧json 输出组件,连接成功后常量组件中数据可以被后续组件使用

  2. 编辑json输出组件,点击操作选项,选择Output value,设置json条目名称,此名称为json对象的键名,设置输出值,此名称设置后为后面组件接收值名称,切换到字段,点击下方获取字段,获取上个组件传过来的数据,点击确定关闭组件


  1. 找到post查询组件,连接组件后双击组件编辑内容,找到URL,设置URL为需要请求接口,设置请求方式为post,找到Body field,下拉找到传过来的json数据,设置为传过来的json数据,找到Application type,设置为JSON,,点击右侧 Get fields按钮,点击完成关闭设置

  2. 配置完成后点击上方的运行按钮,运行成功则表示配置成功

  3. 点击文件——新建——作业,新建作业,切换到核心对象,在通用中找到开始组件、结束组件、转换组件,拖拽组件到编辑页面,连接组件。

  4. 双击打开转换组件,在Transformation中选择前面转换文件,点击确定保存。

  5. 点击运行,运行成功则表示配置成功

kettle常见错误

  1. 双击Spoon.bat无法运行

错误原因:java运行环境错误,可能未安装java JDK或java JDK版本不对

解决方法:编辑Spoon.bat文件

REM 将JAVA_HOME路径与电脑上jdk安装路径相匹配setlocal
set JAVA_HOME=C:\Program Files\Java\jdk1.8.0_121
  1. 数据库连接失败
    错误原因:可能参数设置错误或者数据库驱动未安装
    解决方法:检查参数是否正确,安装数据库驱动
    Tip: 数据库驱动需放在kettle安装目录中的lib文件夹下

  2. kettle常量转换后输出乱码,
    错误原因:kettle JVM未编码
    解决方法:找到spoon.bat,修改kettle JVM编码格式

REM ******************************************************************
REM ** Set java runtime options                                     **
REM ** Change 2048m to higher values in case you run out of memory  **
REM ** or set the PENTAHO_DI_JAVA_OPTIONS environment variable      **
REM ******************************************************************if "%PENTAHO_DI_JAVA_OPTIONS%"=="" set PENTAHO_DI_JAVA_OPTIONS="-Xms1024m" "-Xmx2048m"set OPT=%OPT% %PENTAHO_DI_JAVA_OPTIONS% "-Dhttps.protocols=TLSv1,TLSv1.1,TLSv1.2" "-Djava.library.path=%LIBSPATH%;%HADOOP_HOME%/bin" "-Djava.endorsed.dirs=%JAVA_ENDORSED_DIRS%" "-DKETTLE_HOME=%KETTLE_HOME%" "-DKETTLE_REPOSITORY=%KETTLE_REPOSITORY%" "-DKETTLE_USER=%KETTLE_USER%" "-DKETTLE_PASSWORD=%KETTLE_PASSWORD%" "-DKETTLE_PLUGIN_PACKAGES=%KETTLE_PLUGIN_PACKAGES%" "-DKETTLE_LOG_SIZE_LIMIT=%KETTLE_LOG_SIZE_LIMIT%" "-DKETTLE_JNDI_ROOT=%KETTLE_JNDI_ROOT%" "-Dfile.encoding=UTF-8"

参考文档

https://www.cnblogs.com/heiboy/p/11023522.html
https://blog.csdn.net/qqfo24/article/details/82190535

Kettle使用笔记相关推荐

  1. kettle学习笔记(三)——kettle资源库、运行方式与日志

    kettle学习笔记(三)--kettle资源库.运行方式与日志 一.kettle资源库 资源库是用来保存转换任务的,用户通过图形界面创建的的转换任务可以保存在资源库中. 资源库可以使多用户共享转换任 ...

  2. kettle学习笔记

    kettle的学习笔记 谨以此记录学习kettle的过程,文中将会记录所有我遇到过得问题,如果有能帮助你到的地方,那真是再好不过了. 附上kettle中文官网:http://www.kettle.ne ...

  3. 【Kettle学习笔记】从Hbase导入数据至Mysql

    1.连接Hadoop集群与MySQL 1-1 下载当前集群的Hbase配置文件 1-2 解压改配置文件至cdh510目录下 1-3 修改D:\kettle\data-integration\plugi ...

  4. kettle学习笔记(二)——kettle基本使用

    一.子程序功能和启动方式介绍 Spoon.bat: 图形界面方式启动作业和转换设计器. Pan.bat: 命令行方式执行转换. Kitchen.bat: 命令行方式执行作业. Carte.bat: 启 ...

  5. Kettle 学习笔记 — 资源库

    版权声明:本文为博主原创文章,于2021年4月17日首发于CSDN,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/u011046671/article/deta ...

  6. kettle 入门笔记

    文章目录 csv–> excel (excel 数字格式:文件打开时启动会报错练习) 文本文件 txt/log --> excel (注意文本分割符:preview-data) excel ...

  7. 用Kettle的一套流程完成对整个数据库迁移

    转自:  https://blog.csdn.net/maenlai0086/article/details/80829143 Kettle日常使用汇总整理:https://www.cnblogs.c ...

  8. 【使用指南】Kettle转换使用教程

    #Kettle转换使用教程 ##概述 Kettle是一款国外开源的ETL工具,纯java编写的ETL工具 ,可以在Window.Linux.Unix上运行,绿色无需安装,数据抽取高效稳定.并且Kett ...

  9. 【Kettle】学习笔记

    学习笔记 一.简介 1.1.ETL简介 1.2.Kettle简介 1.2.1.Kettle 1.2.2.Kettle的两种设计 1.2.3.Kettle的核心组件 二.安装部署 三.Kettle核心概 ...

最新文章

  1. python为什么运行慢_为什么你写的Python运行的那么慢呢?
  2. 基于intellij和meavn的整合开发struts2框架的web程序
  3. jvm性能调优实战 -33每日百亿数据量的实时分析引擎,如何定位和解决频繁Full GC问题
  4. erp沙盘模拟软件_VOL.977 工商第九周周报 ERP沙盘模拟大赛排名第一 跨学科校企合作商讨筹备...
  5. 黄聪: 50 个 Bootstrap 插件
  6. 探讨LoadRunner的并发用户和集合点
  7. python包管理(pip, 源码)
  8. RestTemplate设置代理
  9. 学习Coverity codexm的一些资料
  10. 计算机网络故障提出问题,列控系统及其计算机网络的故障诊断与故障容错研究...
  11. 使用Selenium模拟登陆百度盘
  12. Kibana坐标地图example
  13. qss 更改图标_Qt实现自定义图标功能
  14. Android游戏开发---碰撞检测
  15. Linux系统查看发行版本
  16. 60.left join(左连接)
  17. 基于PHP学生成绩查询系统设计与实现 开题报告
  18. SpringBoot是什么,可以做什么?
  19. 【英语写作】中国美食文化英语精翻练习
  20. C#结合OpenGL绘图之Tao库

热门文章

  1. 4G LTE 频率表
  2. Github星标90K?京东架构师一篇讲明白百亿级并发系统架构设计
  3. mysql 查询主键和主键列,查询Mysql表名、主键、列名
  4. iPhone语音拍照怎么用?
  5. php怎么建留言本,php实现留言板功能的详细代码
  6. 白话Elasticsearch11-深度探秘搜索技术之基于tie_breaker参数优化dis_max搜索效果
  7. 50件事爸爸一定要与孩子做(转)
  8. 6、春节到了,小明期盼收到压岁钱。他想:如果收到的钱超过1000元,那么捐助失学儿童;收到的钱在500~1000之间,那么购买航模;如果收到的钱不足500元,那么购买百科全书。
  9. 七日杀怎么建立虚拟服务器,《七日杀》怎么创建服务器
  10. Neil Young:谈游戏ARPDAU及榜单排名意义