当前位置:   article > 正文

mysql到hive数据类型转换_mysql datatime hive

mysql datatime hive

1.类型映射关系

mysql和hive中的数据类型存在差异,在mysql集成数据到hive中这样的场景下,我们希望在hive中的数据是贴源的,所以在hive中希望创建和mysql结构一致的表。

mysql到hive数据类型映射参考如下:

mysql数据类型hive数据类型
整型bigintBIGINT
整型intBIGINT
整型smallintBIGINT
整型tinyintBIGINT
浮点型decimaldecimal
浮点型doubleDOUBLE
浮点型floatDOUBLE
二进制binaryBINARY
二进制varbinaryBINARY
字符charSTRING
字符varcharSTRING
字符mediumtextSTRING
字符textSTRING
时间datetimeSTRING
时间timeSTRING
时间timestampSTRING
时间datedate
jsonjsonMAP<STRING,STRING>

2.问题注意:

1.问题:

用公司的大数据平台(DataX)导数,已经开发上线一个多月的一批报表,突然有同事说有个报表数据不准。出在时间字段上。
分析:
1、先看了原数据MySQL字段类型为datetime,目标字段为timestamp类型;
2、经发现所有时间的差距都是8小时,怀疑是因为时区转换的原因;
3、对比其他表,看看是大范围现象还是特殊情况,发现其他的同样情况字段的一样没有问题,也有改变为string字段类型的也没有问题;

2.解决办法

经过对比:发现DATAX(sqoop也类似)在转换MySQL datatime字段类型为hive的timestamp时会出现问题:默认先转为零食去对应时间戳,再转换为北京市区时间,就会使时间多8小时。
解决办法有两个:
1、转换为string类型;
2、继续用timestamp类型,但是需要行存储(即text存储)。

遇见时间类型转换问题时要小心,保守最好是string,简单的比较大小不会影响后续计算。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/529254
推荐阅读
相关标签
  

闽ICP备14008679号