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、点击运行,数据量大,可能需要多等一会儿。

参考

Kettle入门教程
Kettle中文网

Kettle工具入门相关推荐

  1. linux patches工具,patch工具入门

    patch工具入门 Linux中patch和diff工具,成对使用.patch也可以使用git diff生成的patch. 本文简单记录了patch的-p和-R选项的含义及使用. 本文测试目录结构如下 ...

  2. wandb(wb)(weights and biases): 深度学习轻量级可视化工具入门教程

    参考文章:wandb: 深度学习轻量级可视化工具入门教程 这wandb有点蛋疼啊,说登录https://wandb.ai/authorize?signup=true获取API KEY,但貌似要梯子才能 ...

  3. wandb: 深度学习轻量级可视化工具入门教程

    本文,就来给大家介绍一款新型的机器学习可视化工具,能够让人工智能研发过程变得更加简单明了. wandb: 深度学习轻量级可视化工具入门教程 引言 wandb 验证数据可视化 自然语言处理 重要工具 极 ...

  4. kettle增加字段报错_【实战】使用 Kettle 工具将 mysql 数据增量导入到 MongoDB 中

    每一个成功人士的背后,必定曾经做出过勇敢而又孤独的决定. 放弃不难,但坚持很酷~ 最近有一个将 mysql 数据导入到 MongoDB 中的需求,打算使用 Kettle 工具实现.本文章记录了数据导入 ...

  5. kettle工具的设计原则

    Kettle工具在设计初,就考虑到了一些设计原则.这些原则里借鉴了以前使用过的其他一些ETL工具积累下的经验和教训. 易于开发:作为数据仓库和ETL开发者,你只想把时间用在创建BI解决方案上.任何用于 ...

  6. Kettle工具使用及总结

    Kettle工具使用及总结 一.kettle安装及报错: kettle主要用于数据清洗,即常见ETL工具,拥有图形化界面且免费的优点.其下载包直接解压打开就能用,遇到的问题: 1.连接MySQL报错: ...

  7. ETL数据清洗Kettle工具

    文章目录 一.简介 二.资源库(新建.管理) 三.转换 1. 新建数据源 2. 简单的输入输出 配置步骤 2.1 配置表输入 2.2 配置表输出 2.3 保存 2.4 启动与执行结果 3. 转换 1. ...

  8. 反病毒工具入门系列-楔子

    楔子 前端时间在总结反汇编知识的时候发现一些基础知识和常用工具在我自学的时候比较难以掌握,但是它们又是基础工具,直接开始是不容易的.今天的我就算是入门了吧.希望后来者能通过这个系列少走弯路,快速入门. ...

  9. NC运维人员拓展知识 之 开发工具入门(一)

    对于NC系统运维人员,通常情况下接触到较多的是NC前端问题处理,问题集中于业务之上.但是有时也会出现系统报错,例如,"****Exception",甚至出现"未知的错误& ...

最新文章

  1. schema类SpringMVC+Hibernate+Spring整合(二)
  2. 栈判断字符串是否为中心对称_数据结构和算法入门之判断括号字符串的合法性(valid parentheses)...
  3. CentOS7 Python3安装redis
  4. DotNetNuke的升级路径
  5. 1.Python基础----认识环境
  6. BigDecimal 常用方法
  7. C盘的“压缩驱动器以节约磁盘空间”有用吗
  8. qtouch跨平台组态软件四位一体表现
  9. 【计算机网络】湖科大微课堂 笔记目录(完结)
  10. 阮一峰 ES6 入门读书笔记(十四):async 函数
  11. python期权定价公式_期权及 Black-Scholes模型的python实现
  12. 使用计算机拍摄 制作电视和电影,视频制作毕业论文: 影视制作
  13. Eureka入口之DiscoveryClient
  14. 最近在测FREEBSD平台下ISP邮件系统前的准备知识摘录
  15. VUE之高德地图轨迹绘制与轨迹回放
  16. 有公众号的情况下,复用资质快速注册小程序
  17. APS计划排产软件助家纺企业进行成本控制
  18. layui数据表格中包含图片的处理方式
  19. 用递归和非递归求斐波那契数列
  20. 在线网校系统搭建的意义是什么?怎么搭建?

热门文章

  1. 疫情防控大课观后感4
  2. python3.8模拟键盘自动操作环境安装
  3. Weak Cryptography (crypto) 弱密码
  4. 25岁德邦被京东收购,网友:京东可以。。。
  5. Python小游戏——Pygame制作2048小游戏
  6. jQuery实现小游戏飞机大战
  7. jxls导出Excel表格
  8. Java基础读书笔记
  9. C语言 | 快速了解C的发展史
  10. 重新认识你自己-克里希那穆提