我一直在Apache Beam中进行调查,看看这是否是解决我的问题的方法,但我还没有找到所需的所有信息,所以我认为最好问问。
场景:SaaS服务的用户可以上传数据和自定义Python脚本,并构建一个管道来对这些数据执行脚本。因此,服务读取数据,以数据作为输入运行Python脚本,将输出传递给用户上传的下一个脚本,最后将结果保存在数据库中。
当前的解决方案是在Kubernetes kluster中使用Akka Actors和每个租户运行不安全Python代码的执行pod构建的,但我们想用其他东西来替换它。
需要支持:
- 多租户:正在执行的Python脚本不能访问任何其他正在执行的脚本的内存或临时文件
- 数据隔离:任何时候都不应该从任何其他用户(比如从正在运行的Python脚本)读取来自用户/tenat的输入、数据库或中间数据。
- 由于Python脚本可以包含任何内容,因此它们必须在隔离的环境中运行。
这个问题可以用Apache Beam解决吗(也许可以用Apache Flink作为运行器),或者我应该寻找其他解决方案吗?
所有的提示和思考的事情都是受欢迎的!
1条答案
按热度按时间7vux5j2d1#
我不能说太多关于FlinkRunner,但DataflowRunner是一个很好的适合你的情况。你可以检查How Cloud Dataflow works and how Dataflow Job is managed。