异常 Column ‘xxx‘ not found in any table"/>
[问题踩坑]Flink 1.11.1 SQL View中UDTF调用异常 Column ‘xxx‘ not found in any table
在Flink 1.11.1版本中,执行下面的Flink SQL,会抛出异常:
"org.apache.calcite.sql.validate.SqlValidatorException: Column 'message' not found in any table"
-- 创建Kafka数据源表test_table
CREATE TABLE test_table
(username STRING,message STRING
) WITH ('connector' = 'kafka','topic' = 'test_topic','properties.bootstrap.servers' = '127.0.0.1:9092','properties.group.id' = 'test_group','format' = 'json','scan.startup.mode' = 'earliest-offset'
);-- 注册自定义表值函数(UDTF) testUdtf
CREATE FUNCTION testUdtf AS 'com.test.shadow.TestUdtf'-- SQL视图test_view中包含UDTF调用testUdtf(message)
CREATE VIEW test_view AS
SELECT username,meaasge,ip,url FROM test_table,
LATERAL TABLE(testUdtf(message)) as T(ip,url);
这是Flink 1.11.1的一个Bug,原因是在视图View的扩展查询里,关键词"LATERAL"丢失了。导致当使用Flink SQL创建的视图里,包含UDTF调用时,会出现参数字段找不到的异常。
目前Flink 1.11.2已修复该Bug,可通过升级Flink版本来解决该问题。
社区类似问题:flink sql多层view嵌套,字段not found
官方Bug链接:SqlValidatorException thrown when select from a view which contains a UDTF call
更多推荐
[问题踩坑]Flink 1.11.1 SQL View中UDTF调用异常 Column ‘xxx‘ not found in any table
发布评论