文档章节

使用Kettle进行数据挖掘

 雷欧
发布于 2017/02/11 20:17
字数 830
阅读 343
收藏 2

客服部CRM系统的部分数据要同步BDP云端,为了服务器安全,账号密码不被任何第三方获取,部署中间服务器、中间库,抽取CRM的数据,然后再同步到bdp云端库中。

ETL(Extract-Transform-Load的缩写,即数据抽取、转换、装载的过程)。 Kettle作为Java编写的ETL工具,支持图形化的GUI设计界面,然后可以以工作流的形式流转,在做一些简单或复杂的数据抽取、质量检测、数据清洗、数据转换、数据过滤等方面有着比较稳定的表现,其中最主要的我们通过熟练的应用它,减少了非常多的研发工作量,提高了我们的工作效率。 环境要求:本地部署有java环境(JDK1.5或以上版本,怎么部署java环境我这里就不描述了,详情可以自己找度娘)。

首先下载kettle文件,Kettle可以在http://kettle.pentaho.org/网站下载, 解压kettle到D盘 进入d:/kettle/data-integration目录,打开spoon.bat文件,打开界面如图:

资源库连接界面,是把创建的转换和工作保存到资源库中,现在不需要,直接关闭就可以。

1、Transaction 我们首先创建转换,双击上面的转换,kettle有个好处,所有的操作都可以像拖拽流程图一样,里面具体的项目我这边不做描述了,可以参照kettle操作手册。

1.1 创建DB连接,客户部的crm系统是基于yii框架开发的,开发语言为php,数据库为mysql,这里我就不使用真实服务器作为案例了,涉及到公司的服务器信息,还是保密的好。 创建db连接local1(源数据库),local2(目标数据库).

在这里提示一下,抽取的数据有日期类型(date、datetime等),在Mysql数据库中使用DATETIME类型来存储时间,使用JDBC中读取这个字段的时候,应该使用 ResultSet.getTimestamp(),这样会得到一个java.sql.Timestamp类型的数据。在这里既不能使用 ResultSet.getDate(),也不能使用ResultSet.getTime(),因为前者不包括time数据,后者不包括date数据。

但是在使用ResultSet.getTimestamp()时也不是完全安全的,例如,当数据库中的TIMESTAMP类型的字段值为 '0000-00-00 00:00:00'时,使用此方法进行读取,会抛出异常:Cannot convert value '0000-00-00 00:00:00' from column 1 to TIMESTAMP,这是因为JDBC不能将'0000-00-00 00:00:00'转化为一个为一个java.sql.Timestamp,在Java中,想创建一个java.util.Date,使其值为 '0000-00-00'也是不可能的,最古老的日期应该是'0001-01-01 00:00:00'。 解决方案是在数据库连接位置添加zeroDateTimeBehavior=convertToNull

1.2 创建表输入,获得要抽出的数据

1.3 创建表数据,将抽出的数据填充到目标数据库的表中

1.4 建立执行顺序 按住shift按键,由表输入指向表数据

这样数据抽取就完成了,保存转换,名称为trans1,下一步我们设置定时执行转换。

2、Job 关闭trans1,创建job

保存为job1.kjb

3、Kitchen.bat执行Job

4、开机启动bat调用kitchen.bat调用job

© 著作权归作者所有

粉丝 0
博文 1
码字总数 830
作品 0
青岛
私信 提问
开源ETL工具在数据集成中的应用研究

大数据环境下,ETL负责将分散的、异构数据源中的数据如关系数据、平面文件数据等集成到数据仓库或数据集市的关键步骤,是后期联机分析处理、数据挖掘的基础环节。本课题以开源的ETL软件Kettl...

freeBryant24
2014/02/12
674
0
使用Kettle导入Excel数据

使用Kettle导入Excel数据 曾静的技术博客2017-08-2022 阅读 导入数据kettleExcel ETL(Extraction, Transformation, and Loading),在日常的工作中我们经常会遇到各种数据的处理,转换,迁移...

曾静的技术博客
2017/08/20
0
0
Win7下Kettle-7.0安装部署

1、Kettle概念 Kettle是一款国外开源的ETL工具,纯java编写,可以在Window、Linux、Unix上运行,绿色无需安装,数据抽取高效稳定。 Kettle 中文名称叫水壶,该项目的主程序员MATT 希望把各种...

zisheng_wang_data
2017/03/10
0
0
ETL利器Kettle实战应用解析系列一【Kettle使用介绍】

一、ETL利器Kettle实战应用解析系列一【Kettle使用介绍】 二、ETL利器Kettle实战应用解析系列二 【应用场景和实战DEMO下载】 三、ETL利器Kettle实战应用解析系列三 【ETL后台进程执行配置方式...

李丁玲
2016/03/04
492
0
Kettle 学习知识总结(三)

接kettle学习知识总结(一) 【注意事项】 1、 如果kettle 转化过程中,要将一张表中数据转化到另一张不同的数据结构表中,最好在进行“表输入”或者“插入/更新”前加入字段选择插件,通过字...

gerry_pang
2014/04/03
6.9K
0

没有更多内容

加载失败,请刷新页面

加载更多

学习记录 java面试题(一)

1. JDK和JRE的区别 JDK是整个JAVA的核心,包括了Java运行环境JRE,一堆Java工具和Java基础的类库。通过JDK开发人员将源码 文件(java文件)编译成字节码文件(class文件)。 JRE是Java运行环境,...

Pole丶逐
36分钟前
8
0
springboot 部署到外部tomcat

入口类继承SpringBootServletInitializer 并重写protected SpringApplicationBuilder configure(SpringApplicationBuilder builder)方法 如下 import org.springframework.boot.SpringApplic......

雷开你的门
42分钟前
5
0
hashCode和equals方法的关系

equals相等,hashcode必相等; hashCode()在哈希表中起作用,如HashSet、HashMap等。 当我们向哈希表(如HashSet、HashMap等)中添加对象object时,首先调用hashCode()方法计算object的哈希码,...

无名氏的程序员
46分钟前
7
0
技术分享 | MySQL 慢查询记录原理和内容解析

作者:高鹏 文章末尾有他著作的《深入理解 MySQL 主从原理 32 讲》,深入透彻理解 MySQL 主从,GTID 相关技术知识。 源码版本:percona 5.7.14 本文为学习记录,可能有误请谅解,也提供了一些...

爱可生
54分钟前
5
0
elementui 树型节点

节点选择时,勾选节点。 提交给后端时,传递 this.$refs.menuTree.getCheckedKeys(); 半选父节点 getHalfCheckedKeys() 不需要提交。...

东东笔记
55分钟前
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部