我正在使用下面的ETL管道将数据输入BigQuery。数据源是.csv & .xls文件,来自每日下午3点发布的网址云调度程序在下午3:05向云发布/子主题发布消息Pub/Sub推送/触发订阅者-云函数在触发时,这些云函数(python )从URL下载文件,执行转换(清理、格式化、聚合和过滤)并将其上传到BigQuery。
在GCP中是否有一种更干净的方法可以根据计划从URL下载文件,将其转换并上传到BigQuery,而不是使用云调度器+ pub/sub +云函数?
我研究了Dataflow,但不知道它是否可以完成所有三项工作(按计划从URL下载、转换并上传到BQ)。
发布于 2022-07-27 20:01:39
在您的体系结构中,Dataflow只能替换PubSub + Cloud函数。您仍然需要一个调度程序来运行数据流(基于模板,可能是您的自定义模板)。
但是,在使用数据流之前,为什么需要它呢?我负责一个数据蛋糕,可以从不同的来源摄取数据,但是,因为每个元素都足够小,可以保存在内存中(云运行,但它非常类似于云函数),如果它工作的话,保持这种模式没有问题!
发布于 2022-07-27 21:15:10
我一直都在做这种事,我明白为什么你会想知道是否有一种更干净的方法。我们在GCP中使用Composer (Ariflow)。在您的场景中,我们将创建一个DAG和四个顺序的taks:
作曲家的工作应该是这样的:

从端到端加载表所需的所有代码都位于一个DAG/文件夹。
您确实需要支付和维护GCP上的Composer实例。看看其他公司是如何做这种事情的,会很有趣吗?
https://stackoverflow.com/questions/73142014
复制相似问题