共计 2038 个字符,预计需要花费 6 分钟才能阅读完成。
相比当初风行大数据技术,你可能感觉 Kettle 的应用场景太少了,或者没有必要应用这么个玩意儿,查看了下 github kettle 发现最近也有一些更新,另外,对于没有编程教训的数据应用人员,应用非常简单的 Kettle,通过图形界面设计实现做什么业务,无需写代码去实现,就能够做一些试验,比方:抓取网站上的股票数据、外汇信息等等。
Kettle 反对很多种输出和输入格局,包含文本文件,数据表,以及数据库引擎。总之,Kettle 弱小的输出、输入、转换性能让你十分不便的操作数据。
罕用的输出步骤
文件输出步骤
常见文本文件输出步骤包含:CSV 文件输出、Excel 输出、文本文件输出等。
在之前的文章中曾经介绍过 HelloWorld 级别的性能「把数据从 CSV 文件复制到 Excel 文件」,具体步骤可查阅。
能够抉择同一目录下的所有文件,通过抉择目录,而后通配符号通配文件,也能够抉择是否读取当前目录下子目录的文件,如下图:
XML 输出步骤
XML 是可扩大标记语言,次要用来传输与存储数据,在一些比拟传统的零碎还在应用这种形式进行数据传输对接,借助「Get data from XML」输出步骤,获取 XML 文件中的数据信息,通过应用 xpath 来确定 XML 文档中某局部数据的地位,xpath 基于 XML 的树状构造,提供在数据结构树中找寻节点的能力。
示例
通过向导实现一个示例,读取 POM 文件中的属性配置信息,如下图:
xpath 罕用表达式
表达式 | 阐明 |
---|---|
nodename | 选取此节点的所有子节点 |
/ | 从根节点选取 |
// | 从匹配抉择的以后节点抉择文档中的节点,而不思考它们的地位 |
. | 选取以后节点 |
… | 选取以后节点的父节点 |
@ | 选取属性 |
div | 选取 div 元素的所有子节点 |
/div | 选取根元素 div |
div/p | 选取 div 元素下的子元素 p |
//div | 选取所有的 div 元素 |
div//p | 选取 div 元素下的所有 p 元素 |
//@lang | 选取名为 lang 的所有属性 |
JSON 输出步骤
相比于 XML,是一种轻量型的数据交换格局。JSON 外围概念:数组([] 中的数据),对象({} 中的数据),属性(k:v 的数据)
实现「调用 RESTful 接口导入 JSON 后果入库」的性能,不论是通过 Java 或者是 Python 编码的形式调用 RESTful 接口将后果入库,都是有肯定复杂度的,首先你要加载第三方 REST 组件依赖,而后连贯数据库,写 SQL 语句,最初插入的指标数据库中。但咱们有了 Kettle 这个工具之后,只须要应用图形化界面 Spoon
就能够很不便的实现接口调用及入库的操作。
通过一个简略的 GET 申请,获取「沪深新股预报」信息,数据状况及操作如下
数据示例
接口信息
https://xueqiu.com/service/v5…
转换步骤:
输入后果
具体配置步骤
表输出步骤
增加数据库驱动
要是想要操作数据库,就得先下载数据库驱动,而后搁置在 /data-integration/lib 下,默认包含如下驱动:
(base) ~/Documents/apps/data-integration/lib ls -al | grep sql
-rw-r--r--@ 1 Yezhiwei staff 1473091 Jun 11 2019 hsqldb-2.3.2.jar
-rw-r--r--@ 1 Yezhiwei staff 825943 Jun 11 2019 postgresql-42.2.5.jar
-rw-r--r--@ 1 Yezhiwei staff 3201133 Jun 11 2019 sqlite-jdbc-3.7.2.jar
增加 MySQL 驱动 jar 包 mysql-connector-java-5.1.41.jar 到 /data-integration/lib 下:
配置数据库连贯
获取表 SQL 查问语句,数据预览
抉择数据库连贯配置,而后点击「获取 SQL 查问语句」
抉择表,依据提醒实现设置,主动生成 SQL,「预览」能够查看数据。
罕用的输入步骤
通常将数据处理实现后须要保留到一个中央,不便后续应用,通常状况下输入为 Excel 或数据库中,后面的示例中曾经介绍过 Excel 输入,上面重点介绍数据库方面的输入步骤。
数据库输入步骤罕用的有插入 / 更新 / 删除,示例重点体现「插入 / 更新」和「删除」输入步骤
表输入
将其余输出源的数据输入到表中
更新
更新就是把数据库中曾经存在的记录与数据流外面的记录进行比照,如果不同就进行更新
插入更新
插入更新就是在更新的根底上插入了数据流中多余的数据
删除
删除能够和自定义常量输出一起应用,定义一个常量条件,不合乎这个条件的数据全副删除
示例
数据筹备
数据从 Excel 插入或更新到 MySQL
新数据插入后果
更新后果
结语
在数据仓库技术中,ETL 是必不可少,Kettle 作为 ETL 的经典工具,通过图形界面设计实现做什么业务,无需写代码去实现,对于没有编程教训的数据应用人员来说,也是非常简单的。
当然,也存在一些问题,比方:解决的数据量绝对小些、文档资料绝对少些等等。有机会再总结一下应用过程中遇到的问题。
欢送关注公众号:HelloTech,获取更多内容