Kettle工具入门[通俗易懂]

Kettle工具入门[通俗易懂]Kettle工具入门Kettle工具入门 Kettle是什么? 为什么要用Kettle? 怎么用Kettle? 下载运行 简单应用 表到表转换 json到表的操作 参考 Kettle是什么?Kettle是水壶。“多喝热水”是我们对女朋友美好的祝福。因为未经处理的生水(原始数据),含有各种杂质(脏数据),无法直接饮用(入…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

Kettle工具入门

 

  • Kettle工具入门
    • Kettle是什么?
    • 为什么要用Kettle?
    • 怎么用Kettle?
      • 下载运行
      • 简单应用
        • 表到表转换
        • json到表的操作
    • 参考

 

Kettle是什么?

Kettle是水壶
“多喝热水”是我们对女朋友美好的祝福。因为未经处理的生水(原始数据),含有各种杂质(脏数据),无法直接饮用(入库),为此,我们需要一个水壶(kettle)烧开水。倒入(extract)水壶的生水(原始数据),可能来自很多地方,如趵突泉(数据库)、黑虎泉(excel)、小清河(json)等,这些水只有烧开(transform)后,才能入口(Load)饮用。

当Kettle不再是水壶时,它是一个常用的ETL(Extract-Transform-Load)工具,负责接收抽取的数据,进行转换后,加载到目的端。Kettle应用于以下场景:

  • 不同应用或数据库之间整合数据;
  • 将数据库中的文件导出为文本文件;
  • 大批量数据装载进数据库;
  • 数据清洗;
  • 集成应用相关项目使用。

 

为什么要用Kettle?

Kettle用纯Java编写,跨平台,绿色无需安装,数据抽取高效。Kettle具有下面几个特点,总而言之,牛逼就是了。

  • 使用简单,通过图形界面实现功能,无需编码,面向元数据来设计;
  • 支持多种输入和输出格式,包括文本文件、数据表、以及各种数据库引擎;
  • 转换功能强大。

 

怎么用Kettle?

Kettle有两种脚本文件,Transformation用来完成针对数据的基础转换,Job用来控制整个工作流。

  • Spoon——转换/工作(Transform/Job)设计工具 (GUI)
  • Kitchen——工作(Job)执行器 (命令行)
  • Span——转换(Trasform)执行器 (命令行)

 

下载运行

Kettle是基于Java开发的,因此,在使用之前,你需要配置Java相关的环境。
1、到官网下载需要的版本;
2、解压到目标文件夹;
3、根据不同的环境,运行Spoon.bat/Spoon.sh/Spoon.command,看到熟悉的界面了么,如果你不嫌烦的话,可以把快捷方式添加到桌面上。
Kettle工具入门[通俗易懂]
是不是很简单?
Spoon工作界面

 

简单应用

kettle功能特别强大,不是一时半会儿能学会使用的,下面用几个简单例子,讲述简单应用。

 

表到表转换

背景:某项目数据由公共信息平台以表推送的形式提供,这部分数据和系统设计比较:字段不对应、无主键、人为录入存在特殊字符,无数据字典。针对这种特点,选择ETL工具Kettle作为数据转换工具。应用场景:不同应用或数据库之间整合数据
1、建立转换,文件-新建转换,选择DB连接,根据提示建立新的数据库连接。
Kettle工具入门[通俗易懂]
如果没有相应的数据库驱动,可能会报错,这时候需要下载对应的驱动,放在data/intergration/lib文件夹中,然后重启Spoon;
2、选择核心对象-输入,将表输入选项拖拽到右侧工作窗口;
Kettle工具入门[通俗易懂]
双击表输入窗口,对输入内容进行编辑,选择前面建立的数据库连接,并通过拼写sql或者获取sql的方式,确定输入内容;
Kettle工具入门[通俗易懂]
3、按照2中同样的方式,选择输出,将表输出拖拽到右侧工作窗口;
长按shift,点击表输入,拖拽箭头到表输出,建立两张表之间的联系;
Kettle工具入门[通俗易懂]
4、双击表输出,对内容进行编辑;Kettle工具入门[通俗易懂]
5、成功编辑后,点击执行按钮,一次完整的转换就完成啦
Kettle工具入门[通俗易懂]
入库流程比较简单,实际工作显然不会是这样的,我们为了偷懒,省去了数据转换(Transform)的工作。这部分工作用到的应用较多,多集中在转换文件夹下,在此不做赘述。

 

json到表的操作

背景:在Github上获取了千万级别(其实五百多万)条企业工商数据(详情点击这里),格式有.json/.csv/.xls,字段包括:

 

{
    "name":"企业名称",
    "code":"统一社会信用代码",
    "registrationDay":"注册日期",
    "character":"企业类型",
    "legalRepresentative":"法人代表",
    "capital":"注册资金",
    "businessScope":"经营范围",
    "province":"所在省份",
    "city":"地区",
    "address":"注册地址"
}

为了方便处理这些数据,需要将数据入库。应用场景:大批量数据装载进数据库
1、新建一个转换的Job,建立DB连接,不再赘述;
Kettle工具入门[通俗易懂]
2、根据数据格式,在目标库中建表;

 

DROP TABLE IF EXISTS "public"."ent_registration";
CREATE TABLE "public"."ent_registration" (
  "name" varchar(255) COLLATE "pg_catalog"."default",
  "code" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
  "registrationday" varchar(255) COLLATE "pg_catalog"."default",
  "capital" varchar(255) COLLATE "pg_catalog"."default",
  "legalrepresentative" varchar(255) COLLATE "pg_catalog"."default",
  "character" varchar(255) COLLATE "pg_catalog"."default",
  "businessscope" varchar(10000) COLLATE "pg_catalog"."default",
  "province" varchar(255) COLLATE "pg_catalog"."default",
  "city" varchar(255) COLLATE "pg_catalog"."default",
  "address" varchar(255) COLLATE "pg_catalog"."default"
)
;
COMMENT ON COLUMN "public"."ent_registration"."name" IS '名称';
COMMENT ON COLUMN "public"."ent_registration"."code" IS '统一社会信用代码';
COMMENT ON COLUMN "public"."ent_registration"."registrationday" IS '注册时间';
COMMENT ON COLUMN "public"."ent_registration"."capital" IS '注册资金';
COMMENT ON COLUMN "public"."ent_registration"."legalrepresentative" IS '法人代表';
COMMENT ON COLUMN "public"."ent_registration"."character" IS '企业类型';
COMMENT ON COLUMN "public"."ent_registration"."businessscope" IS '经营范围';
COMMENT ON COLUMN "public"."ent_registration"."province" IS '省份';
COMMENT ON COLUMN "public"."ent_registration"."city" IS '地区';
COMMENT ON COLUMN "public"."ent_registration"."address" IS '注册地址';

3、核心对象里面,建一个json input和表输出,按住shift拖出两者的关联关系;
Kettle工具入门[通俗易懂]
4、编辑【jsoninput】,在【文件或路径】处,写入json文件地址,点击【增加】添加到【选中的文件】,在【选中的文件】中,【通配符】填写.*.*\.json,【包含子目录】选是,此步骤的目的是,指定数据来源为文件夹下所有json数据;
Kettle工具入门[通俗易懂]
5、在字段选项卡中,点击getfields,按照图片所示,选择字段;
Kettle工具入门[通俗易懂]
6、编辑【表输出】,输入【目标表】,选择【指定数据库字段】,获取所有表映射;
Kettle工具入门[通俗易懂]
7、点击运行,数据量大,可能需要多等一会儿。

 

参考

Kettle入门教程
Kettle中文网

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/181133.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Shift 后门 简单学习

    Shift 后门 简单学习https://www.cnblogs.com/BOHB-yunying/p/11695140.html过程参考上文链接提出问题:整个过程并不复杂,但要实现攻击的前提条件,是已经打入目标主机,将C:\windows\system32\sethc.exe替换成C:\windows\system32\cmd.exe,所以这一步到底要如何做到?明白shift后门是如何产生的就是windows系统自带的5次shift键强制打开C:\windows\system32\sethc.exe,为了..

    2022年9月18日
    6
  • leetcode-53最大子序和(离线|分治)「建议收藏」

    leetcode-53最大子序和(离线|分治)「建议收藏」给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例 1:输入:nums = [-2,1,-3,4,-1,2,1,-5,4]输出:6解释:连续子数组 [4,-1,2,1] 的和最大,为 6 。示例 2:输入:nums = [1]输出:1示例 3:输入:nums = [0]输出:0示例 4:输入:nums = [-1]输出:-1示例 5:输入:nums = [-100000]输出:-100000 提示:1

    2022年8月8日
    5
  • JAVA 日期格式化

    最近项目中需要用到SimpleDateFormat格式化日期,但是因为对日期格式的不熟练多花了十分钟左右的时间在日期格式化上面,所以趁着周末外面下着大雨闲着无聊整理一下日期格式问题。日期格式化学习预定义格式日期格式化样式自定义日期格式化预定义格式java提供了预定义的日期格式,预定义的日期格式可以满足绝大多数的场景需要。格式化日期需要两步:1、通过DateFormat.getDate…

    2022年4月6日
    51
  • Python多分类问题pr曲线绘制(含代码)

    Python多分类问题pr曲线绘制(含代码)研究了三天的多分类 pr 曲线问题终于在昨天晚上凌晨一点绘制成功了 现将所学所感记录一下 一来怕自己会忘可以温故一下 二来希望能给同样有疑惑的铁子们一些启迪 下图为我画的 pr 曲线 因为准确度超过了 97 所以曲线很饱和 首先了解一下二分类中的 pr 曲线是怎么画的 p 是 precition 是查准率 也是我们常用到的准确率 r 是 recall 是查全率 也叫召回率 上图为测试结果的混淆矩阵 表示一个数据集上的所有测试结果 其中竖列均为测试结果 即分类器预测概率大于 0 5 为正类 小于 0

    2025年11月24日
    3
  • WIN10系统开机一个WIFI都找不到,网络适配器里没有WLAN驱动,连接不了网络问题【耗时3天测试10多种方法】

    WIN10系统开机一个WIFI都找不到,网络适配器里没有WLAN驱动,连接不了网络问题【耗时3天测试10多种方法】目录1.前言2.出现的问题情况2.1找不到WIFI,连不了网。2.2网络适配器里没有WLAN选项3.解决方法(推荐按顺序进行)。1.先检查WLAN是否存在2.修改服务设置3.直接重启4.通过驱动软件修复电脑网络5.通过ccleaner修复注册表6.进入bios系统修改wireless设置7.重装系统(最好不要)8.博主问题的解决1.前言最近每天打开电脑时都会出现这样的情况,每次折腾半天,有时候运气好重启一下就…

    2022年7月11日
    45
  • app唤起小程序_微信小程序支付轮训

    app唤起小程序_微信小程序支付轮训在同一开放平台账号下的移动应用及小程序无需关联即可完成跳转,非同一开放平台账号下的小程序需与移动应用(APP)成功关联后才支持跳转。可在“管理中心-移动应用-应用详情-关联小程序信息”,为通过审核的

    2022年8月2日
    8

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号