开发者社区 > 大数据与机器学习 > 实时计算 Flink > 正文

SET table.optimizer.source.predicate-pushdown-enab

SET table.optimizer.source.predicate-pushdown-enabled=false; 为什么这个配置为false了 但外面的where条件还是下推到source那里了,有谁碰到过这个问题吗

展开
收起
游客3oewgrzrf6o5c 2022-08-20 17:11:29 597 0
1 条回答
写回答
取消 提交回答
  • 全栈JAVA领域创作者

    这个问题可能是因为 Flink 的 SQL 解析器在某些情况下无法正确地识别外部的 WHERE 条件。您可以尝试在 Flink 中将外部的 WHERE 条件放在 SELECT 或 JOIN 语句之后,这样可以确保 Flink 能够正确地解析和使用这些条件。 例如,如果您有一个查询,它使用以下 SQL 语句:

    Copy code SELECT * FROM my_table JOIN my_table2 ON my_table.id = my_table2.id WHERE my_table2.name = 'John'; 您可以尝试将 WHERE 子句移到外部 SQL 语句中,例如:

    Copy code SELECT * FROM my_table JOIN my_table2 ON my_table.id = my_table2.id WHERE (my_table2.name = 'John' OR my_table2.name = 'Jane') 这样,Flink 就可以正确地解析和使用外部的 WHERE 条件。 另外,如果您使用的是 Hive 或者 Impala 等外部表的方式,也需要确保在 Flink 中启用正确的表解析器。您可以在 Flink 中配置正确的表解析器,并确保它们适当地配置。 希望这些建议能够帮助您解决这个问题。如果您仍然遇到问题,请尝试搜索 Flink 和 SQL 解析器的文档,以获取更多信息和解决方法。

    2023-06-16 17:38:27
    赞同 展开评论 打赏

实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。

相关电子书

更多
Lazy Join Optimizations Without Upfront Statistics 立即下载
Cost-based Query Optimization 立即下载
Cost-Based Optimizer in Apache 立即下载