更新时间:2024-11-06 GMT+08:00
在Flink SQL作业中创建表使用EL表达式,作业运行提示DLI.0005错误怎么办?
问题现象
Flink SQL作业创建表时,表名使用EL表达式,运行作业时报如下错误:
DLI.0005: AnalysisException: t_user_message_input_#{date_format(date_sub(current_date(), 1), 'yyyymmddhhmmss')} is not a valid name for tables/databases. Valid names only contain alphabet characters, numbers and _.
解决方案
需要将SQL中表名的“#”字符改成“$”即可。DLI中使用EL表达式的格式为:${expr}。
修改前:
t_user_message_input_#{date_format(date_sub(current_date(), 1), 'yyyymmddhhmmss')}
修改后:
t_user_message_input_${date_format(date_sub(current_date(), 1), 'yyyymmddhhmmss')}
修改后,Flink SQL作业能够正确解析表名,并根据EL表达式动态生成表名。
父主题: Flink SQL作业类