ETL工具-Kettle Spoon教程

ETL工具-Kettle Spoon教程一。KettleSpoon简介   ETL(Extract-Transform-Load的缩写,即数据抽取、转换、装载的过程),对于企业或行业应用来说,我们经常会遇到各种数据的处理,转换,迁移,了解并掌握一种etl工具的使用,必不可少,支持图形化的GUI设计界面,然后可以以工作流的形式流转,在做一些简单或复杂的数据抽取、质量检测、数据清洗、数据转换、数据过滤等方面有着比较稳定的表现,使…

大家好,又见面了,我是你们的朋友全栈君。

一 。Kettle Spoon简介

     ETL(Extract-Transform-Load的缩写,即数据抽取、转换、装载的过程),对于企业或行业应用来说,我们经常会遇到各种数据的处理,转换,迁移,了解并掌握一种etl工具的使用,必不可少,支持图形化的GUI设计界面,然后可以以工作流的形式流转,在做一些简单或复杂的数据抽取、质量检测、数据清洗、数据转换、数据过滤等方面有着比较稳定的表现,使用它减少了非常多的研发工作量,提高了我们的工作效率。

Kettle中有两种脚本文件,transformation(转换ktr结尾)和job(任务kjb结尾),transformation完成针对数据的基础转换,job则完成整个工作流的控制(工作流程首先由个开始节点【可以设置定时执行】 可以选择transformation)。

官网 :http://kettle.pentaho.org/ 
下载的最新版本的kettle是:pdi-ce-7.1.0.0-12

官方入门文档 :https://wiki.pentaho.com/display/EAI/Getting+Started

二。kettle Spoon 安装入门

 1》 安装kettle spoon

kettle是使用java编写 直接是绿色版 解压即可使用 解压后的目录结构
ETL工具-Kettle Spoon教程

lib目录 可以存放第三方的jar  比如 数据库的驱动包 将来如果要连接某个数据库 将驱动包置入这个lib目录即可
spoon.bat是可执行文件 启动之前确保 jdk安装 环境变量(PATH和JAVA_HOME) 可以直接输入java和javaw 
ETL工具-Kettle Spoon教程

主对象树就两种类型脚本 转换和作业

 2》kettle spoon操作和核心对象介绍

 》》转换 

   转换菜单点击右键 新建 就创建了一个ktr结尾的转换脚本 
  ETL工具-Kettle Spoon教程
   新建好转换脚本后 主窗口的转换1 打开时 就可以拖拽控件到主窗口了 如果想重新再新建一个转换需要切换到欢迎页签
核心对象就是可以拖拽的控件 这里主要介绍几个核心对象 
比如 我想转换一个 csv文件到excel文件 

  •   输入 (CSV文件)

     核心对象中有各种不同的输入源 比如表(数据库) csv ldap access等
     比如 任意位置新建一个csv文件添加两列数据
    ETL工具-Kettle Spoon教程

 在转换脚本上拖拽一个csv输入的核心对象  选择该文件 并且指定两个列名和表格列名一致
ETL工具-Kettle Spoon教程

 

  •   输出  (EXCEL文件)

     核心对象中 将数据转换后写入的目的地 比如插入和更新(目的表存在更新不存在插入) 删除(输入存在的记录就删除目标表对应记录)

    添加一个excel输出
  ETL工具-Kettle Spoon教程

数据excel输出 设置 选择输出的文件保存位置

ETL工具-Kettle Spoon教程

  •   Hops节点连接 (输入和输出连一条线)

    数据从哪里流到哪里 可以再源对象上 shift键 鼠标拖动 也可以在主对象树中 Hops(节点连接) 上双击 手工选定
  ETL工具-Kettle Spoon教程

最后点击 三角运行按钮 运行 发现保存的excel中存在文件了
ETL工具-Kettle Spoon教程

 》》作业

作业可以理解为一套流程 流程从开始节点开始执行 直到最后
模拟一个简单作业 就是让上面那个转换每5s中执行一次 
定义一个开始节点
ETL工具-Kettle Spoon教程

拖一个转换指定到开始那个aa的转换  shift 拉动线条

ETL工具-Kettle Spoon教程

点击运行 发现每5s执行一次转换程序 如果需要停止 点击停止按钮即可

 3》数据库转换案例

 比如要实现将数据库testkettle的userinfo表的数据导入到userinfo1 同时还要导出到excel文件中
 userinfo表结构如下
ETL工具-Kettle Spoon教程

userinfo1的表结构如下(注意两张表的字段不一样哦)
ETL工具-Kettle Spoon教程

 首先双击转换 新建一个转换  转换中配置数据库连接 先将驱动包 丢到kettle的lib目录下
ETL工具-Kettle Spoon教程

输入完成后 点击测试按钮测试一下 
拖拽一个 输入 (表输入)到界面上  选择数据源的表 或者自己编写sql语句
ETL工具-Kettle Spoon教程

添加一个excel输出 选择excel输出的位置 即可 拉上节点连接
添加一个 插入/更新 (选择插入的目标表【字段对应】 更新是用目标表的哪个字段和输入数据源的哪个字段比)
   如果userinfo1不在同一个数据库中 数据库连接选择其他数据库连接(自己新建) 即可

ETL工具-Kettle Spoon教程

完成后 拖拽一根节点连接到  会有个确认框

ETL工具-Kettle Spoon教程

点击运行发现excel和userinfo1都存在数据

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/142386.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • JAVA中json转Map,jsonArray转List集合,List集合转json

    JAVA中json转Map,jsonArray转List集合,List集合转json在写代码时,经常会遇到各转类型之间互相转换,比如json转换为Map,jsonArray转List集合,List集合转json,现在整理一个工具类,方便日后查阅。importjava.util.HashMap;importjava.util.Iterator;importjava.util.List;importjava.util.Map;importorg.apac

    2022年6月23日
  • JS经常使用字符串处理方法总结

    JS经常使用字符串处理方法总结

    2022年2月6日
  • [TensorFlowJS只如初见]实战三·使用TensorFlowJS拟合曲线

    [TensorFlowJS只如初见]实战三·使用TensorFlowJS拟合曲线问题描述拟合y=x*x-2x+3+0.1(-1到1的随机值)曲线给定x范围(0,3)问题分析在直线拟合博客中,我们使用最简单的y=wx+b的模型成功拟合了一条直线,现在我们在进一步进行曲线的拟合。简单的y=wx+b模型已经无法满足我们的需求,需要利用更多的神经元来解决问题了。代码<html><head><script…

    2022年7月16日
  • 如何判断一个对象是否为空{}

    如何判断一个对象是否为空{}我们想要判断对象是否为空,像基本类型那样判断是不可以的,==={}?这样是错误的,因为只是比较引用地址是否相同,所以可以采取下面的方法来进行判断1.根据for…in遍历对象,如果存在则返回true,否则返回falsefor(letiinobj){ returntrue;}returnfalse2.利用JSON自带的JSON.stringify()方法来判断…

    2022年5月26日
  • 如何设置让网站禁止被爬虫收录?robots.txt

    如何设置让网站禁止被爬虫收录?robots.txt

    2021年10月9日
  • 系统运维架构 DevOps

    系统运维架构 DevOps一套大而全的系统架构体系与具体落地方案 写在最前面上次参加DBAplus举办的敏捷运维峰会时,一个兄弟的提问一直萦绕耳边,由于时间有限没有进行深入的交流,甚是遗憾。那个问题是:你们公司的IT系统架构是怎样的?又如何具体落地?采用了哪些开源或是商业的技术?其实之前也写过或是做过一些关于系统架构的分享,或多或少的个人或其它限制,总觉得未能尽兴,留有遗憾。因此经过最近一个多月的总结和梳理…

    2022年7月17日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号