kettle系列之一 基础知识

本文介绍了开源ETL工具Pentaho Kettle(PDI)的基础知识,包括其用途、支持环境和源码编写语言。文章详细阐述了如何在Windows和Linux环境下搭建基础环境,包括直接下载安装包、本地编译源码、安装MySQL驱动以及启动方法。此外,还解释了PDI中的作业(Job)和转换(Transformation)概念,并提供了资源库的两种类型及其应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简介

pentaho-kettle是一款开源的ETL工具,官方名称是Pentaho Data Integration,主要是用来做数据库迁移等,支持面很强大,易学难精。

支持在windows和linux下使用,但是linux下不一定有图形界面,本来作为服务器一般都不会有图形界面的,所以设计工作主要在windows环境下完成。

源代码使用Java编写。

弊端:文档比较杂乱,不好搜资料。

参考:https://blog.youkuaiyun.com/u010192213/article/details/77646142

基础环境搭建

前提,版本8.1

有2种搭建方式,推荐第一种

直接在官网下载安装包,解压即可用

步骤1,下载JDK1.8及以上,并安装

步骤2,下载PDI编译后的安装包,解压

下载链接:https://sourceforge.net/projects/pentaho/files/

1538920265987

也可以下载7.1稳定版本

1538920325297

下载官方源码,本地编译打包

官方开源地址:

https://github.com/pentaho/pentaho-kettle/tree/8.1.0.5

编译过程直接参考官方文档:注意maven要配置pentaho的仓库

1538920441906

使用maven打包,生产zip文件夹,直接解压就可以使用

下载MySQL驱动包

mysql-connector-java-5.1.47.tar.gz

解压后把mysql-connector-java-5.1.47.jar放到PDI的lib目录下即可

启动

windows下双击spoon.bat即可启动PDI的图形界面

文件夹下的samples下面是官方的demo,建议搞懂每一个例子,大部分的需求都是这些官方demo排列组合就可以完成的。

概念

文件扩展名:

kjb: job,作业

ktr: transformation,转换

作业可以包裹多个转换和作业

强烈建议:不要直接执行转换,用一个作业来包裹转换,执行作业,以便统一管理。

资源库:

资源库分2种,参考https://www.cnblogs.com/zigewb/p/4502938.html

文件资源库,把job/transformation保存为kjb/ktr结尾的文件,调用的时候传入路径和文件名。

数据库资源库,默认账号admin/admin,把job/transformation保存到数据库中。

选择哪一种资源库,基于需求决定,数据库容易统一管理,但是没有版本控制,文件库可以使用svn等版本控制工具控制版本。

工具:

PDI解压之后,有提供以下几个工具

Spoon,完整的带图形界面的设计/执行工具

Pan,用来执行转换的命令行工具

Kitchen,用来执行作业的命令行工具

Carte,用来开启一个服务器,可以远程调用作业或者转换,基于命令行,主要用于搭建集群的PDI环境

Kettle工具使用 培训教程 目录 ETL 简介 KETTLE 简介 KETTLE 安装和运行 KETTLE 菜单简介 KETTLE 案例讲解 控件介绍 日志介绍 一、ETL 简介 ETL 概念简介 ETL相关的质量特性 ETL 在数据仓库项目中的位置 二、kettle 工具简介 Kettle是一款国外开源的ETL工具, 纯java编写,可以在Window、 Linux、Unix上运行,数据抽取高效 稳定 Kettle中有两种脚本文件, transformation(转换)和job (作业),transformation完成 针对数据的基础转换,job则完 成整个工作流的控制。 Kettle 工具的模型架构 kettle 工具的优缺点 优点: 系统开源、免费 安装方便、图形化安装 支持多种数据源 支持多种字符集 具有简单的权限管理 支持各种复杂数据转换 缺点 稳定性差 性能差 缺乏元数据管理 KETTLE 的下载 Kettle可以在 http://kettle.pentaho.org/网站下载 下载kettle压缩包,因kettle为绿色软 件,解压缩到任意本地路径即可 Kettle 运行步骤 双击运行 kettle 文件夹下的 Kettle 文件,出 现 kettle 欢迎界面。 创建资料库(可省略) 创建数据库连接 创建转换 创建Jobs,进行流程化控制 KETTLE 的使用 进入到Kettle目录,如果Kettle部署在windows环 境下,双击运行spoon.bat文件,出现如下界面: Kettle 使用步骤 (1)创建转换 大概的来说一般由三步组成: 输入+转换等中间步骤+输出 (2)创建作业 将已经创建好的转换和相关的作业组件串联起来, 形成一个整体的任务。 Kettle 的执行顺序 作业:分串行执行和并行执行,串行执行是先执行完其中一条线再执 行另一条线,并行是两条线同时执行,同一条线上的两个步聚会先执 行前面的再执行后面的。每个步骤执行结果分两种:true(成 功)/false(失败),根据返回结果可以控制流程走向。 转换:一开始所有步骤同时运行,记录会从最前端的步骤向后传递, 传递到相应步骤则该记录被该步骤作相应处理,处理完成再把记录往 后传递,记录传递分复制和分发两种模式。 KETTLE 的目录介绍 根目录文件夹介绍: 【Docs】存放Kettle各种语言版本的API文档。 【 Launcher 】存放Kettle Spoon加载的一些配置信息。 【 Lib 】存放Kettle所使用到的第三方jar包。比如:数据库驱动包, 如缺少时需要把对应的数据库驱动包放入此文件夹中。 【 Libswt 】存放Kettle对应不同平台的相关UI jar包。 【 Plugins 】存放Kettle自定义插件时,需要把自定义好的插件打成 jar放在此目录。 【 Pwd 】存放Kettle配置集群时所需要的配置文件与加密文件。 【 Samples 】存放Kettle自带的一些Job与Trans实例。 【 Simple-jndi 】存放Kettle使用JNDI方式连接数据源方式的文件 存放目录。目录下的jdbc.properties配置文件中有相应的实例提供 参考。 【 Ui 】存放Kettle初始化使用到的图片及配置信息。 Kettle 菜单介绍-transformation Main Tree菜单列出的是一个 transformation中基本的属性, 可以通过各个节点来查看。 DB连接:显示当前transformation 中的数据库连接,每一个 transformation的数据库连接都需要 单独配置。 Steps:一个transformation中应用 到的环节列表 Hops:一个transformation中应用 到的节点连接列表 转换的菜单介绍: Kettle 菜单介绍-transformation Core Objects菜单列出的是 transformation中可以调用 的环节列表,可以通过鼠标 拖动的方式对环节进行添加。 Input:输入环节 Output:输出环节 Lookup:查询环节 Transform:转化环节 Joins:连接环节 Scripting:脚本环节 转换的菜单介绍: Kettle 菜单介绍-transformation 每一个环节可以通过鼠标拖动来将环节添加到主窗 口中。 并可通过shift+鼠标拖动,实现环节之间的连接。 Kettle 菜单介绍-transformation 转换的常用环节介绍: Kettle 菜单介绍-job Main Tree菜单列出的是一 个Job中基本的属性,可以 通过各个节点来查看。 DB连接:显示当前Job中的数据 库连接,每一个Job的数据库连接 都
03-09
### Kettle ETL工具使用教程 #### 定义与概述 Kettle 是一款开源的数据集成工具,支持完整的 ETL(Extract-Transform-Load)流程。该工具能够帮助用户轻松完成从不同数据源抽取、转换到目标数据库加载的任务[^1]。 #### 用户手册作为入门资源 对于初次接触 Kettle 的使用者而言,官方提供的《用户手册》是非常重要的学习材料。这份文档不仅涵盖了安装配置的基础知识,还包含了创建首个作业的具体步骤以及常见问题解答等内容。通过阅读这部分内容可以快速上手基本功能的操作方法[^2]。 #### 开发者指南深入解析 当希望进一步掌握更高级特性时,《开发指南》将是不可或缺的参考资料之一。它详细描述了如何利用 Java 编程接口扩展插件功能;同时也介绍了有关性能优化方面的技巧,使得复杂项目得以高效运行。 #### 实际应用场景举例说明 假设存在这样一个需求场景:某电商平台每天都会产生大量订单记录存储于 MySQL 中,现在需要定期把这些信息同步至 Hadoop 集群内的 Hive 表里用于后续分析工作。此时就可以借助 Kettle 来实现这一目的: 1. **建立连接** - 创建一个新的 Transformation 文件,在其中定义好两个数据库链接节点分别指向本地MySQL实例和远程HiveServer。 2. **设计转换逻辑** - 添加 Table Input 组件读取原始表中的字段; - 插入必要的过滤器组件 Filter Rows 对特定条件下的记录进行筛选; - 利用 Calculator 或其他算子执行数值计算任务如求总金额等; - 应用 Value Mapper 进行编码映射调整某些列的内容格式使之符合目的地要求; - 设置 Sort Rows 排序确保最终输出有序排列; - 将经过上述一系列加工后的结果集送入最后一步——Table Output 写回到指定位置。 ```sql -- SQL查询语句片段展示 SELECT order_id, customer_name, product_list, total_price FROM orders WHERE date >= '2023-09-01'; ``` 以上述方式构建起来的工作流便能自动化地完成整个ETL过程,并且可以根据实际业务变化灵活修改各环节参数设置以适应新的情况。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值