others linux服务器运维 django3 监控 k8s golang 数据库 大数据 前端 devops 理论基础 java oracle 运维日志

kettle 8.2 基本使用

访问量:1164 创建时间:2021-03-29

定义:kettle是免费开源的、可视化的、功能强大的ETL(ETL,是英文Extract-Transform-Load的缩写,用来描述将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至目的端的过程。ETL一词较常用在数据仓库,但其对象并不限于数据仓库。)工具.

两种设计

transformation和job,transformation完成针对数据的基础转换,job则完成整个工作流的控制。

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

KETTLE核心组件

工具 作用
勺子 spoon.bat/spoon.sh 允许你通过图形界面来设计ETL转换过程(Transformation)
锅 pan.bat/pan.sh Pan是一个后台执行的程序,没有图形界面,类似于时间调度器,命令行调用trans
carte 一个轻量级web容器,用于建立专用远程的etl server
厨房 KITCHEN 批量使用由Chef设计的任务,命令行调用job

转换 使用

下载,过程省略,这里使用8.2版本,没使用当前最新的9.1 ; 下载后解压,安装jdk后双击spoon.bat即可。

测试(从stu1 同步数据到stu2,一种方式覆盖stu2,一种增量更新stu2)

MariaDB [test]> use test
Database changed
MariaDB [test]> create table stu1(id int,name varchar(20),age int);
Query OK, 0 rows affected (0.41 sec)

MariaDB [test]> create table stu2(id int,name varchar(20));
Query OK, 0 rows affected (0.02 sec)

MariaDB [test]> insert into stu1 values(1,'aa',22),(2,'vbb',33),(3,'aas',44);
Query OK, 3 rows affected (0.24 sec)
Records: 3  Duplicates: 0  Warnings: 0

MariaDB [test]> insert into stu2 values(1,'laowang');
Query OK, 1 row affected (0.00 sec)

下载mariadb 的jdbc包放到kettle的lib目录下面:https://downloads.mariadb.com/Connectors/java/connector-java-2.7.2/mariadb-java-client-2.7.2.jar 新建转换:在转换上右键,然后点输入

将表输入 拖到右边(或者双击)

配置输出: 点击 输出 ,拖动插入更新按钮, 按住shift 点击 表输入 拉向插入更新,会建立数据流向(保证中间线是实线,虚线通过单击变为实线)

双击插入/更新 按钮

点击左上角的保存按钮,保存job。然后点击 运行

查看mariadb数据

MariaDB [test]> select * from stu2;
+------+---------+
| id   | name    |
+------+---------+
|    1 | laowang |
|    2 | vbb     |
|    3 | aas     |
+------+---------+
3 rows in set (0.00 sec)

改为Y再次运行,然后查询数据库

MariaDB [test]> select * from stu2;
+------+------+
| id   | name |
+------+------+
|    1 | aa   |
|    2 | vbb  |
|    3 | aas  |
+------+------+
3 rows in set (0.00 sec)

job使用

在左侧选作右键新建作业job, 依次拖动start,转换,sql,发送邮件到右面窗口,并按住shift连线,转换按钮双击选择上面创建的转换,sql

在stu1中插入一条数据

MariaDB [test]> insert into stu1 values(4,'ww',43);
Query OK, 1 row affected (0.01 sec)

配置邮件发送

执行job,检查stu2数据和邮件发送情况

登陆评论: 使用GITHUB登陆