kettle 学习小结

kettle 学习总结

What is ETL

ETL

Extraction-Transformation-Loading的缩写,中文名称为数据提取、转换和加载。 ETL工具有:OWB(Oracle Warehouse Builder)、ODI(Oracle Data Integrator)、Informatic PowerCenter、Trinity、AICloudETL、DataStage、Repository Explorer、Beeload、Kettle、DataSpider
目前,ETL工具的典型代表有:Informatica、Datastage、OWB、微软DTS、Beeload、Kettle……
开源的工具有eclipse的etl插件。cloveretl.

数据集成:快速实现ETL
ETL的质量问题具体表现为正确性、完整性、一致性、完备性、有效性、时效性和可获取性等几个特性。而影响质量问题的原因有很多,由系统集成和历史数据造成的原因主要包括:业务系统不同时期系统之间数据模型不一致;业务系统不同时期业务过程有变化;旧系统模块在运营、人事、财务、办公系统等相关信息的不一致;遗留系统和新业务、管理系统数据集成不完备带来的不一致性。
实现ETL,首先要实现ETL转换的过程。它可以集中地体现为以下几个方面:
- 空值处理:可捕获字段空值,进行加载或替换为其他含义数据,并可根据字段空值实现分流加载到不同目标库。
- 规范化数据格式:可实现字段格式约束定义,对于数据源中时间、数值、字符等数据,可自定义加载格式。
- 拆分数据:依据业务需求对字段可进行分解。例,主叫号 861082585313-8148,可进行区域码和电话号码分解。
- 验证数据正确性:可利用Lookup及拆分功能进行数据验证。例如,主叫号861082585313-8148,进行区域码和电话号码分解后,可利用Lookup返回主叫网关或交换机记载的主叫地区,进行数据验证。
- 数据替换:对于因业务因素,可实现无效数据、缺失数据的替换。
- Lookup:查获丢失数据 Lookup实现子查询,并返回用其他手段获取的缺失字段,保证字段完整性。
- 建立ETL过程的主外键约束:对无依赖性的非法数据,可替换或导出到错误数据文件中,保证主键唯一记录的加载。

开源ETL工具之Kettle介绍
What

起源
Kettle是一个Java编写的ETL工具,主作者是Matt Casters,2003年就开始了这个项目,最新稳定版为7.1。
2005年12月,Kettle从2.1版本开始进入了开源领域,一直到4.1版本遵守LGPL协议,从4.2版本开始遵守Apache Licence 2.0协议。
Kettle在2006年初加入了开源的BI公司Pentaho, 正式命名为:Pentaho Data Integeration,简称“PDI”。
2017年9月20日起,Pentaho已经被合并于日立集团下的新公司: Hitachi Vantara。
总之,Kettle可以简化数据仓库的创建,更新和维护,使用Kettle可以构建一套开源的ETL解决方案。

架构
Kettle是一个组件化的集成系统,包括如下几个主要部分:
1.Spoon:图形化界面工具(GUI方式),Spoon允许你通过图形界面来设计Job和Transformation,可以保存为文件或者保存在数据库中。
也可以直接在Spoon图形化界面中运行Job和Transformation,
2.Pan:Transformation执行器(命令行方式),Pan用于在终端执行Transformation,没有图形界面。
3.Kitchen:Job执行器(命令行方式),Kitchen用于在终端执行Job,没有图形界面。
4.Carte:嵌入式Web服务,用于远程执行Job或Transformation,Kettle通过Carte建立集群。
5.Encr:Kettle用于字符串加密的命令行工具,如:对在Job或Transformation中定义的数据库连接参数进行加密。

基本概念
1.Transformation:定义对数据操作的容器,数据操作就是数据从输入到输出的一个过程,可以理解为比Job粒度更小一级的容器,我们将任务分解成Job,然后需要将Job分解成一个或多个Transformation,每个Transformation只完成一部分工作。
2.Step:是Transformation内部的最小单元,每一个Step完成一个特定的功能。
3.Job:负责将Transformation组织在一起进而完成某一工作,通常我们需要把一个大的任务分解成几个逻辑上隔离的Job,当这几个Job都完成了,也就说明这项任务完成了。
4.Job Entry:Job Entry是Job内部的执行单元,每一个Job Entry用于实现特定的功能,如:验证表是否存在,发送邮件等。可以通过Job来执行另一个Job或者Transformation,也就是说Transformation和Job都可以作为Job Entry。
5.Hop:用于在Transformation中连接Step,或者在Job中连接Job Entry,是一个数据流的图形化表示。

在Kettle中Job中的JobEntry是串行执行的,故Job中必须有一个Start的JobEntry;Transformation中的Step是并行执行的。

Why

组件对比
目前,ETL工具的典型代表有:

  • 商业软件:Informatica PowerCenter,IBM InfoSphere DataStage,Oracle Data Integrator,Microsoft SQL Server Integration Services等
  • 开源软件:Kettle,Talend,Apatar,Scriptella等
  • 纯java编写,可以跨平台运行,绿色无需安装,数据抽取高效稳定。

  • 相对于传统的商业软件,Kettle是一个易于使用的,低成本的解决方案。

  • Spoon是基于SWT(SWT使用了本地操作系统的组件库,性能更好,界面更符合本地操作系统的风格)开发的,支持多平台:

Microsoft Windows: all platforms since Windows 95, including Vista
Linux GTK: on i386 and x86_64 processors, works best on Gnome
Apple's OSX: works both on PowerPC and Intel machines
Solaris: using a Motif interface (GTK optional)
AIX: using a Motif interface
HP-UX: using a Motif interface (GTK optional)
FreeBSD: preliminary support on i386, not yet on x86_64

Kettle使用场景
Migrating data between applications or databases 在应用程序或数据库之间进行数据迁移
Exporting data from databases to flat files 从数据库导出数据到文件
Loading data massively into databases 导入大规模数据到数据库
Data cleansing 数据清洗
Integrating applications 集成应用程序

还可以在这里了解详细

kettle 各个版本的比较 详见 https://blog.csdn.net/Q1059081877Q/article/details/80525633

7.1 版本之后的资源库链接换了地方了
Alt text
以前 在工具 –> 资源库新建 –> 可以新建资源库 图上我是有链接后的没有链接的那里是一个按钮 connect

kettle 安装与下载
在装之前咱们需要引入一个概念 : kettle资源库

一、Kettle资源库概述

1、kettle资源库保存的是Kettle元数据。
2、资源库包括文件资源库、数据库资源库。在服务端新建资源库,只能使用数据库资源库。
3、不使用资源库:直接保存为ktr或kjb文件。

二、如何选择资源库

(一)数据库资源库的缺点

1、不能存储转换或作业的多个版本。
2、严重依赖于数据库的锁机制来防止工作丢失。
3、 没有考虑到团队开发,开发人员不能锁住自己开发的某个作业。

(二)文件资源库的缺点

1、对象(如转换、作业、数据库连接等对象)之间的关联关系难以处理,所以删除、重命名等操作会比较麻烦。
2、没有版本历史。
3、难以进行团队开发。
不使用资源库:使用svn进行文件版本控制。

三、管理资源库

1、ETL开发的几个阶段:开发、测试、确认、发布。
2、各阶段对应的资源库:开发资源库、测试(确认)资源库、发布资源库。
3、各阶段推进:
(1)从开发资源库到测试资源库:注意命名规则。由一个人统一发布,避免冲突。
两种移植方法:断开重连、导出/导入。
(2)从测试(确认)资源库到发布资源库: 导出/导入
不使用资源库SVN版本控制,测试打tag(标签),发布建branch(分支)。

四、资源库参数化

(一)为什么要参数化。

在资源库之间移植作业时,因为各个阶段的环境不一样,在作业里使用的数据库连接等元数据不能硬编码。

(二)参数化的方法

1、kettle.properties,文件位于java的user.home目录下。
2、自定义properties文件,通过属性文件输入步骤读取。

地址详见 https://blog.csdn.net/Q1059081877Q/article/details/80526593

最新8.1 的下载在 https://jaist.dl.sourceforge.net/project/pentaho/Pentaho%208.1/client-tools/pdi-ce-8.1.0.0-365.zip

其他的直接在官网可以直接下载 不过文件比价大 下载比较慢。

kettle 要求jdk 1.7 以上。你的环境变量要设置好 。不过对于java 的我们这些小case了

下载完以后 解压 pdi-ce-8.1.0.0-365.zip
进入D:\xueqyImportant\pdi-ce-8.1.0.0-365\data-integration

运行 spoon.bat 就可以了
在最开始我们要新建 资源库 一般我们在选择资源库种类的我都是选择第一个 资源库可以存我们的数据库连接 job转换的的各个步骤等详细信息 如果没有资源库 数据库你就要每个转换都新建数据库连接这样很麻烦
资源库最原始的用户名密码是admin admin
可以自己在数据库加 他的 加密明文密码 可以自己设置 方法是 密码可以通过 https://blog.csdn.net/Q1059081877Q/article/details/80497817 设置

不过在你链接数据库的时候可能会报错 没有加相应的驱动文件 mysql的驱动jar包

kettle 集群开发
https://blog.csdn.net/u013434750/article/details/60958990

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Kettle是一种数据集成工具,用于将不同来源的数据集成到目标系统中。它提供了一种简单且灵活的方式来提取、转换和加载数据。Kettle主要用于数据仓库建设、ETL(提取、转换和加载)流程等数据集成方面的工作。 Kettle学习资料可以通过多种渠道获取。首先,官方网站提供了详细且全面的文档和教程,包括Kettle的安装、配置、使用和最佳实践等内容。通过仔细阅读官方文档,我们可以了解Kettle的功能、特性和工作原理。 其次,互联网上有许多关于Kettle的教学视频和博客文章可供学习。这些教学资源可以帮助我们更好地理解Kettle的各种组件和功能,并提供实际应用示例和案例分析。 此外,一些在线教育平台也提供了Kettle的相关课程,通过在线学习可以获得系统的知识和实践经验。这些课程通常包括理论讲解、实践演示和练习项目,有助于培养学员的数据集成技能。 最后,参加Kettle的培训课程和工作坊也是一个很好的学习途径。这些培训通常由经验丰富的讲师主持,通过实践操作和案例讨论帮助学员快速掌握Kettle的应用技巧和解决问题的能力。 总之,学习Kettle需要通过多种途径获取资料,包括官方文档、网络教学资源、在线课程和培训等。通过系统学习和实践,我们可以掌握Kettle的数据集成技术,提高工作效率并应对复杂的数据处理任务。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值