elasticsearch mysql增量同步时区问题解决
来源:互联网 发布:道路照度计算软件 编辑:程序博客网 时间:2024/06/05 05:28
问题描述:logstash在同步mysql数据到elasticsearch上时,跟踪的column是时间变量,因为mysql
用的时区是东八区时间,而经过logstash到es上全部会转成是零时区时间,记录的:sql_last_value
时间也可能会产生时间差,造成时间对不上,无法正常增量同步。
分析:
1、在同步数据时要实现增量同步,会需要配置
use_column_value => true tracking_column => utc_upt_daterecord_last_run => truelast_run_metadata_path => "...\station-test.txt"clean_run => false
跟踪的字段值会被记录在txt文档里,因为es中时间格式是零时区时间,在记录跟踪时间时会自动+8:00转换成东八区时间,
这样我们再拿原数据库时间和加8小时后时间比较就会产生错误。
所以综上,我的解决办法是,在同步mysql数据时,对原本要跟踪的时间列加一个辅助列,记录该时间的UTC(零时区)时间,
MySQL 时区(timezone)转换函数convert_tz(dt,from_tz,to_tz)convert_tz(upt_date, '+08:00', '+00:00')
然后将跟踪字段改为新加的辅助列(即原时间的零时区时间),这样,es中既会有原时间,也会有相应的utc时间,而被记录在txt的跟踪字段又会被加8:00 转换成东八区时间,在进行比较增量时,用数据库中真实时间与:sql_last_value进行比较即可。
这样做的好处是,既保证数据库中数据的真实,也可以在es中看到直观的东八区时间,即使是跟踪字段的记录文件中也是东八区时间,便于直观根据时间检查数据。
阅读全文
0 0
- elasticsearch mysql增量同步时区问题解决
- mysql 增量导入到elasticsearch
- 使用elasticsearch-jdbc做增量同步
- Elasticsearch+mysql 数据同步
- ElasticSearch同步MySql
- elasticsearch mysql数据同步
- mysql主从同步问题解决
- Elasticsearch+MySQL数据同步示例
- sqoop1 按mysql时间字段 增量同步
- MySQL主从同步的问题解决
- Elasticsearch 时区(time_zone)记录
- elasticsearch-jdbc实现MySQL同步到ElasticSearch深入详解
- elasticsearch-jdbc实现MySQL同步到ElasticSearch深入详解
- elasticsearch-jdbc实现MySQL同步到ElasticSearch深入详解
- elasticsearch使用river同步mysql数据
- mysql中的数据同步到elasticsearch
- 搭建elasticsearch,并同步mysql数据
- 实时同步MySQL数据到Elasticsearch
- 2014-03-06-codeblock中文乱码
- Java并发学习(四)-sun.misc.Unsafe
- 深度 | 苹果博客解读iPhone上的人脸识别深度神经网络
- C++基础知识
- Java Swing ~01
- elasticsearch mysql增量同步时区问题解决
- Android左右滑动标签页
- hdu-1686-Oulipo(KMP)
- Data Binding(数据绑定)用户指南
- luabind-0.9.1在windows、linux下的使用详解及示例
- RabbitMQ入门教程(七):主题交换机Topics
- OSError: [Errno 98] Address already in use(关键词:flask/bug)
- 设计模式—开放-封闭原则
- C# SemaphoreSlim 实现