你可以试用下 新版的 connector ('connector' = 'kafka'),对于类型的处理要完善很多。
Best, Jark On Wed, 26 Aug 2020 at 20:46, Danny Chan <yuzhao....@gmail.com> wrote: > 是的 加了 primary key constraint 后会强制将类型转成 Not nullable,这个是 primary key 的特性导致的。 > > Best, > Danny Chan > 在 2020年8月20日 +0800 PM5:19,xiao cai <flin...@163.com>,写道: > > Hi: > > flink版本1.11.0 connector为kafka > > DDL中声明某个字段为primary key时,会报类型不匹配,去掉primary key constraint就可以正常执行。 > > 把shop_id设置为 varchar not null也不行。 > > > > > > org.apache.flink.table.api.ValidationException: Type STRING NOT NULL of > table field 'shop_id' does not match with the physical type STRING of the > 'shop_id' field of the TableSource return type. > > > > > > SQL如下: > > create table source_0 ( > > `shop_id` varchar, > > `user_id` bigint, > > `category_id` int, > > `ts` bigint, > > `proc_time` as PROCTIME(), > > `event_time` AS TO_TIMESTAMP(FROM_UNIXTIME(`ts` / 1000, 'yyyy-MM-dd > HH:mm:ss')), > > watermark for event_time AS event_time, > > PRIMARY KEY (shop_id, user_id) NOT ENFORCED > > ) with ( > > 'connector.type' = 'kafka', > > > > > > ) >