datax从Hdfs读数据写入Mysql报错--脏数据

datax报错:脏数据

datax从Hdfs读数据写入Mysql报错--脏数据

解决:

datax从Hdfs读数据写入Mysql报错--脏数据

Hive表 数据类型 DataX 内部类型
TINYINT,SMALLINT,INT,BIGINT Long
FLOAT,DOUBLE Double
String,CHAR,VARCHAR,STRUCT,MAP,ARRAY,UNION,BINARY String
BOOLEAN Boolean
Date,TIMESTAMP Date

参考地址:
https://github.com/alibaba/DataX/blob/master/hdfsreader/doc/hdfsreader.md#33-%E7%B1%BB%E5%9E%8B%E8%BD%AC%E6%8D%A2
由于textfile和orcfile文件表的元数据信息由Hive维护并存放在Hive自己维护的数据库(如mysql)中,目前HdfsReader不支持对Hive元数据数据库进行访问查询,因此用户在进行类型转换的时候,必须指定数据类型,如果用户配置的column为"*",则所有column默认转换为string类型。

其中:

  • Long是指Hdfs文件文本中使用整形的字符串表示形式,例如"123456789"。
  • Double是指Hdfs文件文本中使用Double的字符串表示形式,例如"3.1415"。
  • Boolean是指Hdfs文件文本中使用Boolean的字符串表示形式,例如"true"、“false”。不区分大小写。
  • Date是指Hdfs文件文本中使用Date的字符串表示形式,例如"2014-12-31"。
  • 特别提醒:
    • Hive支持的数据类型TIMESTAMP可以精确到纳秒级别,所以textfile、orcfile中TIMESTAMP存放的数据类似于"2015-08-21 22:40:47.397898389",如果转换的类型配置为DataX的Date,转换之后会导致纳秒部分丢失,所以如果需要保留纳秒部分的数据,请配置转换类型为DataX的String类型。