[问题踩坑]Flink 1.11.1 SQL View中UDTF调用异常 Column ‘xxx‘ not found in any table

Posted 白夜鸦羽

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[问题踩坑]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的主要内容,如果未能解决你的问题,请参考以下文章

[问题踩坑]Flink 1.11.1 on Yarn Application模式时,JobId始终为00000000000000000000000000000000

[问题踩坑]Flink 1.11.1 on Yarn Application模式时,JobId始终为00000000000000000000000000000000

[问题踩坑]Flink SQL CDC维表查询异常:User does not have the ‘LOCK TABLES‘ privilege required to obtain a ……

[问题踩坑]Flink SQL CDC维表查询异常:User does not have the ‘LOCK TABLES‘ privilege required to obtain a ……

Flink Java踩坑记录(gegge1.10.0)

Flink Java踩坑记录(gegge1.10.0)