Flink同步到ES时间遇到的问题

背景

  • 使用Flink SQL把MySQL的数据同步到ES,MySQL的时间是东八区时间,同步到Elasticsearch,发现时间总是有问题。

问题

  • 1、查询出来的时间总是+8小时。

解决方案:项目中jackson配置会把UTC时间转换,所以在存入时间就-8小时转成UTC时间就没毛病。

  • 2、时间范围查询出来的数据不准。

解决方案:存入的时间有转换,范围查询要设置timeZone,否则查询不准。

附录

返回数据使用jackson验证过程

  • 范围查询核心代码
java 复制代码
  // 创建时间范围查询
   if (ObjectUtil.isNotEmpty(request.getCreateTimeStart()) || ObjectUtil.isNotEmpty(request.getCreateTimeEnd())) {
        RangeQueryBuilder createTimeRange = QueryBuilders.rangeQuery("createTime");
        // 指定时区
        createTimeRange.timeZone("GMT+8");
        if (ObjectUtil.isNotEmpty(request.getCreateTimeStart())) {
            createTimeRange.gte(cn.hutool.core.date.DateUtil.format(request.getCreateTimeStart(), "yyyy-MM-dd HH:mm:ss"));
        }
        if (ObjectUtil.isNotEmpty(request.getCreateTimeEnd())) {
            createTimeRange.lte(cn.hutool.core.date.DateUtil.format(request.getCreateTimeEnd(), "yyyy-MM-dd HH:mm:ss"));
        }
        mainQuery.filter(createTimeRange);
    }
  • 同步时转为UTC时间
sql 复制代码
TO_TIMESTAMP(DATE_FORMAT(res.createTime - INTERVAL '8' HOUR, 'yyyy-MM-dd HH:mm:ss')) as createTime
  • 增加配置
yml 复制代码
  jackson:
    locale: zh_CN
    time-zone: GMT+8
    date-format: yyyy-MM-dd HH:mm:ss
  • 会使用jackson的配置转换时间

小结

  • 理解Elasticsearch 内部固定使用 UTC 时间存储所有日期类型字段。实际上这2个问题是时间没对其的缘故,存入数据转成UTC时间,范围查询用东八区时间就没有问题。
相关推荐
共享家95272 小时前
OpenClaw核心功能
大数据·elasticsearch·搜索引擎
醉颜凉4 小时前
实战教程:如何使用 Kibana 对 Elasticsearch 数据进行可视化和操作(从入门到精通)
大数据·elasticsearch·jenkins
oioihoii4 小时前
CentOS 7单机部署Elasticsearch:这些坑和关键配置,生产环境踩过才知道
linux·elasticsearch·centos
Elastic 中国社区官方博客5 小时前
Kibana 仪表板即代码:在 Elastic 9.4 中用于 Kibana 仪表板的 GitOps、漂移检测与 Terraform
大数据·人工智能·elasticsearch·搜索引擎·云原生·kibana·terraform
MemoriKu6 小时前
【端侧 AI 部署】MobileCLIP 导出 ONNX/TFLite 并发布到 Hugging Face 的完整实践
大数据·人工智能·elasticsearch·搜索引擎·重构·开源
逸Y 仙X7 小时前
文章五:Elasticsearch安全通信
java·大数据·安全·elasticsearch·搜索引擎·全文检索·jenkins
garmin Chen9 小时前
Elasticsearch(2):JavaRestClient操作Elasticsearch全流程实战指南
java·大数据·elasticsearch·搜索引擎
阿坤带你走近大数据19 小时前
Paimon相关概念的介绍
flink·数据湖·paimon
不做无法实现的梦~1 天前
git指令速查
大数据·elasticsearch·搜索引擎