博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Elasticsearch mysql 增量同步
阅读量:4690 次
发布时间:2019-06-09

本文共 1178 字,大约阅读时间需要 3 分钟。

主要用到了一个的库。

 

 

想要增量同步,有一些先决条件。首先数据库中要维护一个update_time的时间戳,这个字段表示了该记录的最后更新时间。然后用上面的那个库,定时执行一个任务,这个任务中执行的sql就是根据时间戳判断该记录是否应该被更新。

 

这里先写一个最简单的例子来展示一下。

 

从上方插件官网中下载适合的dist包,然后解压。进入bin目录,可以看到一堆sh脚本。在bin目录下创建一个test.sh:

bin=/home/csonezp/Dev/elasticsearch-jdbc-2.3.1.0/binlib=/home/csonezp/Dev/elasticsearch-jdbc-2.3.1.0/libecho '{
"type" : "jdbc", "statefile" : "statefile.json", "jdbc": { "url" : "jdbc:mysql://myaddr", "user" : "myuser", "password" : "mypwd", "type" : "mytype", "index": "myindex", "schedule" : "0 * * * * ?", "metrics" : { "enabled" : true }, "sql" : [ { "statement" : "select * from gd_actor_info where update_time > ?", "parameter" : [ "$metrics.lastexecutionstart" ] } ] }}' | java \ -cp "${lib}/*" \ -Dlog4j.configurationFile=${bin}/log4j2.xml \ org.xbib.tools.Runner \ org.xbib.tools.JDBCImporter

schedule现在设置成每分钟都执行一次,是为了方便观察行为。statefile这一句是一定要加的。$metrics.lastexecutionstart就是这个脚本的关键所在了,这个指的是上一次脚本执行的时间,可以通过比较这个时间和数据库里的字段来判断是否要更新。

 

转载于:https://www.cnblogs.com/csonezp/p/5489344.html

你可能感兴趣的文章
测试思想-集成测试 关于接口测试 Part 2
查看>>
windows下mysql密码忘了怎么办?【转】
查看>>
php生成器使用总结
查看>>
T-SQL中的indexof函数
查看>>
javascript基础之数组(Array)对象
查看>>
mysql DML DDL DCL
查看>>
RAMPS1.4 3d打印控制板接线与测试1
查看>>
python with语句中的变量有作用域吗?
查看>>
24@Servlet_day03
查看>>
初级ant的学习
查看>>
redis数据结构--String
查看>>
POJ 3279 Fliptile (二进制枚举)
查看>>
memcached 细究(三)
查看>>
future
查看>>
关于main函数传参数的问题
查看>>
getTickCount()函数 VS GetTickCount()函数
查看>>
嵌入式jetty
查看>>
2017~回顾分享
查看>>
使用svn——项目的目录布局
查看>>
RSA System.Security.Cryptography.CryptographicException
查看>>