hive mysql日期减一天_Datax-Mysql同步至Hive时时区问题导致日期减少一天
一、问题背景
Datax从Mysql数据库到Hive数据同步任务时,发现同步时,date类型字段同步到Hive里中string类型字段时,部分日期会减少一天。
二、集群环境
Datax版本:3.0
三、现象描述
mysql数据库时间
Hive数据库中时间
1986-07-17
1986-07-16
1987-06-26
1987-06-25
1987-12-08
1987-12-08
1988-05-18
1988-05-17
1989-08-08
1989-08-07
1997-08-08
1997-08-08
以上数据是测试时,发现的情况,可以看到对于某些特定日期数据来说,日期往前推移了一天。而且hive表中接收的字段必须是string类型的,对于hive也是date类型的数据不会有这种问题,对于这种现象令人十分迷惑,只能先从代码上找找原因所在,但可以确定大概率的问题应该出在类型转换上。
四、Datax代码
Reader代码Date类型转换:
CommonRdbmsReader:
protected Record buildRecord(RecordSender recordSender,ResultSet rs, ResultSetMetaData metaData, int columnNumber, String mandatoryEncoding,
TaskPluginCollector taskPluginCollector) {
Record record = recordSender.createRecord();
try {
for (int i = 1; i <= columnNumber; i++) {
switch (metaData.getColumnType(i)) {
...
// for mysql bug, see http://bugs.mysql.com/bug.php?id=35115
case Types.DATE:
if (metaData.getColumnTypeName(i).equalsIgnoreCase("year")) {
record.addColumn(new LongColumn(rs.getInt(i)));
} else {
record.addColumn(new DateColumn(rs.getDate(i)));
}
break;
...
}
}
} catch (Exception e) {
if (IS_DEBUG) {
LOG.debug("read data " + record.toString()
+ " occur exception:", e);
}
//TODO 这里识别为脏数据靠谱吗?
taskPluginCollector.collectDirtyReco
hive mysql日期减一天_Datax-Mysql同步至Hive时时区问题导致日期减少一天相关推荐
- mysql 天数减1_mysql 日期操作 增减天数、时间转换、时间戳
MySQL datediff(date1,date2):两个日期相减 date1 - date2,返回天数. select datediff('2008-08-08', '2008-08-01'); ...
- mysql日期减后取月_mysql加减时间-函数-时间加减
select timediff('23:40:00', ' 18:30:00'); -- 两时间相减 SELECT substring( timediff('23:40:00', ' 18:30:00 ...
- mysql中日期相减_如何使用MySQL数据库
如何使用MySQL数据库 前言:前面我们已经了解了如何搭建MySQL数据库,那么接下来我们就一起来了解一下,如何使用MySQL数据库. MySQL数据库系统也是一个典型的C/S(客户端/服务器)架构应 ...
- mysql 日期减10分钟_获取当前时间减去10分钟的话SQL语句怎么写
获取当前时间减去10分钟的话SQL语句怎么写 Mysql日期和时间函数不求人 本文出自:http://linuxdb.yeah.net 作者: 晏子 (2001-07-05 15:00:00) 对于每 ...
- 2021年大数据Hive(二):Hive的三种安装模式和MySQL搭配使用
全网最详细的Hive文章系列,强烈建议收藏加关注! 后面更新文章都会列出历史文章目录,帮助大家回顾知识重点. 目录 系列历史文章 前言 Hive的三种安装模式和MySQL搭配使用 一.Hive的安装方 ...
- mysql加减时间-函数-时间加减
select timediff('23:40:00', ' 18:30:00'); -- 两时间相减 SELECT substring( timediff('23:40:00', ' 18:30: ...
- mysql加减分钟_mysql加减时间-函数-时间加减
select timediff('23:40:00', '18:30:00'); --两时间相减 SELECT substring( timediff('23:40:00', '18:30:00'), ...
- mysql查询员工表中所有员工入职20个月之后的日期_Mysql基础教程
往期推荐 2020黑马Python教程 Docker基础知识 网易云课堂2019 Java高级教程 郭术生AE教程 SQL语句分类 DDL:数据定义语言,用来定义数据库对象:库.表.列等 DML:数据 ...
- hive mysql 远程_Hive配置 远程连接MySQL
因为hive是Hadoop的一个组件,作为数据厂库,hive的数据是存储在Hadoop的文件系统中的,hive为Hadoop提供SQL语句,是Hadoop可以通过SQL语句操作文件系统中的数据.hiv ...
最新文章
- 前端图片上坐标连线_平面上三角形“四心”的解析建模
- BAC--Downtime 凌晨时段设定
- 【学习笔记】【C语言】结构体
- 获取当前程序运行的主机名称
- java编写一个彩票开奖的模拟程序.游戏共有两种玩法,一种是21选5,即玩家输入5个1到21内的不重复的数。另外一种玩法是6+1玩法,即要求玩家输入7个整数,代表所购买的彩票号码,最后一个是特码。
- Vue学习笔记之11-slot插槽
- Actran助力汽车全频率段声学响应预测与优化
- 2345好压去广告方法
- 动态规划之《高楼扔鸡蛋》问题详解 LeetCode 887.鸡蛋掉落
- Python参考手册(第4版)pdf
- 超市服务器的维护和管理,超市管理系统的设计与实现
- 从零到一:如何用你的电脑成功登录QQ
- vscode输入vue一键生成代码
- LSTM模型预测sin函数详解
- leetcode Sum 系列----寻找和为定值的多个数
- word中新建的标题编号与上一级的标题编号没有顺承的一种解决方法
- linux端oracle设置缓冲区大小,oracleORA-20000: ORU-10027: buffer overflow, limit of 2000 bytes
- Spring认证中国教育管理中心-Spring Data MongoDB教程五
- MPLS BGP配置实例及抓包分析
- 前端面试题《网络浏览器》