首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >编排小型python任务的最佳实践(主要是在BigQuery中执行SQL )

编排小型python任务的最佳实践(主要是在BigQuery中执行SQL )
EN

Stack Overflow用户
提问于 2020-04-16 09:58:48
回答 2查看 763关注 0票数 2

我们正在使用GCP中的公共和云功能来协调我们的数据工作流。

我们的工作流程类似于:

gcp

pubsub1和pubsub3可以在不同的时间触发(例如:凌晨1点和凌晨4点)。他们每天被触发,从外部来源(我们的ETL,Talend)。

我们的云函数基本上在BigQuery中执行SQL。

这很好,但是我们必须手动创建一个编排数据库来记录函数何时开始和结束(回答“函数X已执行好吗?”的问题)。业务逻辑与业务逻辑有很强的耦合,因为云功能必须知道之前必须执行哪些功能,以及之后要触发哪些pubsub。

因此,我们正在寻找一个分离业务逻辑和业务逻辑的解决方案。

我发现composer (气流)可以是一个解决方案,但是:

  • 它不能以本地方式运行云功能(使用API,它非常有限,每个项目有16个调用par 100秒)
  • 我们可以在气流中与BigQuery操作员一起使用BigQuery,但是业务流程和业务逻辑将再次强烈耦合。

那么,在我们的案例中,什么是最好的实践呢?

谢谢你的帮忙

EN

Stack Overflow用户

发布于 2020-04-17 10:51:35

作为气流的替代方案,我会看一看"argo工作流程“-> https://github.com/argoproj/argo

它没有作曲家的开销,特别是对于较小的工作量。

我会:

创建一个从外部工具读取pubsub消息的部署,并将其部署到kubernetes。

基于消息执行工作流。工作流中的每个步骤都可以是一个云函数,打包在docker中。

(我会用kubernetes作业替换云函数,然后由工作流触发。)

用docker打包云功能并在kuberentes中运行是非常直接的。

存在带有gsutil/bq/gcloud的预构建坞映像,因此您可以创建bash脚本,使用"bq“命令行执行bigquery中的内容。

票数 1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61247490

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档