flink-connector无法获取date类型的数据

【详述】问题详细描述 flink-connector无法获取date类型的数据
【导入/导出方式】数据从sr中导出到flink,date类型的数据能从sr中读取,但是get的时候无法获取,没有对应的getdate的方法,试过将将获取source换成string,timestamp都不行,通过getstring,gettimestamp也获取不到,最后通过getint能获取到,但是获取的日期数据成了一串数字,试过了simpleDateFormat也不行





请问下sr里面定义的是date类型吗

是的没错,请问有没有处理办法?我目前急需,感谢,还有timestamp带时区,datetime数据类型没有,您也可以看看 :tired_face:


试一下这个,这个获取的 object 是一个 org.apache.flink.table.data.TimestampData

你这个是哪个版本的flink - connector,我用的1.2.2_flink-1.14_2.12,没有你这个getField方法

依赖的 flink 版本是 1.14

com.starrocks flink-connector-starrocks 1.2.2_flink-1.14_2.12 依赖是这个吗,麻烦给我一下完整的,感谢,我的get了,确实没有getField这个方法

image
这个 1.14 就是代表的依赖的 flink 的版本,1.14 版本的 flink 应该都有这个方法


并没有,不知道是不是我用的方法有问题

image
把 RowData 转成 GenericRowData

百度官网查了下没搞懂怎么转,这是我的流:
StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
DataStreamSource rowDataDataStreamSource = env.addSource(StarRocksSource.source(tableSchema, options)).setParallelism(1);


这个地方不是有个 RowData 吗 直接转成 GenericRowData

1赞


这样?没玩过,报错

image
我是这样的,在你代码这里把rdr_search 转一下就行了
GenericRowData row= (GenericRowData) rdr_search;
xx.setUpdateTime(((TimestampData) row.getField(3)).toTimestamp());
测试Timestamp类型是能转出来的

1赞

运行通过不了。。。



我准备换成flink原生的jdbc了。。。


我的是可以的 :joy:
看看有没有大佬支援一下吧,我是萌新

你这个报的是 es 那边的错误,应该是 es 无法接收 java.sql.Timestamp 类型的数据,可以把 java.sql.Timestamp 转成 es 能接收的数据试一下

这样换了timestamp,可以了老板,感谢