我使用flink sql cdc取连接 mysql表的时候,当我的mysql表type这个字段类型是tinyint类型时 使用type in(1,2,3,4,5)会报以下的错误,只有当我把字段类型改成int的时候才能使用in,这是符合预期的吗,当字段类型不匹配的时候 flink sql不会自动转换类型吗?
[ERROR] Could not execute SQL statement. Reason: org.codehaus.commons.compiler.CompileException: Line 6, Column 88: No applicable constructor/method found for actual parameters "int"; candidates are: "org.apache.flink.table.runtime.util.collections.ByteHashSet() |
Hi,
从你的报错来看,是 in 不支持隐式 CAST。 你要么可以把 type 定义成 INT,要不把后面的值 CAST 成 TINYINT。 Best, Hailong Wang 在 2020-11-10 10:41:47,"丁浩浩" <[hidden email]> 写道: >我使用flink sql cdc取连接 mysql表的时候,当我的mysql表type这个字段类型是tinyint类型时 使用type in(1,2,3,4,5)会报以下的错误,只有当我把字段类型改成int的时候才能使用in,这是符合预期的吗,当字段类型不匹配的时候 flink sql不会自动转换类型吗? > >[ERROR] Could not execute SQL statement. Reason: >org.codehaus.commons.compiler.CompileException: Line 6, Column 88: No applicable constructor/method found for actual parameters "int"; candidates are: "org.apache.flink.table.runtime.util.collections.ByteHashSet() |
Administrator
|
是的。Flink 目前还不支持隐式类型转换。
Best, Jark On Tue, 10 Nov 2020 at 14:28, hailongwang <[hidden email]> wrote: > Hi, > > > 从你的报错来看,是 in 不支持隐式 CAST。 > 你要么可以把 type 定义成 INT,要不把后面的值 CAST 成 TINYINT。 > > > Best, > Hailong Wang > > 在 2020-11-10 10:41:47,"丁浩浩" <[hidden email]> 写道: > >我使用flink sql cdc取连接 mysql表的时候,当我的mysql表type这个字段类型是tinyint类型时 使用type > in(1,2,3,4,5)会报以下的错误,只有当我把字段类型改成int的时候才能使用in,这是符合预期的吗,当字段类型不匹配的时候 flink > sql不会自动转换类型吗? > > > >[ERROR] Could not execute SQL statement. Reason: > >org.codehaus.commons.compiler.CompileException: Line 6, Column 88: No > applicable constructor/method found for actual parameters "int"; candidates > are: "org.apache.flink.table.runtime.util.collections.ByteHashSet() > |
请问有没有计划加入隐式类型自动转化呢
> 在 2020年11月10日,下午2:35,Jark Wu <[hidden email]> 写道: > > 是的。Flink 目前还不支持隐式类型转换。 > > Best, > Jark > > On Tue, 10 Nov 2020 at 14:28, hailongwang <[hidden email]> wrote: > >> Hi, >> >> >> 从你的报错来看,是 in 不支持隐式 CAST。 >> 你要么可以把 type 定义成 INT,要不把后面的值 CAST 成 TINYINT。 >> >> >> Best, >> Hailong Wang >> >> 在 2020-11-10 10:41:47,"丁浩浩" <[hidden email]> 写道: >>> 我使用flink sql cdc取连接 mysql表的时候,当我的mysql表type这个字段类型是tinyint类型时 使用type >> in(1,2,3,4,5)会报以下的错误,只有当我把字段类型改成int的时候才能使用in,这是符合预期的吗,当字段类型不匹配的时候 flink >> sql不会自动转换类型吗? >>> >>> [ERROR] Could not execute SQL statement. Reason: >>> org.codehaus.commons.compiler.CompileException: Line 6, Column 88: No >> applicable constructor/method found for actual parameters "int"; candidates >> are: "org.apache.flink.table.runtime.util.collections.ByteHashSet() >> |
暂时还没有 你们是什么场景需要用到隐式类型
丁浩浩 <[hidden email]> 于2020年11月10日周二 下午2:45写道: > 请问有没有计划加入隐式类型自动转化呢 > > > 在 2020年11月10日,下午2:35,Jark Wu <[hidden email]> 写道: > > > > 是的。Flink 目前还不支持隐式类型转换。 > > > > Best, > > Jark > > > > On Tue, 10 Nov 2020 at 14:28, hailongwang <[hidden email]> wrote: > > > >> Hi, > >> > >> > >> 从你的报错来看,是 in 不支持隐式 CAST。 > >> 你要么可以把 type 定义成 INT,要不把后面的值 CAST 成 TINYINT。 > >> > >> > >> Best, > >> Hailong Wang > >> > >> 在 2020-11-10 10:41:47,"丁浩浩" <[hidden email]> 写道: > >>> 我使用flink sql cdc取连接 mysql表的时候,当我的mysql表type这个字段类型是tinyint类型时 使用type > >> in(1,2,3,4,5)会报以下的错误,只有当我把字段类型改成int的时候才能使用in,这是符合预期的吗,当字段类型不匹配的时候 flink > >> sql不会自动转换类型吗? > >>> > >>> [ERROR] Could not execute SQL statement. Reason: > >>> org.codehaus.commons.compiler.CompileException: Line 6, Column 88: No > >> applicable constructor/method found for actual parameters "int"; > candidates > >> are: "org.apache.flink.table.runtime.util.collections.ByteHashSet() > >> > > > |
就比如我要用flink cdc 接入mysql表,一般都是直接将mysql表的DDL稍加修改然后在flink sql中创建,一般都不会考虑到
类型转换的问题就直接沿用mysql中的类型,当然sql也是一样的。同样的sql在满足语法正确性的情况下,mysql中能跑,而flinksql中无法跑, 当然可以通过显示类型转化来完成,但是能提供自动转化会更好的提供易用性。 > 在 2020年11月10日,下午2:51,Danny Chan <[hidden email]> 写道: > > 暂时还没有 你们是什么场景需要用到隐式类型 > > 丁浩浩 <[hidden email]> 于2020年11月10日周二 下午2:45写道: > >> 请问有没有计划加入隐式类型自动转化呢 >> >>> 在 2020年11月10日,下午2:35,Jark Wu <[hidden email]> 写道: >>> >>> 是的。Flink 目前还不支持隐式类型转换。 >>> >>> Best, >>> Jark >>> >>> On Tue, 10 Nov 2020 at 14:28, hailongwang <[hidden email]> wrote: >>> >>>> Hi, >>>> >>>> >>>> 从你的报错来看,是 in 不支持隐式 CAST。 >>>> 你要么可以把 type 定义成 INT,要不把后面的值 CAST 成 TINYINT。 >>>> >>>> >>>> Best, >>>> Hailong Wang >>>> >>>> 在 2020-11-10 10:41:47,"丁浩浩" <[hidden email]> 写道: >>>>> 我使用flink sql cdc取连接 mysql表的时候,当我的mysql表type这个字段类型是tinyint类型时 使用type >>>> in(1,2,3,4,5)会报以下的错误,只有当我把字段类型改成int的时候才能使用in,这是符合预期的吗,当字段类型不匹配的时候 flink >>>> sql不会自动转换类型吗? >>>>> >>>>> [ERROR] Could not execute SQL statement. Reason: >>>>> org.codehaus.commons.compiler.CompileException: Line 6, Column 88: No >>>> applicable constructor/method found for actual parameters "int"; >> candidates >>>> are: "org.apache.flink.table.runtime.util.collections.ByteHashSet() >>>> >> >> >> |
好的 了解
丁浩浩 <[hidden email]> 于2020年11月10日周二 下午3:19写道: > 就比如我要用flink cdc 接入mysql表,一般都是直接将mysql表的DDL稍加修改然后在flink sql中创建,一般都不会考虑到 > 类型转换的问题就直接沿用mysql中的类型,当然sql也是一样的。同样的sql在满足语法正确性的情况下,mysql中能跑,而flinksql中无法跑, > 当然可以通过显示类型转化来完成,但是能提供自动转化会更好的提供易用性。 > > > 在 2020年11月10日,下午2:51,Danny Chan <[hidden email]> 写道: > > > > 暂时还没有 你们是什么场景需要用到隐式类型 > > > > 丁浩浩 <[hidden email]> 于2020年11月10日周二 下午2:45写道: > > > >> 请问有没有计划加入隐式类型自动转化呢 > >> > >>> 在 2020年11月10日,下午2:35,Jark Wu <[hidden email]> 写道: > >>> > >>> 是的。Flink 目前还不支持隐式类型转换。 > >>> > >>> Best, > >>> Jark > >>> > >>> On Tue, 10 Nov 2020 at 14:28, hailongwang <[hidden email]> wrote: > >>> > >>>> Hi, > >>>> > >>>> > >>>> 从你的报错来看,是 in 不支持隐式 CAST。 > >>>> 你要么可以把 type 定义成 INT,要不把后面的值 CAST 成 TINYINT。 > >>>> > >>>> > >>>> Best, > >>>> Hailong Wang > >>>> > >>>> 在 2020-11-10 10:41:47,"丁浩浩" <[hidden email]> 写道: > >>>>> 我使用flink sql cdc取连接 mysql表的时候,当我的mysql表type这个字段类型是tinyint类型时 使用type > >>>> in(1,2,3,4,5)会报以下的错误,只有当我把字段类型改成int的时候才能使用in,这是符合预期的吗,当字段类型不匹配的时候 > flink > >>>> sql不会自动转换类型吗? > >>>>> > >>>>> [ERROR] Could not execute SQL statement. Reason: > >>>>> org.codehaus.commons.compiler.CompileException: Line 6, Column 88: No > >>>> applicable constructor/method found for actual parameters "int"; > >> candidates > >>>> are: "org.apache.flink.table.runtime.util.collections.ByteHashSet() > >>>> > >> > >> > >> > > > |
Free forum by Nabble | Edit this page |