大数据技术之kettle
第1章 kettle概述
1.1 什么是kettle
kettle是一款开源的ETL工具,纯java编写,可以在Windows、Linux、Unix上运行,绿色无需安装,数据抽取高效稳定。
1.2 kettle核心知识点
1.2.1 kettle工程存储方式
1) 以XML形式存储
2) 以资源库方式存储(数据库资源库和文件资源库)
1.2.2 kettle的两种设计
简述: Transformation(转换):完成针对数据的基础转换。
Job(作业):完成整个工作流的控制。
区别:(1)作业是步骤流,转换是数据流。
(2)作业的每一个步骤必须等到前面的步骤都跑完了后面的步骤才会执行;而转换会一次性把所有控件全部先启动(一个控件对应启动一个线程),然后数据流会从第一个控件开始,一条记录、一条记录的流向最后的控件。
1.2.3 Kettle的组成
1. 勺子(Spoon.bat/spoon.sh):是一个图形化的界面,可以让我们用图形化的方式开发转换和作业。Windows选择.bat;Linux选择.sh
2. 煎锅(Pan.bat/pan.sh):利用Pan可以用命令行的形式调用Trans
3. 厨房(Ktitchen.bat/kitchen.sh):利用Kitchen可以使用命令行调用Job
4. 菜单(Carte.bat/carte.sh):Carte是一个轻量级的Web容器,用于建立专用、远程的ETL Server。
1.3 kettle的特点
第2章 kettle安装部署和使用
2.1 kettle安装地址
官网地址:
https://community.hitachivantara.com/s/article/data-integration-kettle
下载地址:
https://sourceforge.net/projects/pentaho/files/
2.2 Windows下安装使用
2.2.1 概述
在实际企业开发中,都是在本地环境下进行kettle的Job和Transformation开发,可以在本地运行,也可以连接远程机器运行。
2.2.2 安装
1)安装jdk
下载地址:
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
同意相关协议,再下载对应版本的jdk(windows x64)
下载软件为,双击安装
下一步继续安装(需要注意路径)
下一步等待安装完成。
2)下载kettle压缩包,因为kettle为绿色软件,解压缩到任意本地路径即可
3)双击Spoon.bat,启动图形化界面工具即可使用
案例一 把stu1的数据按id同步到stu2,stu2有相同id则更新数据
在mysql中创建两张表
mysql>create database kettle; mysql>use kettle; mysql>create table stu1 (id int ,name varchar(20),age int); mysql>create table stu2 (id int ,name varchar(20)); mysql>insert into stu1 values(1001,’zhangsan’,20),(1002,’lisi’,18),(1003,’wangwu’,23); mysql>insert into stu2 values(1001,’wukong’); |
在kettle中新建转换
点击左上角文件—新建—转换到核心对象界面,点击输入,找到表输入拖拽到中间
双击表输入,在数据库连接中配置mysql数据库连接(注意jar包mysql-connector-java-5.1.34-bin.jar要放在kettle的lib文件夹中)
sql语句中输入select * from stu1;
点击预览可以看到数据
在输出中找到插入/更新组件拖拽到中间,点住表输入shift+鼠标左键连接到插入/更新组件上
双击插入/更新,点击目标表浏览,选择stu2
点击获取字段获取到3个字段
由于stu1与stu2通过id关联,故删除另2个字段,然后点击编辑映射,编辑2个表之间的映射
确定后如图
更新处,修改id的属性为n,确定
保存运行,到数据库中查看结果。