Kettle 入门笔记1

一,KETTLE介绍

Kettle是 (Extract, Transform and Load抽取、转换、加载)一款国外开源的ETL工具,纯java编写,可以在Window、Linux、Unix上运行,数据抽取高效稳定。其中,Spoon是Kettle中的一个组件,其他组件有PAN,CHEF,Encr和KITCHEN等。

Spoon通过图形化的页面,方便直观的让你完成数据转换的操作。

二、Kettle下载

可到开源官网(https://community.hds.com)下载;

Data Integration(or Kettle) 8版本下载: pdi-ce-8.0.0.0-28

三、java JDK 安装与部署

1)首先到官网下载对应JDK包,JDK1.8或以上版本就行;

2)安装JDK;

3)配置环境变量。

具体步骤请百度

四:Kettle环境配置

1)因Kettle是开源工具,下载的压缩包直接解压到本地路径即可。

2)打开环境变量的设置窗口。右击“我的电脑”,在弹出的快捷菜单中选择“属性”选项,进入“系统属性”对话框。选择“高级”标签,进入“高级”选项卡,再单击“环境变量”按钮,进入“环境变量”对话框。

3)在“系统变量”栏“新建”系统变量,变量名输入:KETTLE_HOME;变量值输入Kettle解压路径(...\data-integtation)。点击“确定”完成环境变量设置。

五:Kettle运行

进入到Kettle目录,双击运行spoon.bat文件,出现如下界面及说明kettle成功部署。

六:出现问题

1)若kettle启动spoon提示 A Java Exception has occurred,则说明jdk与当前kettle版本不匹配。(注:jdk1.8版本可支持Kettle7.0以后版本,1.7版本不支持)

7、建立转换

  在文件->新建装换。

  新建转换后在左边的主对象树中建立DB连接用以连接数据库。如图所示:

建立数据库连接的过程与其他数据库管理软件连接数据库类似。

  注意:在数据库链接的过程中,可能会报某个数据库连接找不到的异常。那是因为你没有对应的数据库链接驱动,请下载对应驱动后,别忘记在链接数据库时先将数据库驱动包放入Spoon的lib文件夹下。

8 简单的数据表插入\更新

  (1)新建表插入

  在左边的面板中选择“核心对象”,在核心对象里面选择“输入->表输入”,用鼠标拖动到右边面板。如图所示:

双击拖过来的表,可以编辑表输入。

  选择数据库连接和编辑sql语句,在这一步可以点击预览,查看自己是否连接正确。

(2)通过插入\更新输出到表。

  在左边面板中选择核心对象、选择“输出->插入\更新”如图所示:

编辑插入更新:

  首先:表输入连接插入更新。

    选中表输入,按住shift键,拖向插入更新

然后:双击插入更新,编辑它。

到这里基本上,这个转换就要做完了,可以点击运行查看效果,看是否有误,这个要先保存了才能运行,可以随意保存到任何一个地方。

检查数据库表test1是否已有数据:

无数据的原因是:

再次执行转换:

9, 使用作业控制上面装换执行。

  使用作业可以定时或周期性的执行转换,新建一个作业。并从左边面板拖入start 和转换。

双击start可以编辑,可以设置执行时间等等

点开转换,可以设置需要执行的转换任务,比如可以执行上面我们做的转换,XXX.ktr

开始 连接 转换

选中START ,按住shift键,拖向转换。

由于之前单独执行测试公转换是否设置正确,先删除表test1的数据:

执行作业:

执行成功。查看数据库表test1是否有数据:

原文地址:https://www.cnblogs.com/wyl89/p/8761309.html

时间: 2024-10-29 04:41:59

Kettle 入门笔记1的相关文章

kettle入门笔记(二) 之 kettle报的坑爹错误:Error occured while trying to connect to the database

1 引言 在用kettle开发时常会出现 Error occured while trying to connect to the database 错误,但是仔细观察日志,引起这个错误的原因不尽相同.这个错误看起来很简单,但是有时候越简单的错误越没有耐心改,尤其是忙的时候,不小心填错了某个参数导致这个错误但是自己感觉没问题却跑不成功,这是最烦人的.这时候需要淡定.不妨上网查查,错误也许就可以愉快的解决了.下面给出这错误的更细节错误的不同发生情况. 2 示例 有个很简单的ktr脚本(当前kett

ETL技术工具kettle入门笔记(一) 之kettle连接oracle rac 报listener does not currently know of sid错误的解决

1 问题现象: 之前做的kettle 连接某个oracle数据库 做表抽取 脚本的表输入信息如下图: 执行时(脚本上传到linux机器 用sh命令执行的)表输入报的错误信息: 但是在机器里面用sqlplus 命令登录却可以成功: 2 解决过程: 出现问题后,一开始联系  源数据系统 厂家 看是不是他们那边数据库做了 限制. 经过他们查看,他们那边没有做限制.这边也查不到原因 后来参照别的系统 发现 134.64.197.198 是rac一个节点的浮动地址  对应的sid是 iprandb1.而i

MySQL入门笔记(一)

MySQL入门笔记(二) 一.数据类型 1. 整型 2. 浮点型 3. 字符型 4. 日期时间型 二.数据库操作 1. 创建库 CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name [DEFAULT] CHARACTER SET [=] charset_name; ??上述代码中DATABASE和SCHEMA完全相同,可任选一个(花括号内的参数为任选其一): ??添加IF NOT EXISTS的作用则是,若新建数据库的名称与已有数据库名称冲突,则产

Django入门笔记【一】

入门笔记翻译整理自:https://docs.djangoproject.com/en/1.8/ *该笔记将使用一个关于投票网络应用(poll application)的例子来阐述Django的用法. 1. 查看Django是否安装及版本 1 $ python -c "import django; print(django.get_version())" 2. 创建一个项目(project) 通过cd方式进入自创目录,然后运行: 1 $ django-admin startprojec

嵌入式OS入门笔记-以RTX为案例:十.Keil的RTX调试支持

嵌入式OS入门笔记-以RTX为案例:十.Keil的RTX调试支持 调试(debug)是软件开发的一个重要环节,对于嵌入式开发而言这个环节其实比较依赖一些硬件资源(硬件debugger)的支持.传统的嵌入式系统的调试比较依赖断点(breakpoint)和单步调试(single step through).而 ARM cortex-M 系列的芯片其实有很强的CoreSight片上调试支持,实际上就是一个小的调试硬件,作为ARM的标准,内嵌在ARM的芯片里.在ARM自家的调试器ULINK-pro等的帮

Ajax 入门笔记

AJAX =Asynchronous Javascript + XML,是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术. 通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新.这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新. XMLHttpRequest 是 AJAX 的基础.XMLHttpRequest 用于在后台与服务器交换数据.这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新. 1:创建 XMLHttpRequest 对象 为

iBatis 入门笔记

iBatis简介 iBatis是一个"半自动"的轻量级O/R Mapping框架. O/R Mapping是指对象与数据库之间的映射,而iBatis就是这样一个映射器,映射器的主要作用是在对象和数据库之间搬运数据,同时保证对象.数据库和映射器之间相互独立. 通过O/R Mapping你将不用再面对那一堆令人厌恶的JDBC代码,为一堆打开连接.关闭连接的代码而眼花头昏. 何为"半自动"?    这里的半自动是与Hibernate这样的O/R Mapping方案对比得出

Hive入门笔记-----架构以及应用介绍

Hive这个框架在Hadoop的生态体系结构中占有及其重要的地位,在实际的业务当中用的也非常多,可以说Hadoop之所以这么流行在很大程度上是因为Hive的存在.那么Hive究竟是什么,为什么在Hadoop家族中占有这么重要的地位,本篇文章将围绕Hive的体系结构(架构).Hive的操作.Hive与Hbase的区别等对Hive进行全方面的阐述. 在此之前,先给大家介绍一个业务场景,让大家感受一下为什么Hive如此的受欢迎: 业务描述:统计业务表consumer.txt中北京的客户有多少位?下面是

kettle入门(五) 之kettle读取gz格式文本详细案例

背景: ods平台的一个很简单的数据共享需求: 运营商的某个部门每天定时送gz格式的HLR文本数据到FTP服务器的固定目录下.然后ods每天定时去取然后录入到RDBMS的表中,开放给其他系统查询调用,这种称作数据库表接口. 需求很简单,但是因为以前只用过文本输入做txt 或者csv.excel ,所以一时就想怎么先把gz格式解压出来,再用文本文件输入,首先想到了用 kettle3自带的unzip 功能 如下图: 结果发现 解压不了gz格式的,后来又想到使用shell命令,但是在后台putty可以