"Flink CDC中这个如何解决?cdc 同步到hudi再同步到hive,hive查询时间戳类型字段报错
java.lang.IllegalArgumentException: Timestamp format must be yyyy-mm-dd hh:mm:ss[.fffffffff]
at java.sql.Timestamp.valueOf(Timestamp.java:237)
at org.apache.hive.jdbc.HiveBaseResultSet.evaluate(HiveBaseResultSet.java:445)
at org.apache.hive.jdbc.HiveBaseResultSet.getColumnValue(HiveBaseResultSet.java:425)
at org.apache.hive.jdbc.HiveBaseResultSet.getObject(HiveBaseResultSet.java:467)
at org.apache.hive.beeline.Rows$Row.(Rows.java:160)
at org.apache.hive.beeline.BufferedRows.(BufferedRows.java:57)
at org.apache.hive.beeline.IncrementalRowsWithNormalization.(IncrementalRowsWithNormalization.java:50)
at org.apache.hive.beeline.BeeLine.print(BeeLine.java:2322)
at org.apache.hive.beeline.Commands.executeInternal(Commands.java:1026)
at org.apache.hive.beeline.Commands.execute(Commands.java:1215)
at org.apache.hive.beeline.Commands.sql(Commands.java:1144)
at org.apache.hive.beeline.BeeLine.dispatch(BeeLine.java:1497)
at org.apache.hive.beeline.BeeLine.execute(BeeLine.java:1355)
at org.apache.hive.beeline.BeeLine.begin(BeeLine.java:1134)
at org.apache.hive.beeline.BeeLine.begin(BeeLine.java:1082)
at org.apache.hive.beeline.BeeLine.mainWithInputRedirection(BeeLine.java:546)
at org.apache.hive.beeline.BeeLine.main(BeeLine.java:528)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.hadoop.util.RunJar.run(RunJar.java:318)
at org.apache.hadoop.util.RunJar.main(RunJar.java:232)
Error: Unrecognized column type:TIMESTAMP_TYPE (state=,code=0)"
根据提供的错误信息,看起来在使用Flink CDC将数据同步到Hudi,然后再同步到Hive时,查询时间戳类型字段时出现了错误。错误提示为java.lang.IllegalArgumentException: Timestamp format must be yyyy-mm-dd hh:mm:ss[.fffffffff]。
这个错误通常是由于时间戳字段的格式不符合Hive要求的格式引起的。Hive要求时间戳字段的格式必须是yyyy-mm-dd hh:mm:ss[.fffffffff],其中yyyy-mm-dd是日期部分,hh:mm:ss[.fffffffff]是时间部分。
解决此问题的方法是确保在将数据同步到Hudi之前,将时间戳字段的格式转换为符合Hive要求的格式。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。