更新bigquery表的不同方法

时间:2018-09-01 02:48:15

标签: google-bigquery google-cloud-functions google-cloud-dataflow

在gcp中,每当文件(多种格式(例如json,xml))上传到存储桶时,我都需要更新bigquery表。我有两个选择,但不确定每个选择的利弊。有人可以建议哪个是更好的解决方案,为什么?

方法1:

文件上传到存储桶->触发云功能(更新bigquery表)-> Bigquery

方法2:

文件上传到存储桶->触发云功能(触发数据流作业)->数据流-> Bigquery。

在生产环境中,哪种方法更合适?为什么?如果有其他方法,请告诉我。

1 个答案:

答案 0 :(得分:2)

这是一个广泛的问题,因此,如果它被投票关闭,我不会感到惊讶。话虽如此,我总是会去第二名(GCS -> CF -> Dataflow -> BigQuery)。

请记住,使用Cloud Funtions可以达到最长执行时间。如果您从Cloud Function开始加载任务,则需要将逻辑烘焙到其中,以轮询并检查状态(BigQuery中的加载任务是异步的)。如果失败,则需要处理。但是,如果它仍在运行并且您达到了Cloud Function的最大执行水平,该怎么办?

至少通过使用Dataflow,您不会遇到最大执行时间的问题,并且如果由于某种暂时性原因而失败,则只需重新运行管道即可。网络问题。