首页 > 解决方案 > 如何在 Flink 上“提交”一个临时 SQL 到 Beam

问题描述

我将 Apache Beam 与带有 Java SDK 的 Flink 运行器一起使用。似乎将作业部署到 Flink 意味着构建一个 80 兆字节的 fat jar,然后上传到 Flink 作业管理器。有没有办法轻松部署轻量级 SQL 来运行 Beam SQL?也许已经部署了可以 soemhow 获取和运行临时查询的工作?

标签: apache-flinkapache-beam

解决方案


如果我理解你的问题,我认为目前不可能。现在 Beam SDK 将始终构建一个胖 jar 来实现管道并包含所有管道依赖项,并且它将无法接受轻量级的 ad-hoc 查询。

如果您对总体上更具交互性的体验感兴趣,那么您可以看看正在进行的使 Beam 更具交互性的努力,例如:

  • SQL 外壳:https ://s.apache.org/beam-sql-packaging 。这描述了一个正在进行中的 Beam SQL shell,它应该允许您在 REPL 环境中在本地快速执行小型 SQL 查询,以便您可以交互式地探索您的数据,并在提交长时间运行的作业之前设计管道。不过,这不会改变作业提交给 Flink(或任何其他运行程序)的方式。因此,在您提交了长时间运行的作业后,您可能仍需要使用当前必须控制它的正常作业管理工具。

  • Python:https ://s.apache.org/interactive-beam 。描述将现有运行器包装到交互式包装器中的方法。


推荐阅读