Kettle定时变量+增量抽MySQL到ES中

603 阅读2分钟

主页:写程序的小王叔叔的博客欢迎来访****支持:点赞​收藏​关注

本博客内容,实践前,请先逐一浏览,然后再逐一学习。

一、作业、转换图

二、实现步骤思路

1. 安装 kettle elk

**2.**在kettle中 新创建一个“转换”

**3.**根据“转换”创建“作业”

**4.**执行“作业”内容

三、转换图 实现

3.1 主-转换图 :

主要内容本博客中已经编写完毕 ,

【增量】是在原本转换图基础上进行修改

【3.1 转换图解析】:

主要

3.1.1 - 1.连接DB抽取对应学生数据

SELECT  * , DATE_FORMAT(create_time,'%Y-%m-%d %H:%i:%s') as create_time  
from course_issue_detail   
where  delete_flag='0' and  issue_type='1'  and  create_time > '${createTime}'  
-- limit 201,210; 

3.1.2 - 2.替换null值

3.1.3 - 3.ESInsert_写入数据

【具体配置 见博客: (原)Windows10 Kettle Spoon 抽取MySQL数据 保存到 本地ES【二】_写程序的小王叔叔的博客-CSDN博客_spoon抽取数据

3.2 辅助-转换图

3.2.1 - 修改更新时间

select DATE_FORMAT(max(createTime,'%Y-%m-%d %H:%i:%s')) as createTime from etl_last_timestamp WHERE index_name = 'es_student_sub_test'
update etl_last_timestamp set createTime = '?' where index_name = 'es_student_sub_test'

四、作业图实现

4.1 创建作业图: 主要

4.2.1 - 创建更新表

1.检查表 1.1创建表:

首先要 创建 中间转换时间戳的表 【etl_last_timestamp】,用来保存最新更新替换更新的时间

先检查是否存在,然后进行创建

CREATE TABLE `etl_last_timestamp` (	
	`createTime` DATETIME(3) NULL DEFAULT NULL COMMENT '抽取的最后的时间戳'	
)
COMMENT='记录抽取的最大的时间戳'
COLLATE='utf8_general_ci'
ENGINE=InnoDB
;

4.2.2 - 2.变量赋值

var prevRow=previous_result.getRows();
if (prevRow == null && (prevRow.size() =0))
{

 	false;

}else{	  	 
	parent_job.setVariable("createTime",prevRow);	
	parent_job.setVariable("size",prevRow.size());
	parent_job.setVariable("i",0);
	parent_job.setVariable("createTime",prevRow.get(0).getString("createTime",""));	 
	true;
}

4.2.3 - 3.调用变量转换业务

【见本博客 3.2 辅助-转换图】

4.2.4 - 4.循环控制

​ 

4.2.5 - 输出记录 / 计数器累加

var list_Tables = parent_job.getVariable("createTime").replace("[","").replace("]","").split(",");
var size = new Number(parent_job.getVariable("size"));
var i = new Number(parent_job.getVariable("createTime")+1);
if( i<size ){
	parent_job.setVariable("createTime",list_Tables[i]);
}
parent_job.setVariable("i",i);
true;

遗留问题: 抽取成功后,成功输出到Excel文件中,后期逐步修改整理。。。

五、完成效果

​本博客内容整理成资源以上传到【本资源】中:20210511_kettle抽取mysql增量到ES中.zip-项目管理文档类资源-CSDN下载

六、效果

七、连接

基本配置kettle连接mysql

八、配置

九、操作

说明:

配置数据源连接池大小设置,一般都是默认设置,如有特殊需求可以手动修改。

转载声明:本文为博主原创文章,未经博主允许不得转载

⚠️注意 ~

💯本期内容就结束了,如果内容有误,麻烦大家评论区指出

如有疑问❓可以在评论区留言💬或私信留言💬,尽我最大能力🏃‍♀️帮大家解决👨‍🏫!

如果我的文章有帮助,欢迎点赞+关注✔️鼓励博主🏃,您的鼓励是我分享的动力🏃🏃🏃~