大数据-ETL工具:Kettle【单机版】【整合各类文件格式、Hadoop系统】【使用图形化的方式定义ETL程序和工作流】【Window上设计ETL流程--上传Job文件-->Linux系统】

本文详细介绍了开源ETL工具Kettle的使用,包括Kettle的概念、下载、部署和界面介绍。通过实例展示了如何将CSV文件中的数据转换并复制到Excel文件,以及Kettle如何与Hadoop和Hive环境整合。文中还涵盖了转换、步骤、数据行、输入输出组件、整合大数据平台等方面的内容,提供了实际操作步骤和配置,适合初学者快速上手。
摘要由CSDN通过智能技术生成

ETL,是英文 Extract-Transform-Load 的缩写,用来描述将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至目的端的过程。(数据仓库结构)通俗的说法就是从数据源抽取数据出来,进行清洗加工转换,然后加载到定义好的数据仓库模型中去。

ETL的目的是将企业中的分散、零乱、标准不统一的数据整合到一起,为企业的决策提供分析依据。ETL是BI项目重要的一个环节,其设计的好坏影响生成数据的质量,直接关系到BI项目的成败。

用ETL工具就可以解决。它的优点有:

  • 支持多种异构数据源的连接。(部分)

  • 图形化的界面操作十分方便。

  • 处理海量数据速度快、流程更清晰等。

我们常用的 ETL 工具有Sqoop、Kettle、Nifi:

  1. Kettle虽然功能较完善,但当处理大数据量的时候瓶颈问题比较突出;
  2. NiFi的功能强大,且支持大数据量操作,但NiFi集群是独立于Hadoop集群的,需要独立的服务器来支撑,强大也就意味着有上手门槛,学习难度大,用人成本高;
  3. Sqoop专为关系型数据库和Hadoop之间的ETL而生,支持海量数据,符合项目的需求,且操作简单门槛低。

Sqoop与Kettle比较
在这里插入图片描述

  • 如果需求只是将关系型数据库数据(Oracle、MySQL)迁移至非关系型数据库(HDFS、Hbase、Hive),推荐使用Sqoop工具,足够满足需求
  • 如果是将不同种类的关系型数据库(Oracle、MySQL、SQL server)整合到同一个关系型数据库中,如MySQL。推荐使用Kettle,有GUI界面操作简单。

一、Kettle简介

Kettle是一款国外开源的ETL工具,纯java编写,可以在Window、Linux、Unix上运行,绿色无需安装,数据抽取高效稳定。

Kettle 中文名称叫水壶,该项目的主程序员MATT 希望把各种数据放到一个壶里,然后以一种指定的格式流出。

Kettle这个ETL工具集,它允许你管理来自不同数据库的数据,通过提供一个图形化的用户环境来描述你想做什么,而不是你想怎么做。

Kettle中有两种脚本文件,transformation和job,transformation完成针对数据的基础转换,job则完成整个工作流的控制。

Kettle(现在已经更名为PDI,Pentaho Data Integration-Pentaho数据集成)。

1、Kettle概念模型

在这里插入图片描述
Kettle的执行分为两个层次(2种脚本):Job(作业)和Transformation(转换)。

2、kettle的核心组件

在这里插入图片描述

在这里插入图片描述

3、Kettle的结构

  • Spoon:是构建ETL Jobs和Transformations的工具。Spoon以拖拽的方式图形化设计,能够通过spoon调用专用的数据集成引擎或者集群。
  • Data Integration Server:是一个专用的ETL Server,它的主要功能有:

在这里插入图片描述

二、Kettle下载

下载网址:https://community.hitachivantara.com/s/article/data-integration-kettle

在这里插入图片描述

1、Kettle目录文件

在这里插入图片描述

classes:生命周期监听、注册表扩展、日志的配置文件
Data Integration.app:数据集成应用
Data Service JDBC Driver: JDBC驱动程序的数据服务
docs:文档
launcher:Kettle的启动配置
lib:支持库 jar包
libswt:Kettle图形库jar
plugins:插件
pwd:kettle集群配置文件
samples:自带例子
simple-jndi:jndi连接配置
system:系统目录
ui:软件界面

在这里插入图片描述

Carte.bat/Carte.sh:启动集群命令

Encr.bat/encr.sh:kettle提供的加密算法

Import.bat/import.sh:导入命令

Kitchen.bat/kitchen:运行Job的命令

Pan.bat/pan.sh:运行转换的命令

三、Kettle部署

1、安装JDK

由于Kettle是Java语言开发的,该软件的允许需要Java运行环境的依赖。
需要先安装JDK,准备好Java软件的运行环境。

在这里插入图片描述

2、配置环境变量

JAVA_HOME:JDK的安装目录

KETTLE_HOME:kettle的解压目录

在这里插入图片描述

在这里插入图片描述

3、运行Spoon

在这里插入图片描述
在这里插入图片描述

四、Kettle界面简介

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

五、Kettle快速体验:把数据从CSV文件复制到Excel文件

kettle数据流结构图
在这里插入图片描述

把数据从CSV文件(ketttle测试数据\用户数据源\user.csv)抽取到Excel文件

数据源:

id name age gender province city region phone birthday hobby 注册时间
392456197008193000 张三 20 0 北京市 昌平区 回龙观 18589407692 1970-08-19 美食;篮球;足球 2018-08-06 09:44:43
267456198006210000 李四 25 1 河南省 郑州市 郑东新区 18681109672 1980-06-21 音乐;阅读;旅游 2017-04-07 09:14:13
892456199007203000 王五 24 1 湖北省 武汉市 汉阳区 18798009102 1990-07-20 写代码;读代码;算法 2016-06-08 07:34:23
492456198712198000 赵六 26 2 陕西省 西安市 莲湖区 18189189195 1987-12-19 购物;旅游 2016-01-09 19:15:53
392456197008193000 张三 20 0 北京市 昌平区 回龙观 18589407692 1970-08-19 美食;篮球;足球 2018-08-06 09:44:43
392456197008193000 张三 20 0 北京市 昌平区 回龙观 18589407692 1970-08-19 美食;篮球;足球 2018-08-06 09:44:43

实现步骤:

1、在Kettle中新建转换

2、拖拽一个CSV输入组件、一个Excel输出组件、并按住Shift拖动鼠标连接两个组件

3、配置CSV输入组件、Excel输出组件
在这里插入图片描述

1、新建转换

新建转换
在这里插入图片描述

2、转换控件

拖拽一个CSV输入组件、一个Excel输出组件、并按住Shift拖动鼠标连接两个组件
在这里插入图片描述

组件架构图
在这里插入图片描述

3、配置CSV输入组件

  • 选择要进行导入的CSV数据源
  • 点击 「获取字段」,读取CSV中的列
  • 点击 「预览」,浏览CSV中的数据

在这里插入图片描述
在这里插入图片描述

4、配置Excel组件

指定输出Excel文件的位置
在这里插入图片描述

5、运行

点击 三角形 箭头执行

执行
在这里插入图片描述

6、执行结果

6.1 日志

在这里插入图片描述

6.2 步骤度量

在这里插入图片描述

6.3 Metrics

在这里插入图片描述

6.4 Preview data

在这里插入图片描述

六、Kettle核心概念

Kettle可以被归类为可视化编程语言(Visula Programming Languages,VPL),因为Kettle可以使用图形化的方式定义复杂的ETL程序和工作流。

Kettle里的图就是转换作业

可视化编程一直是Kettle里的核心概念,它可以让你快速构建复杂的ETL作业和减低维护工作量。它通过隐藏很多技术细节,使IT领域更贴近于商务领域。

1、转换

在这里插入图片描述

在这里插入图片描述
转换(transaformation)是ETL解决方案中最主要的部分,它处理抽取、转换、加载各种对数据行的操作。

转换包含一个或多个步骤(step),如读取文件、过滤数据行、数据清洗或将数据加载到数据库。

转换里的步骤通过跳(hop)来连接,跳定义一个单向通道,允许数据从一个步骤向另一个步骤流动。

在Kettle里,数据的单位是行,数据流就是数据行从一个步骤到另一个步骤的移动。

数据流有的时候也被称之为记录流。

2、Step步骤

在这里插入图片描述

步骤(控件)是转换里的基本的组成部分。

快速入门的案例中就存在两个步骤,“CSV文件输入”和“Excel输出”。

一个步骤有如下几个关键特性:
①步骤需要有一个名字,这个名字在转换范围内唯一。
②每个步骤都会读、写数据行(唯一例外是“生成记录”步骤,该步骤只写数据)。
③步骤将数据写到与之相连的一个或多个输出跳,再传送到跳的另一端的步骤。
④大多数的步骤都可以有多个输出跳。一个步骤的数据发送可以被被设置为分发和复制,分发是目标步骤轮流接收记录,复制是所有的记录被同时发送到所有的目标步骤。

在这里插入图片描述

3、Hop跳

在这里插入图片描述

跳就是步骤之间带箭头的连线,跳定义了步骤之间的数据通路。

跳实际上是两个步骤之间的被称之为行集的数据行缓存(行集的大小可以在转换的设置里定义)。

当行集满了,向行集写数据的步骤将停止写入,直到行集里又有了空间。

当行集空了,从行集读取数据的步骤停止读取,直到行集里又有可读的数据行。

4、数据行

4.1 数据行-数据类型

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值