flink-cdc 能够读取binlog日志,从而实现mysql数据到ES的秒级同步。
好用的同时又有很多烦恼,其中时间格式就是一个很头痛的问题。
直接进入正题。
使用es7和mysql 5.7为例
1.时间类型参照
首先我们已知mysql 有date 和timestamp(或者datetime)两种时间格式。
对应到ES是标准的date格式。
mysql 的date 类型格式如:"1993-02-01", 对应的ES的标准格式为:"1993-01-31T16:00:00.000Z"。
mysql的timestamp或datetime类型格式如: "1993-02-01 08:45:27",对应到es的ES标准格式类型为:"1993-02-01T00:45:27.000Z"
flink-cdc 时间格式与Mysql和es时间格式类型对照
flink-cdc | mysql | elasticsearch |
date | date | date |
timestamp | timestamp(datetime) | date |
timestamp_ltz | timestamp(datetime) | date |
那么处理时间格式上我们就可以用两种方法:
1.对于新建的ES索引在建立mapping的时候将date进行格式化处理
PUT db_test {