Kettle记录篇
文章平均质量分 84
100篇记录Kettle这款开源的ETL工具
萧明
开源软件knife4j作者
展开
-
Kettle实战100篇(天)
在数据仓库技术中,ETL是必不可少,Kettle作为ETL的经典工具,已经得到广大ETL工程师的喜爱,甚至连开发工程师在使用ETL过程中,优先考虑的也是Kettle目前国内关于Kettle的资料很少,本着学习的态度,在使用和学习Kettle的过程中,将整个学习过程整理成博客,分享给大家,一方面是希望能对Kettle的使用有一个更深入的了解,另外也同大家一起来学习这款优秀的ETL工具.记录下自己的...原创 2019-10-04 10:03:46 · 11647 阅读 · 13 评论 -
Kettle实战100篇 第14篇 参数与变量
设置变量组件是我们在作业中非常常用的一个组件,通过设置变量,我们的子转换中可以非常方便的解决动态数据处理的问题,比如分页查询数据、导出Excel变量等等我们在Kettle实战100篇 第2篇 调用RESTful接口导入JSON结果入库以及Kettle实战100篇 第9篇 Mysql数据库数据导出到Excel中都有介绍到设置变量组件的使用.本篇博客主要是详细Kettle中的变量及参数的说明及...原创 2019-10-05 11:28:00 · 1282 阅读 · 0 评论 -
Kettle实战100篇 第15篇 Mysql数据库表迁移
待续...原创 2019-10-05 11:28:37 · 679 阅读 · 2 评论 -
Kettle实战100篇 第16篇 JSON文件导入Mysql
在Kettle实战100篇 第2篇 调用RESTful接口导入JSON结果入库中我们其实已经介绍了JSON导入到数据库的方法,但是本章是将本地的JSON文件导入MySQL数据库中,会有不同的属性设置,而且JSON的源文件也较第2篇复杂,因此单独再博客中说明本次导入的JSON源文件为Open API V2.0的规范数据,如果你接触过Swagger项目的话,那么对该结构应该是非常熟悉的,所以我们这...原创 2019-10-05 11:30:25 · 2046 阅读 · 1 评论 -
Kettle实战100篇 第17篇 JSONPath组件介绍说明
文章目录表示法过滤器综合示例返回多个元素的JSONPath表达式的注意事项Java使用示例简单使用返回预期过滤内联过滤Roll Your Own值和路径配置信息选项**DEFAULT_PATH_LEAF_TO_NULL**ALWAYS_RETURN_LIST**SUPPRESS_EXCEPTIONS**在我们使用JSON input组件的时候,设置字段映射时,由于Kettle使用的是JSONPa...原创 2019-10-05 11:31:58 · 1800 阅读 · 0 评论 -
Kettle实战100篇 第18篇 JavaScript脚本组件使用示例
JavaScript内置对象我们可以在JavaScript脚本中使用内部API对象TransformationName:转换名称获取访问变量转换如下图:JavaScript的脚本内容如下:var v1 = getVariable("VAR1", "");var v2 = getVariable("java.io.tmpdir", "");var subject="...原创 2019-10-05 12:00:58 · 1431 阅读 · 0 评论 -
Kettle实战100篇 第19篇 转换核心对象Microsoft Excel输出组件
我们在上面的实战系列中,多次用到了Excel作为输入或输出组件,该篇主要是针对官方英文文档做一个翻译说明,主要包括输入、输出、写入组件Microsoft Excel 输出英文地址:https://help.pentaho.com/Documentation/8.3/Products/Microsoft_Excel_OutputMicrosoft Excel输出步骤允许您将数据写入一个或...原创 2019-10-05 12:01:51 · 2560 阅读 · 2 评论 -
Kettle实战100篇 第20篇 MySQL数据库导出到ElasticSearch
业务需求:在系统上线后,原系统的日志信息是存储到MySQL数据库中,但是随着日志数据越来越大,导致数据查询缓慢,加上日志数据并非业务系统关键数据,因此,系统考虑改版升级,使用ElasticSearch来存储日志数据,因此需要将源存在MySQL数据库上的数据迁移到ES中简单示例我们先来看一个简单的ES导入数据范例,建立ES的索引结构PUT /scheduler_log建立字段...原创 2019-10-06 12:17:39 · 2905 阅读 · 4 评论 -
Kettle实战100篇 第21篇 JavaScript内置函数说明
我们在使用JavaScript组件的时候,在左侧核心树对象栏中可以看到Kettle为我们提供了很多简洁强大的内置函数,帮助我们在写脚本的时候对数据、参数变量等能很轻松的做处理,体验编码的感觉.本篇将详细介绍JavaScript组件中的函数功能脚本组件包含的函数主要包括六大类,分别是:字符串类型的函数(String Functions) 浮点型的函数(Numeric Functions)...原创 2019-10-06 12:19:16 · 6105 阅读 · 3 评论 -
Kettle实战100篇 第22篇 资源库的使用
我们在前面的实战博客中,都是将我们的作业和转换文件保存在磁盘中,这在小规模的使用中是没有问题的,可是当我们的ETL工程越来越庞大时,一个团队需要更多的ETL工程师来开发ETL的过程时,单人作战就很不合适了,这就和我们开发人员写代码一样,多人协作时需要一个代码的协作平台(GIT、SVN等)来帮助我们管理代码版本,合并代码等操作因此,当我们的ETL工程初具规模时,团队协作配合开发ETL时就需要Ke...原创 2019-10-06 12:22:04 · 1212 阅读 · 0 评论 -
Kettle实战100篇 第23篇 命令行介绍使用
我们在前面介绍的实战篇章中,基本都是在Spoon的图形化界面中点击运行按钮时来运行我们的作业或者转换的,但是Kettle也为我们提供了基于命令行的调用方式,基于命令行的方式可以方便我们通过Shell脚本或者Windows的Bat脚本来对作业&转换进行调用,这方便我们配置作业&转换的任务调度我们可以在类似Unix平台上使用crontab服务来调用我们的Kettle作业&转...原创 2019-10-06 12:29:51 · 1284 阅读 · 0 评论 -
Kettle实战100篇 第24篇 日志报表输出
待续.....原创 2019-10-06 12:32:32 · 536 阅读 · 2 评论 -
Kettle实战100篇 第13篇 MySQL数据导出Excel数据乱码
该问题我在使用分页查询导出的时候碰到了乱码的情况,我的情况比较特殊,我通过浏览已经建立好的数据库连接的中的数据时并非乱码,而当我使用表输入组件中的预览数据时缺产生了乱码,因此我不得不设置我们的数据库连接参数乱码主要分几种情况一、查看我们的数据库的服务端字符集是否是UTF-8(常用字符集)可以使用navicat连接到我们的数据库,然后使用命令行,输入查询语句进行查看,如下:mysq...原创 2019-10-05 11:27:24 · 796 阅读 · 0 评论 -
Kettle实战100篇 第12篇 自定义开发Java工具类并在JavaScript脚本中运用
我们在Kettle实战100篇 第1篇 介绍与安装中已经介绍过Kettle的相关目录结构,因为Kettle是使用纯Java语言开发,并且我们在JavaScript脚本中可以调用我们的Java类中的方法进行相关脚本的编写因此,为了开发JavaScript脚本方便,有时候我们需要自定义一些方法集,供我们自己在Kettle这种使用新建项目我们新建一个基于Maven的纯Java项目kettle...原创 2019-10-05 11:26:34 · 1116 阅读 · 1 评论 -
Kettle实战100篇 第11篇 JavaScript表达式变量说明
待续...原创 2019-10-05 11:25:45 · 770 阅读 · 0 评论 -
Kettle实战100篇 第1篇 介绍与安装
简介Kettle是一款由纯Java语言开发的免费开源的ETL工具,ETL即是Extract-Transform-Load的缩写,用来描述将数据从来源端通过萃取(Extract)、转换(Transform)、加载(Load)到目标端的过程,通常用于数据清洗、数据迁移等.下载地址:https://sourceforge.net/projects/pentaho/files/GitHub地址...原创 2019-10-04 10:10:16 · 4876 阅读 · 6 评论 -
Kettle实战100篇 第2篇 调用RESTful接口导入JSON结果入库
不管是通过Java或者是Python编码的方式调用RESTful接口将结果入库,都是有一定复杂度的,首先你要加载第三方REST组件,然后连接数据库,写SQL语句,最后插入的目标数据库中但我们有了Kettle这个工具之后,只需要使用她的图形化界面Spoon就可以很方便的完成接口调用及入库的操作简单的GET请求需求我们拥有接口api地址:http://xxx.domin.com/api...原创 2019-10-04 10:12:48 · 10488 阅读 · 11 评论 -
Kettle实战100篇 第3篇 转换核心对象JSON Input组件
随着目前微服务的普及,JSON格式已经成为大家公认的数据交换的标准的格式,我们在网页调用接口或者API接口都是通过JSON来操作业务.在ETL过程中,不管是接口的调用或者文件的输入,遇到JSON格式的源数据,我们最终都需要通过JSON Input组件来帮助我们完成相应的转换.示例从文件读入JSON输出到Excel在Kettle的安装文件下有files.js文件,文件格式如下:...原创 2019-10-04 10:17:40 · 2041 阅读 · 0 评论 -
Kettle实战100篇 第4篇 转换核心对象REST client组件
待续...原创 2019-10-04 10:18:51 · 1301 阅读 · 2 评论 -
Kettle实战100篇 第5篇 转换核心对象生成记录组件
待续原创 2019-10-04 10:19:30 · 637 阅读 · 0 评论 -
Kettle实战100篇 第7篇 转换核心对象插入更新组件
待续......原创 2019-10-04 10:24:19 · 601 阅读 · 0 评论 -
Kettle实战100篇 第8篇 Excel导入到Mysql数据库
操作步骤是:选择表格类型(引擎) -> 浏览Excel文件 -> 增加此时,切换到工作表选项卡可以点击获取工作表名称,然后设置读取的起始行、列第三步选择字段选项卡点击获取来自头部数据的字段,可以自动获取Excel表格中的字段header信息,编辑响应的字段类型、长度、精度等信息输出编辑好Excel输入后,此时我们编辑输出,因为我们目标是将Excel的...原创 2019-10-04 10:29:58 · 1442 阅读 · 0 评论 -
Kettle实战100篇 第9篇 Mysql数据库数据导出到Excel
我们在第8篇的时候已经介绍了将Excel的数据导入到Mysql数据库中,那么,本章我们将介绍将数据从数据库导出到Excel中.较少数据导出我们数据库表数据如下图:数据库中总共存在36条数据,这是数据比较少的情况新建转换我们选择 文件 -> 新建 ->转换建立导出Excel的转换,输入转换名称然后保存表输入既然是从数据库表导出数据,所以我们的ETL的第...原创 2019-10-04 10:31:22 · 2976 阅读 · 4 评论 -
Kettle实战100篇 第10篇 JavaScript脚本中日志输出
我们在编写作业或者转换的时候,运行时,尽管将Kettle的日志级别调整到最大,但是依然无法帮助我们定位到问题所在,此时我们就需要通过日志来输出我们的相关变量,以编程的思维来帮助我们快速定位到问题,以解决问题旧版本Kettle借助于搜索引擎,如果你是使用的较旧的Kettle版本,可以使用如下方法进行日志输出:首先,得到日志输出实例var log = org.pentaho.di.c...原创 2019-10-05 11:24:19 · 5945 阅读 · 3 评论 -
Kettle实战100篇 第25篇 作业核心对象设置变量组件
我们在很多场景下都需要用到设置变量组件,比如在分页查询数据时,然后分批次写入数据时,都需要事先定义好变量,一般作为作业中起始组件,设置变量的作业举足轻重,这考验你在一个完成的ETL过程中的逻辑能力,你的ETL是否能正常完美的执行,和开始设置的变量有很重要的关系.作业中的设置变量组件如下:我们可以通过设置变量组件中的变量以.properties文件的方式引入可以指定属性文件名为F:\...原创 2019-10-06 12:37:01 · 1799 阅读 · 0 评论