该函数为什么我本地能够正常执行,写到flick cdc 提示错误呢?
org.apache.calcite.sql.validate.SqlValidatorException: No match found for function signature aes_decrypt(, )
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
如果您在本地执行 aes_decrypt 函数没有问题,但在 Flink CDC 中使用时出现了错误,可能是因为 Flink CDC 使用的 SQL 解析器和验证器不支持 aes_decrypt 函数。
Flink CDC 使用的是 Apache Calcite 作为 SQL 解析器和验证器。Apache Calcite 在 SQL 函数的支持上可能与您本地使用的数据库或工具有所差异。
要解决这个问题,您可以考虑以下几种方案:
替换函数:尝试使用 Flink CDC 支持的其他函数来替代 aes_decrypt 函数。如果有类似的加密或解密函数可用,可以尝试使用它们来达到相同的目的。
自定义函数:如果 Flink CDC 不支持所需的函数,您可以尝试自定义一个用户自定义函数(UDF)来实现您需要的加密解密逻辑,并在 Flink CDC 中使用该自定义函数。
修改源代码:如果您对 Flink CDC 的源代码有访问权限,您可以尝试修改源代码以支持 aes_decrypt 函数。这需要了解 Flink CDC 内部的工作原理,并在代码中添加对该函数的支持。
请注意,在使用自定义函数或修改源代码时,需要仔细测试和验证,以确保功能正确性和性能稳定性。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。