• 阿里DatatX mysql8往 Elasticsearch 7 插入时间数据 时区引发的问题


    1、mysql 读取错误指定serverTimezone=UTC

    jdbc:mysql://192.168.8.248:3306/sourcedb?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC"

    2、改成北京或者上海东八区时间

    "jdbc:mysql://192.168.8.248:3306/sourcedb?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai"

    3、时间字段需要把date类型变成text类型

    { "name": "createdate","type": "text", "format": "yyyy-MM-dd HH:mm:ss.SSSSSS"}

    4、完成以上步骤,导入数据时间格式正确

    以后为调试记录:

    用来配置Elasticsearch Writer,详情请参见Elasticsearch Writer。
    index:索引名称。
    indexType:索引类型,7.0及以上版本的Elasticsearch必须使用_doc。
    使用数据库id作为es中记录的_id
    {"name": "pk", "type": "id"},
    name指定为id,type也指定为id,这样就会把数据库的id作为es中的id了。
    不需要再指定name为id的字段了,不然会报错 
       { "name": "col_text", "type": "text", "analyzer": "ik_max_word"},
       
    注意时区问题 写入时指定时区 或 对UTC时间戳进行转换
    
    指定:“2019-03-12T12:12:12.123+0800”
    转换:东八区时间戳 = 3600000*8 + UTC时间戳   
       
    4.4.1.ES日期字段创建需指定格式 yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis
    
    {
         "name": "CREATE_DATE",
         "type": "date",
         "format": "yyyy-MM-dd HH:mm:ss"
    }
    4.4.2.日期数据导入时,text写入为日期格式,long写入为时间戳
    
    4.4.3.注意时区问题 写入时指定时区 或 对UTC时间戳进行转换
    
    指定:“2019-03-12T12:12:12.123+0800”
    转换:东八区时间戳 = 3600000*8 + UTC时间戳
    { "name": "createdate","type": "date", "format": "yyyy-MM-dd HH:mm:ss||epoch_millis"}
     { "name": "createdate","type": "text", "format": "yyyy-MM-dd HH:mm:ss"}
           { "name": "createdate","type": "text", "format": "yyyy-MM-dd HH:mm:ss"}
          
    Asia/Shanghai
    //北京时间东八区
    serverTimezone=GMT%2B8 
    //上海时间
    serverTimezone=Asia/Shanghai
    为解决此问题,可以选择东8区的Hongkong、Asia/Shanghai或者Asia/Hongkong作为参数,修改后url为    
  • 相关阅读:
    FastCgi与PHPfpm之间的关系
    PHP中多线程处理
    EASYUI+MVC4通用权限管理平台前言
    常用企业建站源码
    Oracle数据库同步服务
    Jquery easyui +MVC4 管理信息系统
    《自动化技术中的进给电气传动》1.1节和1.2节读书笔记
    FTP
    Samba
    rsync
  • 原文地址:https://www.cnblogs.com/Jeely/p/15242480.html
Copyright © 2020-2023  润新知