大家好,又见面了,我是你们的朋友全栈君。
一 。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编写 直接是绿色版 解压即可使用 解压后的目录结构
lib目录 可以存放第三方的jar 比如 数据库的驱动包 将来如果要连接某个数据库 将驱动包置入这个lib目录即可
spoon.bat是可执行文件 启动之前确保 jdk安装 环境变量(PATH和JAVA_HOME) 可以直接输入java和javaw
主对象树就两种类型脚本 转换和作业
2》kettle spoon操作和核心对象介绍
》》转换
转换菜单点击右键 新建 就创建了一个ktr结尾的转换脚本
新建好转换脚本后 主窗口的转换1 打开时 就可以拖拽控件到主窗口了 如果想重新再新建一个转换需要切换到欢迎页签
核心对象就是可以拖拽的控件 这里主要介绍几个核心对象
比如 我想转换一个 csv文件到excel文件
- 输入 (CSV文件)
核心对象中有各种不同的输入源 比如表(数据库) csv ldap access等
比如 任意位置新建一个csv文件添加两列数据
在转换脚本上拖拽一个csv输入的核心对象 选择该文件 并且指定两个列名和表格列名一致
- 输出 (EXCEL文件)
核心对象中 将数据转换后写入的目的地 比如插入和更新(目的表存在更新不存在插入) 删除(输入存在的记录就删除目标表对应记录)
添加一个excel输出
数据excel输出 设置 选择输出的文件保存位置
- Hops节点连接 (输入和输出连一条线)
数据从哪里流到哪里 可以再源对象上 shift键 鼠标拖动 也可以在主对象树中 Hops(节点连接) 上双击 手工选定
最后点击 三角运行按钮 运行 发现保存的excel中存在文件了
》》作业
作业可以理解为一套流程 流程从开始节点开始执行 直到最后
模拟一个简单作业 就是让上面那个转换每5s中执行一次
定义一个开始节点
拖一个转换指定到开始那个aa的转换 shift 拉动线条
点击运行 发现每5s执行一次转换程序 如果需要停止 点击停止按钮即可
3》数据库转换案例
比如要实现将数据库testkettle的userinfo表的数据导入到userinfo1 同时还要导出到excel文件中
userinfo表结构如下
userinfo1的表结构如下(注意两张表的字段不一样哦)
首先双击转换 新建一个转换 转换中配置数据库连接 先将驱动包 丢到kettle的lib目录下
输入完成后 点击测试按钮测试一下
拖拽一个 输入 (表输入)到界面上 选择数据源的表 或者自己编写sql语句
添加一个excel输出 选择excel输出的位置 即可 拉上节点连接
添加一个 插入/更新 (选择插入的目标表【字段对应】 更新是用目标表的哪个字段和输入数据源的哪个字段比)
如果userinfo1不在同一个数据库中 数据库连接选择其他数据库连接(自己新建) 即可
完成后 拖拽一根节点连接到 会有个确认框
点击运行发现excel和userinfo1都存在数据
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/142386.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...