大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新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功能特别强大,不是一时半会儿能学会使用的,下面用几个简单例子,讲述简单应用。
表到表转换
背景:某项目数据由公共信息平台以表推送的形式提供,这部分数据和系统设计比较:字段不对应、无主键、人为录入存在特殊字符,无数据字典。针对这种特点,选择ETL工具Kettle作为数据转换工具。应用场景:不同应用或数据库之间整合数据。
1、建立转换,文件-新建转换,选择DB连接,根据提示建立新的数据库连接。
如果没有相应的数据库驱动,可能会报错,这时候需要下载对应的驱动,放在data/intergration/lib文件夹中,然后重启Spoon;
2、选择核心对象-输入,将表输入选项拖拽到右侧工作窗口;
双击表输入窗口,对输入内容进行编辑,选择前面建立的数据库连接,并通过拼写sql或者获取sql的方式,确定输入内容;
3、按照2中同样的方式,选择输出,将表输出拖拽到右侧工作窗口;
长按shift,点击表输入,拖拽箭头到表输出,建立两张表之间的联系;
4、双击表输出,对内容进行编辑;
5、成功编辑后,点击执行按钮,一次完整的转换就完成啦
入库流程比较简单,实际工作显然不会是这样的,我们为了偷懒,省去了数据转换(Transform)的工作。这部分工作用到的应用较多,多集中在转换文件夹下,在此不做赘述。
json到表的操作
背景:在Github上获取了千万级别(其实五百多万)条企业工商数据(详情点击这里),格式有.json/.csv/.xls,字段包括:
{ "name":"企业名称", "code":"统一社会信用代码", "registrationDay":"注册日期", "character":"企业类型", "legalRepresentative":"法人代表", "capital":"注册资金", "businessScope":"经营范围", "province":"所在省份", "city":"地区", "address":"注册地址" }
为了方便处理这些数据,需要将数据入库。应用场景:大批量数据装载进数据库。
1、新建一个转换的Job,建立DB连接,不再赘述;
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拖出两者的关联关系;
4、编辑【jsoninput】,在【文件或路径】处,写入json文件地址,点击【增加】添加到【选中的文件】,在【选中的文件】中,【通配符】填写.*.*\.json
,【包含子目录】选是,此步骤的目的是,指定数据来源为文件夹下所有json数据;
5、在字段选项卡中,点击getfields,按照图片所示,选择字段;
6、编辑【表输出】,输入【目标表】,选择【指定数据库字段】,获取所有表映射;
7、点击运行,数据量大,可能需要多等一会儿。
参考
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/181133.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...