旧版 'connector.type' = 'jdbc',新版 'connector' = 'jdbc'。 新旧区别,旧版根据查询决定key,新版你只需要定义了key就是upsert了,不需要查询符合一定要求。
Leonard Xu <[email protected]> 于2020年12月7日周一 下午5:11写道: > Hi, > 你是不是没有订阅flink的用户邮件列表,所以有些邮件你看不到。 > 你可以发送任意内容的邮件到[email protected] <mailto: > [email protected]> 即可订阅用户邮件列表,订阅后邮件列表里大家的提问和回答你都可以看见了。 > > [1] https://flink.apache.org/zh/community.html > > > > 在 2020年12月7日,16:50,Leonard Xu <[email protected]> 写道: > > > > Hi, > > > >> 在 2020年12月7日,16:41,爱成绕指柔 <[email protected] <mailto:[email protected]>> > 写道: > >> > >> Exception in thread "main" org.apache.flink.table.api.TableException: > UpsertStreamTableSink requires that Table has a full primary keys if it is > updated. > > > > 这个错误是在query 没法推断出主键,而 hbase sink 是一个upsert sink, 需要PK来实现upsert语义。 > > > > 在1.10的版本的话,你可以试着改写下SQL,比如在query的外层再加一层group by rowkey, 这种方式性能比较差。 > > 建议直接升级1.11.x版本,在1.11.0之后flink > 支持定义PK,你这个case只需要在hbase表的DDL上声明rowkey为PK即可,不再需要通过query推断PK。 > > > > 祝好, > > Leonard > >
