Kettle入门教程
创始人
2024-04-14 22:23:18
0

目录

一、Kettle是什么

二、Kettle的两种设计

三、Kettle核心组件

四、安装与启动

五、使用

5.1 简单介绍

5.2 输入

5.3 输出

5.4 转换

5.5 脚本


一、Kettle是什么

        Kettle最早是一个开源的ETL(Extract-Transform-Load,数据仓库技术)工具,全称为KDE Extraction, Transportation, Transformation and Loading Environment。在2006年,Pentaho公司收购了Kettle项目,原Kettle项目发起人Matt Casters加入了Pentaho团队,成为Pentaho套件数据集成架构师;从此,Kettle成为企业级数据集成及商业智能套件Pentaho的主要组成部分,Kettle重命名Pentaho Data Integration(PDI)。Pentaho公司于2015年被Hitachi Data Systems收购。(Hitachi Data Systems于2017年改名为Hitachi Vantara)

        PDIJava开发,支持跨平台运行,其特性包括:支持100%无编码、拖拽方式开发ETL数据管道;可对接包括传统数据库、文件、大数据平台、接口、流数据等数据源;支持ETL数据管道加入机器学习算法。

        PDI分为商业版开源版,开源版的截止2021年1月的累计下载量达836万,其中19%来自中国。在中国,一般人仍习惯把PDI的开源版称为Kettle

二、Kettle的两种设计

  • Transformation (转换) :完成针对数据的基础转换。
  • Job (作业) :完成整个工作流的控制。

两者的主要区别如下:

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

三、Kettle核心组件

名称

功能

Spoon.bat / spoon.sh(重点)

通过图形接口,允许你通过图形界面来设计 ETL 转换过程(Transformation)

Pan.bat / pan.sh

运行转换的命令行工具

Kitchen.bat / kitchen.sh

运行作业的命令行工具

Carte.bat / Carte.sh

Carte 是一个轻量级别的 Web 容器,用于建立专用、远程的 ETL Server

四、安装与启动

官网各版本下载地址:Pentaho from Hitachi Vantara - Browse /Data Integration at SourceForge.net

Kettle是免安装的,解压即可使用,但Kettle是使用Java开发的,所以需要安装Java环境,解压之后,双击Spoon.bat即可运行

五、使用

5.1 简单介绍

首先我们创建一个转换

然后可以看到有很多组件,其中我们最常用的主要是输入、输出、转换、脚本、查询等,下面我们着重介绍一下这几种常用的组件

5.2 输入

可以看到输入的组件非常多,这里标记了一下比较常用的组件,然后用Excel输入举个例子,首先把Excel输入拖到右边的工作区,浏览、添加文件

选择Excel内容如下

选择完文件之后,再选择工作表

选择完工作表之后,再选择字段

以上是Excel输入组件的基本使用

5.3 输出

输出的前提是需要有一个输入(文本文件、Excel、数据库等等),输出的组件会比输入要少一些,下面就用表输出举一个例子

与输入一样,把表输出组件拖到工作区中

既然是表输出,那么第一步我们肯定是需要建立数据库连接,连接的过程与一般的数据库管理工具一致,除此之外还有两个注意的,提交记录数量(默认为1000)和指定数据库字段,提交记录数量就不多提了,这里主要说一下数据库字段映射,也就是上图右边这部分,其实说白了就是建立输入与输出的映射关系,虽然这里的案例输入和输出的字段名都一样,但是实际的场景中肯定会遇到字段名不一样的情况,就可以使用映射的方式建立关联关系。

5.4 转换

输入是起点,输出是终点,转换是中间处理

转换的组件也非常多,而且很多都比较常用,比如去重、字符串操作、增加常量、字段选择等等,这里就以增加常量举例,场景就是在输入源上增加一个常量,或者说增加一个默认值

转换是种流式处理,一个接着一个连接即可

5.5 脚本

有时候现有的组件无法满足我们的定制化需求,这个时候就可以使用脚本来更灵活的实现我们的需求,脚本的功能很强大,很多组件也可以直接通过脚本实现

上一篇:LDcad零件新增与导入

下一篇:命令模式

相关内容

热门资讯

前端-session、jwt 目录:   (1)session (2&#x...
linux入门---制作进度条 了解缓冲区 我们首先来看看下面的操作: 我们首先创建了一个文件并在这个文件里面添加了...
关于测试,我发现了哪些新大陆 关于测试 平常也只是听说过一些关于测试的术语,但并没有使用过测试工具。偶然看到编程老师...
前缀和与对数器与二分法 1. 前缀和 假设有一个数组,我们想大量频繁的去访问L到R这个区间的和,...
nodejs:本地安装nvm实... 一、背景-使用不同版本node的原因 vue3+ts、nuxt3版本,node...
JAVA集合知识整理 Java集合知识整理 HashMap相关 HashMap的底层数据结构:jdk1.8之...
无刷直流电机介绍及单片机控制实... 无刷直流电机介绍及单片机控制实例前言基本概念优势与劣势使用寿命基本结构使用单片机控制实例电子调速器&...
fwdiary(2) dp2 1.传纸条  AcWing 275. 传纸条 - AcWing 走两条路,走一条最大的...
常用的DOS命令 常用的DOS命令 DOS(Disk Operating System,磁...
<C++> 类和对象(下) 1.const成员函数将const修饰的“成员函数”称之为const成员函数,cons...