oracle或mysql定时增量更新索引数据到Elasticsearch
利用kettle Spoon从oracle或mysql定时增量更新数据到Elasticsearch
https://blog.csdn.net/jin110502116/article/details/79690483
背景:
目前的业务数据数据已经很大了,关于查询内的需求比较多,传统数据库已经不能满足目前的需要。必须得使用全文检索了,了解了相关资料,发现Elasticsearch这个工具比较强大。于是就开始新一段的爬坑之旅了...
Elasticsearch安装什么的很方便,但是更新却是个很大的问题。开始尝试了Logstash这个工具,各种尝试后,还是放弃了。主要原因是速度慢,数据源是oracle数据库的时候,不能增量更新,生成的索引文档id各种问题,果断放弃...
后面尝试了Kettle spoon,换了n多个版本,都没有找到一个跟Elasticsearch兼容的比较好的版本。查了n多资料,发现没一个能够说清楚解决思路的。自己也想过放弃,但项目上有刚需,只得硬着头皮弄了。功夫不负有心人,终于成功了...
分享:
写在前面:第一篇博客,不喜勿喷哈。之前一直潜水,这次想奉献一下~
目的:将mysql或oracle里面的数据定时增量抽取到ES。
思路:利用spoon发送http post请求,然后获取索引中最大的时间,然后将数据库中查出大于该时间的记录,定时导入到ES即可。(还有一种常见的是,将每种类型的数据更新完后,存入到一张管理表总,下次抽取大于这个时间的)
工具下载链接:
Spoon 7.1修复版本:链接:https://pan.baidu.com/s/1bPAjMWt_ur7BqPI6zkkE4g 密码:v1li
Elasticsearch2.3.2 : 链接:https://pan.baidu.com/s/1FlyvCCSjEIqZJB1F59qkzg 密码:w49r
Elasticsearch-head : 链接:https://pan.baidu.com/s/1pCf9e-WH3N9b5JFSMFPpAg 密码:1959
方案步骤(举例):
1、新建索引,设置分片数,备份数
2、新建索引类型(举个例子)
注意:需要使用统计功能的字段类型不能设置为String
请求地址:http://localhost:9200/gj_index/tx_type/_mapping/
请求类型:put
请求参数:
{
"tx_type": {
"properties": {
"ZBY": {
"type": "double"
},
"ZBX": {
"type": "double"
},
"DZ": {
"type": "string",
"index":"not_analyzed" //ES不分析这个字段,这样只能进行精确查询
},
"IMSI": {
"type": "string"
},
"TMSI": {
"type": "string"
},
"IMEI": {
"type": "string"
},
"JLSJ": {
"type": "long" //时间戳,不能使用String,否则无法统计。这边转成了秒
},
"SBID": {
"type": "string"
},
"LAC": {
"type": "string"
}
}
}}
截图如下:
3、先模拟请求,找到索引中某类型(testtype)中最大的时间字段(endtime),如图所示:
4、新建Spoon转换、任务
获取到索引中最大的时间戳(模拟请求,获取该索引中endtime最大的那个值)
a、整体效果图:
b、设置请求参数
c、发送post请求
d、获取当前类型中最大的时间
新建插入索引转换,将大于此时间的记录获取到,直接插入到ES中
a、整体效果图
b、表输入

c、插入到索引
新建定时任务,定时增量抽取数据
a、 每隔5秒执行一次增量更新任务
b、设置job变量 maxjlsl
c、添加转换(获取索引中最大时间)
d、取得转换任务中的最大时间,更新到 maxjlsj
e、添加转换(插入数据到ES)
点击运行,大功告成 ...
oracle或mysql定时增量更新索引数据到Elasticsearch的更多相关文章
- oracle至mysql该指南的数据模式()任意数据源之间的跨导应用
为了产生的一些资源的库的释放.需要API模块迁移到mysql在,需要引导数据. 试用oracle to mysql工具.当迁移错误不说,如此大量的数据的,有了这样简陋的工具是不太可靠. 意外的发现工具 ...
- Centos 6.5 实战-MySQL定时增量备份(2)
首先在进行增量备份之前需要查看一下配置文件,查看 log_bin 是否开启,因为要做增量备份首先要开启 log_bin .首先,进入到 myslq 命令行,输入如下命令: [root@localhos ...
- 实战-MySQL定时增量备份(2)
概要 引言 增量备份 恢复增量备份 定时备份 引言 在产品上线之后,我们的数据是相当重要的,容不得半点闪失,应该做好万全的准备,搞不好哪一天被黑客入侵或者恶意删除,那就 gg 了.所以要对我们的线上数 ...
- Oracle与Mysql插入多行数据
Oracle 一. insert allinto students values ('b10050501','zl')into students values ('b10050502','zjw')s ...
- linux下mysql定时备份,数据保存周期一周
以下脚本来自网络,版权归原作者所有(推荐放在夜间自动备份,用cron制定计划任务) crontab -e 0 3 * * * /var/erp/data/mysql_backup.sh #!/bin/ ...
- Oracle to MySQL Goldengate实现增量迁移
第一部分:安装和基本配置 一.环境 两台rhel 6.4虚拟机,分别异构oracle到mysql数据库同步测试Ip:192.168.0.23 部署oracle 11.2.0.4,goldgate 12 ...
- 用solr DIH 实现mysql 数据定时,增量同步到solr
基础环境: (二)设置增量导入为定时执行的任务: 很多人利用Windows计划任务,或者Linux的Cron来定期访问增量导入的连接来完成定时增量导入的功能,这其实也是可以的,而且应该没什么问题. 但 ...
- mysql定时脚本(event),类似oracle的job
mysql定时脚本(event),类似oracle的job 我有2张表:tb_push_data 和 tb_push_data_log 现在需要每隔一段时间将tb_push_data 符合条件的 ...
- Canal - 数据同步 - 阿里巴巴 MySQL binlog 增量订阅&消费组件
背景 早期,阿里巴巴 B2B 公司因为存在杭州和美国双机房部署,存在跨机房同步的业务需求 ,主要是基于trigger的方式获取增量变更.从 2010 年开始,公司开始逐步尝试数据库日志解析,获取增量变 ...
随机推荐
- 微信订阅号 获取用户基本信息,登录及 php
<?php //echo file_get_contents("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_cr ...
- 爬虫——json模块与jsonpath模块
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它使得人们很容易的进行阅读和编写.同时也方便了机器进行解析和生成.适用于进行数据交互的场景,比如网站前台与后 ...
- JS对象和数组在谷歌浏览器中引用存储的表现
大家都知道JS的数据分为基本类型和引用类型.具体什么不说了,今天主要说说对象和数组作为引用类型在谷歌浏览器中的表现. 首先,问题是这么发现的.我在控制台使用console打印了一个数组,然后对数组进行 ...
- cnpm 下载
1, 如果电脑已经有node的话,可以先卸载,然后再去node官网下载最新node, 2,先全局安装cnpm, npm install -g cnpm --registry=https://regis ...
- STM32(3)——外部中断的使用
1 .简介 ARM Coetex-M3内核共支持256个中断,其中16个内部中断,240个外部中断和可编程的256级中断优先级的设置.STM32目前支持的中断共84个(16个内部+68个外部),还有1 ...
- Java学习笔记五:Java中常用的运算符
Java中常用的运算符 运算符是一种“功能”符号,用以通知 Java 进行相关的运算.譬如,我们需要将变量 score 的值设置为 20 ,这时候就需要一个“=”,告诉程序需要进行赋值操作. Java ...
- Leecode刷题之旅-C语言/python-136只出现一次的数字
/* * @lc app=leetcode.cn id=136 lang=c * * [136] 只出现一次的数字 * * https://leetcode-cn.com/problems/singl ...
- PAT (Basic Level) Practice (中文)1002
1002 写出这个数 (20 分) 读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字. 输入格式: 每个测试输入包含 1 个测试用例,即给出自然数 n 的值.这里保证 n 小于 1 ...
- Preparing Cities for Robot Cars【城市准备迎接自动驾驶汽车】
Preparing Cities for Robot Cars The possibility of self-driving robot cars has often seemed like a f ...
- BAT批处理
常用命令 查看目录内容命令dir 指定可执行文件搜索目录path 创建目录命令md 打开指定目录命令cd 删除当前指定的子目录命令rd 改变当前盘符命令d: 文件复制命令copy 显示文本文件内容命令 ...