【ETl工具Kettle的使用技巧】

前言:
💞💞大家好,书生♡,今天主要和大家分享一下ETL的工具Kettle的详细使用,希望对大家有所帮助。感谢大家关注点赞。
💞💞前路漫漫,希望大家坚持下去,不忘初心,成为一名优秀的程序员

个人主页⭐: 书生♡
gitee主页🙋‍♂:闲客
专栏主页💞:大数据开发
博客领域💥:大数据开发,java编程,前端,算法,Python
写作风格💞:超前知识点,干货,思路讲解,通俗易懂
支持博主💖:关注⭐,点赞、收藏⭐、留言💬

1.kettle的介绍

在这里插入图片描述

1.1 数据库和数据仓库

  我们之前学过MySQL的基本语法,了解什么是MySQL,那大家知道什么是数据仓吗?
  我们先来了解一下数据库与数据仓的区别:

数据库: mysql 对于数据进行增删改查操作,一般都是业务数据库

  • 需要数据高速处理,及时响应
  • 对数据的安全性有极高的要求
  • 数据内容,数据形式比较单一.
  • 数据库一般是app或者用户通过接口访问.

数据仓库: 一般是用于数据分析的数据集中平台

  • 将多重数据源(业务数据库, 日志信息, 备份文件,爬虫文件,问卷调查等)的数据集中存放在数据仓库中,便于分析统计
  • 数据仓库更加重视的是数据的吞吐量.对及时响应和高效读写没有太高的要求.
  • 数据仓库一般是数据业务人员使用

1.2 什么是ETL

ETL是英文Extract-Transform-Load的缩写,用来描述将数据从源端经过抽取(extract)、转换(transform)、加载(load)至目的端的过程,它能够对各种分布的、异构的源数据(如关系数据)进行抽取,按照预先设计的规则将不完整数据、重复数据以及错误数据等“脏"数据内容进行清洗,得到符合要求的“干净”数据,并加载到数据仓库中进行存储,这些“干净”数据就成为了数据分析、数据挖掘的基石。

抽取(extract)、转换(transform)、加载(load)

E: extract 抽取数据

从多种不同的数据源中抽取数据(从每一个数据源中抽取数据的方式不一样)

T: transform 转换数据

数据转换一般分为两步骤:
数据处理:数据的拆分,合并,单位统一,统一逻辑等等
数据清洗:处理异常值,缺失值,重复值 (不破坏数据的客观规律)

L: load 数据加载

  • 一般是将数据加载到数据仓库中,但是也可以加载到备份文件或者日志记录中.
  • 在开发中,重要的数据信息,我们通常会保存不止一份(数据仓库存储+文件备份)

2. Windows下安装Kettle

  我们在安装kettle之前,首先要安装jdk。
为什么要安装jdk呢?

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

什么是jdk?

jdk : java 开发工具包 (java开发环境)

jre : java 运行时环境 (java运行环境)

jvm : java 虚拟机环境 (java跨平台基础)

在这里插入图片描述
我们在下载好jdk之后,我们需要添加jdk的环境变量:

  1. 安装jdk8, 存放到指定位置即可,但是务必要能够找到该软件
  2. 找到java.exe文件的文件路径,并复制该文件路径
  3. 添加环境变量,在搜索栏中搜索"环境变量", 点击下方查询结果打开系统环境变量
  4. 点击环境变量进入编辑界面
  5. 点击编辑系统环境变量 >> 新建 >> 输入变量信息后点击确定
  6. 双击Path添加新的环境变量%JAVA_HOME%bin\,点击确定,保存环境变量修改内容
  7. 验证环境变量的添加,在终端窗口输入java -version如果能够输出版本信息,则java环境变量配置成功.

3. 使用kettle进行操作

在我们安装好jdk的配置环境以后,我们就可以下载安装
在这里插入图片描述

3.1 将txt文件抽取到excel中

  1. 双击转换啊,创建新的标签页(或者点击文件–新建–转换/也可以使用ctrl +n快速创建)
    在这里插入图片描述
    在这里插入图片描述

  2. 从输入对象中拖拽 文本文件输入和从输出对象中拖拽excel输出到操作区域。
    在这里插入图片描述

  3. 点击shift从文本文件输入拖转一个箭头到excel输出
    在这里插入图片描述

  4. 设置文本文件输入内容
    4.1 双击进入文本文件输入编辑, 点击浏览,选择我们要作为输入源的文本文件
    在这里插入图片描述
    4.2 点击增加,将文件路径,加载到选中的文件中
    在这里插入图片描述
    4.3 修改内容中的分隔符和编码格式
    在这里插入图片描述
    4.4 选择字段, 点击获取字段,查看字段的类型和格式
    在这里插入图片描述
    4.5 获取字段信息后, 点击预览记录, 如果出现与预期不符的数据类型或格式,在上方字段处修改后,重新预览
    在这里插入图片描述

  5. 设置excel输出内容
    5.1 双击进入excel输出编辑.点击浏览, 选择excel输出位置,编辑输出文件名,点击保存
    在这里插入图片描述
    5.2 删掉扩展名信息
    在这里插入图片描述

5.3 选择格式, 设置输出excel的样式
在这里插入图片描述

5.4 选择字段,点击获取字段,查看字段与预期格式和数据类型是否匹配,不匹配则在字段内容中修改,修改后点击确定
在这里插入图片描述

5.6. 重新保存并执行脚本, 查看最终输出结果,发现结果已经正常显示
在这里插入图片描述

  1. 字段格式表示方式

# 代表以字符串形式输出

0 代表数字仅保留整数部分

0.00 代表保留两位小数

yyyy-MM-dd 年-月-日格式

yyyy-MM-dd HH:mm:ss 年-月-日 时:分:秒 格式

3.2 将excel表数据抽取到表中

因为 kettle不支持创建数据库, 但是可以创建数据表,所以我们要先创建一个数据库

在这里插入图片描述

  1. 创建一个新的转化脚本, 在kettle中使用ctrl _ n 快速创建(详情见上一个)

  2. 从核心对象中, 将excel输入对象, 和表输出对象拖拽到操作区(下图)

  3. 按住shift从Excel将箭头拖拽到表输出位置, 指定数据的流转方向(下图)
    在这里插入图片描述

  4. 编辑excel输入内容

  • 4.1 双击打开excel输入编辑界面, 点击浏览找到要加载的excel数据,选择成功后点击增加
    在这里插入图片描述
  • 4.2 选择工作表标签, 获取工作表名称, 选择需要的工作表移动到右侧,点击确定
    在这里插入图片描述
  • 4.3 点击获取来自头部数据的字段, 点击预览记录, 查看输出内容时,发现数据格式不正确.
    在这里插入图片描述
  • 4.4 修改数据格式后,点击确定
    在这里插入图片描述
  1. 编辑表输出内容
  • 5.1 双击打开表述出编辑界面, 点击新建, 编辑数据库连接信息,测试连接成功后点击确定.

在这里插入图片描述

如果此时失败:
1.查看服务器有没有开启, 在连接数据库之前,确保node1是开启状态
2.没有放置mysql连接驱动,将mysql驱动包,放置在 安装目录的lib文件夹下即可

  • 5.2 书写目标表名称, 点击下方sql按钮,修改建表语句中的字段类型, 点击执行成功后,确定,完成编辑.
    在这里插入图片描述
  1. 保存脚本数据
  2. 如果我们出现了中文问号问题,就要在mysql连接信息中增加一个键值对
characterEncoding = utf8

在这里插入图片描述

3.3 将mysql表中的数据插入到另一个表中

数据连接共享:
在这里插入图片描述

  1. 将表输入, 和表输出对象拖拽到操作区, 并且按住shift将箭头从表输入连接到表输出
    在这里插入图片描述
  2. 编辑表输入
  • 2.1 获取db连接, 点击下方的获取查询sql语句, 选择对应的表,点击确定.
    在这里插入图片描述
  • 2.2 查询预览,如果没有问题直接点击确定, 表输入编辑完成
    在这里插入图片描述
  1. 编辑表输出内容
    选择数据库连接, 输入目标表名,点击下方的sql进行建表,之后选择确定.
    在这里插入图片描述

  2. 保存脚本文件

  3. 执行脚本文件

  4. 验证mysql中的数据信息

3.4 执行mysql表的插入更新操作

清空t_user1表

truncate table kettle_demo.t_user1;
  1. 将表输入对象和插入/更新对象拖拽到kettle操作区, 按住shift将数据流转方向指定为从表输入 到插入/更新
    在这里插入图片描述
  2. 编辑表输入
    在这里插入图片描述
  3. 编辑插入/更新内容
    选择数据库连接, 在目标表处选择浏览,找到要插入的表,点击确定即可
    在这里插入图片描述
    设置两张表中id值相同,即为一个数据记录, 如果数据记录相同,下方更新字段为Y的数据将会进行更新.
    在这里插入图片描述
    保存并执行脚本文件,将t_user表中的李四年龄修改为30岁
    再次执行脚本文件,对于修改过的数据进行了更新

3.5 switch_case条件判断

在这里插入图片描述
编辑表输入内容(根3.3的是一样的,打开参考上面的)

编辑switch_case流程内容, 先指定条件判断的字段, 并说明不同的case值执行哪一个步骤
在这里插入图片描述
编辑excel输出内容, 确定表的输出位置, 以及字段格式, 删除扩展名(同3.3图)
在这里插入图片描述
保存并执行脚本,验证执行结果是否正确

3.6 设置转换参数

拖拽一个执行SQL脚本
在这里插入图片描述
添加转换参数
在这里插入图片描述
创建sql脚本文件, 在sql语句中,使用${参数名称}设置参数, 并勾选下方的替换参数
在这里插入图片描述
保存脚本后, 执行脚本, 执行时传入转换参数
在这里插入图片描述

4. windows下执行job任务

  • 创建一个作业

在这里插入图片描述

  • 将 start 转换 和 成功 三个标签,拖转到操作区,并使用shift拖转箭头,指明任务方向
  • 在这里插入图片描述
  • 双击转换,添加之前保存的转换脚本
    在这里插入图片描述
    在start处设置循环执行时间为间隔5秒
    在这里插入图片描述
  1. 保存并执行作业

  2. 如果作业需要停止则点击方块即可

💕💕在这篇文章中,我们深入探讨了kettle的相关使用,希望能为读者带来启发和收获。
💖💖感谢大家的阅读,如果您有任何疑问或建议,欢迎在评论区留言交流。同时,也请大家关注我的后续文章,一起探索更多知识领域。
愿我们共同进步,不断提升自我。💞💞💞

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值