目录

1.kettle叙述

1.1什么是kettle

1.2kettle工程存储方式

1.3kettle两种设计

1.4kettle的组成

1.5kettle的下载安装

2.kettle教程

2.1转换

2.1.1普通转换

2.1.2执行sql脚本

2.1.3条件判断Switch Case

2.1.4自定义java代码

2.2作业

1.kettle叙述

1.1什么是kettle

Kettle是一款开源的ETL(Extract-Transform-Load)工具,纯java编写,可以在Window、Linux、Unix上运行,绿色无需安装,数据抽取高效稳定。

1.2kettle工程存储方式

(1)以XML形式存储
(2)以资源库方式存储(数据库资源库和文件资源库)

1.3kettle两种设计

Transformation(转换):完成对数据的基本转换

Job(工作):完成整个工作流的控制

区别:

(1)作业是步骤流,转换是数据流。

(2)作业的每一个步骤必须要等到前面的步骤都跑完了,后面的步骤才会执行,而转换会一次性把所有控件全部先启动(一个控件对应启动一个线程),然后数据流会从第一个控件开始,一条记录一条记录的流向最后控件。

1.4kettle的组成

1.勺子(Spoon.bat/spoon.sh) :是-个图形化的界面,可以让我们用图形化的方式开发转换和作业。windows选择.bat; Linux选择.sh。
2.煎锅(Pan.bat/pan.sh) : 利用Pan可以用命令行的形式调用Trans。
3.厨房(Kitchen batkitchen.sh) : 利用Kitchen可以使用命令行调用]ob
4.菜单(Carte.bat/ Carte.sh): Carte是一 个轻量级的Web容器,用于建立专用、远程的ETL Server。

1.5kettle的下载安装

kettle中文官网

将mysql驱动和oracle驱动放在kettle包下面的lib包下面即可。

2.kettle教程

2.1转换

2.1.1普通转换

-- oracle脚本
create tablespace kettle
datafile 'Z:\oracle\oracle_data\tablespace\kettle.dbf'
size 10m
autoextend on
next 10mcreate user kettle
identified by kettle
default tablespace kettlegrant dba to kettle;create table flower(id varchar2(32)  default sys_guid() primary key,flower_name varchar2(200),color varchar2(100),origin varchar2(200),moral varchar2(200),create_time timestamp default sysdate,update_time timestamp
);-- 数据
insert all
into flower(flower_name,color, moral, update_time)
values('红玫瑰', 'red', '热恋与浓烈的爱', sysdate)into flower(flower_name,color, moral, update_time)
values('紫玫瑰', 'purple', '深沉守护的爱情', sysdate)into flower(flower_name,color, moral, update_time)
values('白玫瑰', 'white', '纯洁、纯真的爱', sysdate)into flower(flower_name,color, moral, update_time)
values('粉玫瑰', 'pink', '初恋、宠爱', sysdate)into flower(flower_name,color, moral, update_time)
values('黄玫瑰', 'yellow', '已逝的爱、为爱道歉', sysdate)into flower(flower_name,color, moral, update_time)
values('香槟玫瑰', 'Milky yellow', '爱上你是我今生最幸福的', sysdate)into flower(flower_name,color, moral, update_time)
values('白色郁金香', 'white', '纯洁无暇', sysdate)
into flower(flower_name,color, moral, update_time)
values('红色色郁金香', 'red', '热情与喜爱', sysdate)
into flower(flower_name,color, moral, update_time)
values('粉色郁金香', 'pink', '幸福与怜爱', sysdate)
into flower(flower_name,color, moral, update_time)
values('紫色郁金香', 'purple', '神秘与高贵', sysdate)into flower(flower_name,color, moral, update_time)
values('向日葵', 'yellow', '沉默的爱', sysdate)into flower(flower_name,color, moral, update_time)
values('满天星', 'write、blue、purple、pink、', '甘愿做配角,默默爱着一个人', sysdate)into flower(flower_name,color, moral, update_time)
values('百合', 'write、purple、pink、yellow、black、golden', '百年好合、美好家庭、深深祝福', sysdate)into flower(flower_name,color, moral, update_time)
values('康乃馨', 'write、yellow、purple、pink、', '爱、美丽、尊敬之情', sysdate)into flower(flower_name,color, moral, update_time)
values('洋桔梗', 'write、purple、pink、', '纯洁、感激和真诚的爱', sysdate)into flower(flower_name,color, moral, update_time)
values('洋牡丹', 'write、yellow、purple、pink、', '爱、美丽、尊敬之情', sysdate)into flower(flower_name,color, moral, update_time)
values('白色紫罗兰', 'write、', '想和爱人更近一步', sysdate)into flower(flower_name,color, moral, update_time)
values('紫色紫罗兰', 'purple', '永恒的美', sysdate)into flower(flower_name,color, moral, update_time)
values('蓝色紫罗兰', 'blue', '永恒的美', sysdate)
into flower(flower_name,color, moral, update_time)
values('勿忘我', 'write、yellow、purple、pink、blue', '爱、美丽、尊敬之情', sysdate)
select * from dual;

a.在主对象树->DB连接,创建两个DB连接,这里用oracle和mysql数据库进行转换

b.核心对象->输入,选择表输入

c.核心对象->输出,选择插入/更新,并且按住Shift将输入和输出连接起来

 

2.1.2执行sql脚本

a.建两个DB连接和上面步骤一样

b.选择核心对象->表输入,选择表输出,并双击配置sql查询语句

c.选择核心对象->脚本,选择sql脚本,按钮Shift将输入和脚本连接起来

d.执行即可

2.1.3条件判断Switch Case

a.还是建两个DB数据库连接

b.核心对象->表输入,双击对表输入进行sql配置

b.核心对象->流程,选择Switch/Case,按住Shift将表输入和Sitch/Case连接起来

ORIGIN值为空执行sql脚本,否则执行插入/更新操作。

d.一个分支选择插入/更新,一个分支选择sql脚本

2.1.4自定义java代码

a.创建两个DB连接

b.核心对象->表输入,进行sql配置

c.核心对象->脚本,选择Java代码,按住Shift将表输入和Java代码连接起来,配置Java代码

选择Main,再进行自定义java代码

Java没有写好确定,测试类->确定前是没有数据的,会提示异常信息,打不开dialog框,属于正常。

启动执行,可以查看预览数据,但是不会改变源数据表里面的内容。

如果产生了新的字段需要进行配置,上面用到还是表中的字段,下面是产生了新的表字段,不会改变原表数据。

2.2作业

a.文件->新建->作业

开始表里没有数据的,执行以后将数据进行插入,再次执行会进行字段更新,根据转换设置的那些需要更新的字段进行更新

kettle入门教程相关推荐

  1. kettle详细使用oracle教程,Kettle入门教程(详细介绍控件使用方法)_kettle详细使用教程,kettle控件介绍...

    Kettle入门教程(详细介绍控件使用方法)本手册主要是对Kettle工具的功能进行详细说明以及如何操作该系统,适合所有使用该系统的人员. 服务查询 数据库查询 数据库连接 流查询 调用存储过程 转换 ...

  2. kettle下载百度网盘地址含入门教程

    入门教程一 入门教程二 入门教程三 入门教程四 入门教程五 入门教程六 入门教程七 入门教程八

  3. Kafka入门教程与详解

    1 Kafka入门教程 1.1 消息队列(Message Queue) Message Queue消息传送系统提供传送服务.消息传送依赖于大量支持组件,这些组件负责处理连接服务.消息的路由和传送.持久 ...

  4. 【CV】Pytorch一小时入门教程-代码详解

    目录 一.关键部分代码分解 1.定义网络 2.损失函数(代价函数) 3.更新权值 二.训练完整的分类器 1.数据处理 2. 训练模型(代码详解) CPU训练 GPU训练 CPU版本与GPU版本代码区别 ...

  5. python tornado教程_Tornado 简单入门教程(零)——准备工作

    前言: 这两天在学着用Python + Tornado +MongoDB来做Web开发(哈哈哈这个词好高端).学的过程中查阅了无数资料,也收获了一些经验,所以希望总结出一份简易入门教程供初学者参考.完 ...

  6. python向量计算库教程_NumPy库入门教程:基础知识总结

    原标题:NumPy库入门教程:基础知识总结 视学算法 | 作者 知乎专栏 | 来源 numpy可以说是 Python运用于人工智能和科学计算的一个重要基础,近段时间恰好学习了numpy,pandas, ...

  7. mysql query browswer_MySQL数据库新特性之存储过程入门教程

    MySQL数据库新特性之存储过程入门教程 在MySQL 5中,终于引入了存储过程这一新特性,这将大大增强MYSQL的数据库处理能力.在本文中将指导读者快速掌握MySQL 5的存储过程的基本知识,带领用 ...

  8. python tensorflow教程_TensorFlow入门教程TensorFlow 基本使用T

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 TensorFlow入门教程 TensorFlow 基本使用 TensorFlow官方中文教程 TensorFlow 的特点: 使用图 (graph) 来 ...

  9. air调用java,AIR2.0入门教程:与Java应用交互

    在之前的一篇文章中,我介绍了如何使用AIR2.0新增的NativeProcess类与本地进程进行交互和通讯,在那个例子里面我们使用了C++ 的代码,实际上只要是基于命令行的标准输入输出,AIR2.0的 ...

  10. 【Arduino】开发入门教程【一】什么是Arduino

    Arduino Arduino 是一款便捷灵活.方便上手的开源电子原型平台,包含硬件(各种型号的arduino板)和软件(arduino IDE).它适用于艺术家.设计师.爱好者和对于"互动 ...

最新文章

  1. 钉钉被小学生逼疯,拍片在线求饶哈哈哈哈
  2. Android 项目结构说明
  3. javaweb学习总结(三十八):事务
  4. oracle序列创建及使用,Oracle创建和使用序列
  5. 深度学习之边框回归(Bounding Box Regression)
  6. HTTP、TCP连接工具
  7. 思迈特软件Smartbi:最常用的五种大数据分析方法,建议收藏!
  8. win7计算机管理没有用户模块,Win7系统安装“ipx协议”提示“找不到相应的模块”如何解决...
  9. Java多线程系列--“JUC集合”02之 CopyOnWriteArrayList
  10. 黑盒测试---等价类划分
  11. TR1 tuple的用法
  12. 电子绘画画笔笔刷模式的学习笔记
  13. java生成二维码扫描跳转到指定的路径URL
  14. 9 个非常实用的网络调试命令,你会用几个呢?
  15. 批量图片采集编辑压缩工具
  16. pycharm远程连接服务器问题Uploading PyCharm helpers Python Interpreter... Python helpers are not copied yet
  17. 函数的返回值 return(基础)
  18. MS Office Excel 2007/2003 资料下载汇总
  19. Sec-Fetch-*请求头
  20. 微信小程序关于内层view设置margin-top无效的解决方案

热门文章

  1. Java数据库的介绍和使用
  2. Java 数据库image型输出图片
  3. 毕业设计-基于Springboot实现仓库管理系统
  4. 软件测试验收方法_验收测试是美丽的魔术。 这就是它可以改善您的生活的方法。...
  5. 【Android 教程系列第 32 篇】如何查看本地已安装的 java jdk 都有哪些版本
  6. fanuc以太网参数设置视频_fanuc-mf系统 以太网设置方法资料
  7. springboot整合aceadmin
  8. 雷诺方程推导及FDM求解
  9. 用计算机关闭无线网络连接,我的DELL笔记本电脑无线网络已关闭,怎么进行再连接?...
  10. [ECCV2020]Beyond 3DMM Space: Towards Fine-grained 3D Face Reconstruction