【bug】flink 1.11使用连接器时schema丢失DataType指定的物理信息

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

【bug】flink 1.11使用连接器时schema丢失DataType指定的物理信息

赵 建云
hello all:
我在为flink 1.11开发新的连接器时,发现了问题。
连接器的旧版本是支持flink1.9的,最近升级了flink 1.11后,test中,发现创建连接器需要声明schema,schema需要使用TableSchema信息,TableSchema包含的DataType,DataType指定物理类型后,在TableSourceSinkFactory中,获得的schema中,丢失了前面指定的物理类型。
这个问题影响了source、sink。导致了启动时,检查类型不能通过。
例如 DataTypes.DATE().bridgedTo(java.sql.Date.class);中,在运行时物理类型java.sql.Date丢失了,实际使用的是java.time.LocalDate。

  *
创建连接器
[创建连接器]
  *
TableSourceSinkFactory中的创建sink
[TableSourceSinkFactory中的创建sink]
  *
TableSchema的运行时物理信息
[TableSchema的运行时物理信息]

我在flink的jira没找到提交问题的按钮,so,就把问题发在了中文组里,请大家支持下这个问题~
赵建云
2020年8月18日
Reply | Threaded
Open this post in threaded view
|

Re: 【bug】flink 1.11使用连接器时schema丢失DataType指定的物理信息

赵 建云
补充图片链接
创建连接器
http://image.zhaojianyun.com/mweb/bug1.png
TableSourceSinkFactory中的创建sink
http://image.zhaojianyun.com/mweb/bug2.png
TableSchema的运行时物理信息
http://image.zhaojianyun.com/mweb/bug3.png



2020年8月18日 下午10:09,赵 建云 <[hidden email]<mailto:[hidden email]>> 写道:

hello all:
我在为flink 1.11开发新的连接器时,发现了问题。
连接器的旧版本是支持flink1.9的,最近升级了flink 1.11后,test中,发现创建连接器需要声明schema,schema需要使用TableSchema信息,TableSchema包含的DataType,DataType指定物理类型后,在TableSourceSinkFactory中,获得的schema中,丢失了前面指定的物理类型。
这个问题影响了source、sink。导致了启动时,检查类型不能通过。
例如 DataTypes.DATE().bridgedTo(java.sql.Date.class);中,在运行时物理类型java.sql.Date丢失了,实际使用的是java.time.LocalDate。

 *
创建连接器
[创建连接器]
 *
TableSourceSinkFactory中的创建sink
[TableSourceSinkFactory中的创建sink]
 *
TableSchema的运行时物理信息
[TableSchema的运行时物理信息]

我在flink的jira没找到提交问题的按钮,so,就把问题发在了中文组里,请大家支持下这个问题~
赵建云
2020年8月18日

Reply | Threaded
Open this post in threaded view
|

Re: 【bug】flink 1.11使用连接器时schema丢失DataType指定的物理信息

Jingsong Li
1.11 就用新的source sink接口吧

On Wed, Aug 19, 2020 at 12:43 AM 赵 建云 <[hidden email]> wrote:

> 补充图片链接
> 创建连接器
> http://image.zhaojianyun.com/mweb/bug1.png
> TableSourceSinkFactory中的创建sink
> http://image.zhaojianyun.com/mweb/bug2.png
> TableSchema的运行时物理信息
> http://image.zhaojianyun.com/mweb/bug3.png
>
>
>
> 2020年8月18日 下午10:09,赵 建云 <[hidden email]<mailto:
> [hidden email]>> 写道:
>
> hello all:
> 我在为flink 1.11开发新的连接器时,发现了问题。
> 连接器的旧版本是支持flink1.9的,最近升级了flink
> 1.11后,test中,发现创建连接器需要声明schema,schema需要使用TableSchema信息,TableSchema包含的DataType,DataType指定物理类型后,在TableSourceSinkFactory中,获得的schema中,丢失了前面指定的物理类型。
> 这个问题影响了source、sink。导致了启动时,检查类型不能通过。
> 例如
> DataTypes.DATE().bridgedTo(java.sql.Date.class);中,在运行时物理类型java.sql.Date丢失了,实际使用的是java.time.LocalDate。
>
>  *
> 创建连接器
> [创建连接器]
>  *
> TableSourceSinkFactory中的创建sink
> [TableSourceSinkFactory中的创建sink]
>  *
> TableSchema的运行时物理信息
> [TableSchema的运行时物理信息]
>
> 我在flink的jira没找到提交问题的按钮,so,就把问题发在了中文组里,请大家支持下这个问题~
> 赵建云
> 2020年8月18日
>
>

--
Best, Jingsong Lee
Reply | Threaded
Open this post in threaded view
|

Re: 【bug】flink 1.11使用连接器时schema丢失DataType指定的物理信息

赵 建云
是的,新的DynamicTable在开发中。table api下不能绑定物理类型的情况,导致了一些类型兼容问题,现在有了解决的方案。

赵建云
2020年8月20日

2020年8月20日 下午2:27,Jingsong Li <[hidden email]<mailto:[hidden email]>> 写道:

1.11 就用新的source sink接口吧

On Wed, Aug 19, 2020 at 12:43 AM 赵 建云 <[hidden email]<mailto:[hidden email]>> wrote:

补充图片链接
创建连接器
http://image.zhaojianyun.com/mweb/bug1.png
TableSourceSinkFactory中的创建sink
http://image.zhaojianyun.com/mweb/bug2.png
TableSchema的运行时物理信息
http://image.zhaojianyun.com/mweb/bug3.png



2020年8月18日 下午10:09,赵 建云 <[hidden email]<mailto:[hidden email]><mailto:
[hidden email]>> 写道:

hello all:
我在为flink 1.11开发新的连接器时,发现了问题。
连接器的旧版本是支持flink1.9的,最近升级了flink
1.11后,test中,发现创建连接器需要声明schema,schema需要使用TableSchema信息,TableSchema包含的DataType,DataType指定物理类型后,在TableSourceSinkFactory中,获得的schema中,丢失了前面指定的物理类型。
这个问题影响了source、sink。导致了启动时,检查类型不能通过。
例如
DataTypes.DATE().bridgedTo(java.sql.Date.class);中,在运行时物理类型java.sql.Date丢失了,实际使用的是java.time.LocalDate。

*
创建连接器
[创建连接器]
*
TableSourceSinkFactory中的创建sink
[TableSourceSinkFactory中的创建sink]
*
TableSchema的运行时物理信息
[TableSchema的运行时物理信息]

我在flink的jira没找到提交问题的按钮,so,就把问题发在了中文组里,请大家支持下这个问题~
赵建云
2020年8月18日



--
Best, Jingsong Lee