热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Kettle入门介绍与Windows中的基本操作(详细图文并茂)

目录一、Kettle介绍二、Kettle安装、配置1、下载Kettle2、解压Kettle3、双击spoon.bat启动spoon启动时间有点久耐心等待三、Kettle

 

目录

一、Kettle介绍

二、Kettle安装、配置

1、下载Kettle

2、解压Kettle

3、双击spoon.bat 启动spoon     启动时间 有点久  耐心等待

三、Kettle入门案例

1、需求 

2、 数据源

3、 具体实现

3.1 拖csv文件输入,Excel输出

3.2  shift 按住 鼠标左键单击 连线

3.3 单击 CSV 输入文件,Excel 输出,设置文件信息 ​

3.4 启动执行

四、Kettle输入/输出组件

1、输入组件

4.1 JOSN数据文件输入

4.2 表输入

4.3 生成记录

2、输出组件

4.4 文本文件输出

4.5 表输出

4.6 插入更新




一、Kettle介绍

对于企业或行业应用来说,经常会遇到各种数据的处理,转换,迁移,掌握一种etl工具的使用,必不可少,这里要学习的ETL工具是——Kettle,现在已经更名为PDI


  • Kettle是一款国外开源的ETL工具,纯java编写,可以在Window、Linux、Unix上运行,绿色无需安装
  • Kettle 中文名称叫水壶,该项目的主程序员MATT 希望把各种数据放到一个壶里,然后以一种指定的格式流出
  • Kettle允许管理来自不同数据库的数据,提供一个图形化的用户环境来描述想做什么,无需关心怎么做

  




二、Kettle安装、配置

环境要求:


  • Windows下安装、配置好JDK1.8

1、下载Kettle


  • 资料\安装包\pdi-ce-8.2.0.0-342.zip  

    下载 地址:http://mirror.bit.edu.cn/pentaho/Pentaho%208.2/client-tools/


2、解压Kettle


3、双击spoon.bat 启动spoon     启动时间 有点久  耐心等待




三、Kettle入门案例


1、需求 

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


2、 数据源:

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

3、 具体实现


3.1 拖csv文件输入,Excel输出


3.2  shift 按住 鼠标左键单击 连线

  连好  线后 选择 主输出步骤  ,此处的 连线为 蓝色, 单击 连线 变为 灰色 就不能执行了


3.3 单击 CSV 输入文件,Excel 输出,设置文件信息 



3.4 启动执行

执行完成后显示 转换成功 

 查看 输出的文件


   下面的输出的 Excel 表中的数据 和 我们输入的 CSV 文件 字段 的还是 有些出入, 这个要在输入的 数据字段 类型修改即可


对 输出到 Excel 表中的 字段类型  进行控制

我们 再次查看 输出结果




四、Kettle输入/输出组件


1、输入组件


4.1 JOSN数据文件输入

需求: 将 user.json  导入到 Excel 中 

1. user.json 

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

2. 指定JSON 文件数据源 


json 文件 选择之后,一定要选择字段,  字段 输出可以 自由选择




4.2 表输入

需求:将 MySQL 数据库中 user 表 中的数据 抽取到 Excel 文件中

1. 完成  MySQL 和 kettle 整合  ,之后将 kettle 重启

         在 kettle 的 lib  目录 下  添加  jar 包

2. 在 MySQL 中 创建 t_user 表

CREATE DATABASE /*!32312 IF NOT EXISTS*/`test` /*!40100 DEFAULT CHARACTER SET utf8 */;USE `test`;/*Table structure for table `t_user` */DROP TABLE IF EXISTS `t_user`;CREATE TABLE `t_user` (`id` tinytext,`name` tinytext,`age` double DEFAULT NULL,`gender` double DEFAULT NULL,`province` tinytext,`city` tinytext,`region` tinytext,`phone` double DEFAULT NULL,`birthday` tinytext,`hobby` tinytext,`register_date` datetime DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;/*Data for the table `t_user` */insert into `t_user`(`id`,`name`,`age`,`gender`,`province`,`city`,`region`,`phone`,`birthday`,`hobby`,`register_date`) values ('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'),('892456199007203000','赵六',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');

3. 配置表输入,新建数据库连接

4. 选择  t_user 表,并获取 SQL查询语句


5.配置 Excel 输出组件, 指定 Excel输出位置 



4.3 生成记录


   数据仓库中绝大数的数据都是业务系统生成的动态数据,但是其中一部分维度的数据不是动态的,比如:日期维度。静态 维度数据就可以提前生成。


需求:往 Excel 文件中插入1000条记录:id为1,name为 kangna,age为18

1. 拖入生成记录组件,输出 Excel 组件,配置  生成记录组件

查看结果

生成记录只能生成空行或者 固定的记录


2、输出组件


4.4 文本文件输出

需求:从mysql数据库的test库的t_user表 抽取数据到文本文件中

   跟 前面的 MySQL 到  Excel 中 差不多。


4.5 表输出

1. JSON 输入配置

2. 表输出配置

表输出的时候,如果表不存在,则 点击 生成 表




4.6 插入更新

插入更新就是把数据库已经存在的记录与数据流里面的记录进行比对


  • 如果不同就进行更新
  • 如果记录不存在,则会插入数据删除

需求:从 new_json 表中读数据,并插入或更新到MySQL t_user_1 中

1. 拖 json 输入 组件,配置 插入更新组件

2. 选择  以 id  作为  更新查询的 字段

 


谢谢点赞和关注


推荐阅读
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • 原文地址:https:www.cnblogs.combaoyipSpringBoot_YML.html1.在springboot中,有两种配置文件,一种 ... [详细]
  • Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOMEbinjava–option来启 ... [详细]
  • centos安装Mysql的方法及步骤详解
    本文介绍了centos安装Mysql的两种方式:rpm方式和绿色方式安装,详细介绍了安装所需的软件包以及安装过程中的注意事项,包括检查是否安装成功的方法。通过本文,读者可以了解到在centos系统上如何正确安装Mysql。 ... [详细]
  • Gitlab接入公司内部单点登录的安装和配置教程
    本文介绍了如何将公司内部的Gitlab系统接入单点登录服务,并提供了安装和配置的详细教程。通过使用oauth2协议,将原有的各子系统的独立登录统一迁移至单点登录。文章包括Gitlab的安装环境、版本号、编辑配置文件的步骤,并解决了在迁移过程中可能遇到的问题。 ... [详细]
  • Servlet多用户登录时HttpSession会话信息覆盖问题的解决方案
    本文讨论了在Servlet多用户登录时可能出现的HttpSession会话信息覆盖问题,并提供了解决方案。通过分析JSESSIONID的作用机制和编码方式,我们可以得出每个HttpSession对象都是通过客户端发送的唯一JSESSIONID来识别的,因此无需担心会话信息被覆盖的问题。需要注意的是,本文讨论的是多个客户端级别上的多用户登录,而非同一个浏览器级别上的多用户登录。 ... [详细]
  • 本文介绍了在sqoop1.4.*版本中,如何实现自定义分隔符的方法及步骤。通过修改sqoop生成的java文件,并重新编译,可以满足实际开发中对分隔符的需求。具体步骤包括修改java文件中的一行代码,重新编译所需的hadoop包等。详细步骤和编译方法在本文中都有详细说明。 ... [详细]
  • 本文讨论了在shiro java配置中加入Shiro listener后启动失败的问题。作者引入了一系列jar包,并在web.xml中配置了相关内容,但启动后却无法正常运行。文章提供了具体引入的jar包和web.xml的配置内容,并指出可能的错误原因。该问题可能与jar包版本不兼容、web.xml配置错误等有关。 ... [详细]
  • 本文由编程笔记#小编为大家整理,主要介绍了logistic回归(线性和非线性)相关的知识,包括线性logistic回归的代码和数据集的分布情况。希望对你有一定的参考价值。 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • 本文介绍了在SpringBoot中集成thymeleaf前端模版的配置步骤,包括在application.properties配置文件中添加thymeleaf的配置信息,引入thymeleaf的jar包,以及创建PageController并添加index方法。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • 使用在线工具jsonschema2pojo根据json生成java对象
    本文介绍了使用在线工具jsonschema2pojo根据json生成java对象的方法。通过该工具,用户只需将json字符串复制到输入框中,即可自动将其转换成java对象。该工具还能解析列表式的json数据,并将嵌套在内层的对象也解析出来。本文以请求github的api为例,展示了使用该工具的步骤和效果。 ... [详细]
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
  • 本文介绍了RPC框架Thrift的安装环境变量配置与第一个实例,讲解了RPC的概念以及如何解决跨语言、c++客户端、web服务端、远程调用等需求。Thrift开发方便上手快,性能和稳定性也不错,适合初学者学习和使用。 ... [详细]
author-avatar
笑看天下
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有