google-bigquery - 更新bigquery表的不同方式

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

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

方法 1:

文件上传到存储桶 --> 触发 Cloud Function(更新 bigquery 表)-->Bigquery

方法 2:

文件上传到存储桶 --> 触发 Cloud Function(触发数据流作业)-->Dataflow-->Bigquery。

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

最佳答案

这是一个相当广泛的问题,所以如果它被投票决定关闭,我不会感到惊讶。尽管如此,我始终会选择#2(GCS -> CF -> Dataflow -> BigQuery)。

请记住,Cloud Functions 存在最长执行时间。如果您从 Cloud Function 启动加载作业,则需要将逻辑烘焙到其中以轮询并检查状态(BigQuery 中的加载作业是异步的)。如果失败了,你就需要处理它。但是,如果它仍在运行并且您达到了云函数的最大执行速度怎么办?

至少通过使用 Dataflow,您不会遇到最大执行时间的问题,并且如果由于某些暂时原因(例如,管道)失败,您可以简单地重新运行管道。网络问题。

关于google-bigquery - 更新bigquery表的不同方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52124461/

相关文章:

google-bigquery - 我们可以使用 Python 创建数据洞察报告吗?

sql - BigQuery SQL 如何在使用 LIMIT 时获取总计数

google-bigquery - 调试数据流模板 GCS 到 BigQuery

google-cloud-platform - 如何收听YouTube新视频?

node.js - Firebase 函数在 "Error in the build environment"中部署结果

java - Google Dataflow/Dataprep Shuffle key 太大 (INVALID_ARGUMENT)

google-cloud-dataflow - 如何使用 DatastoreIO 和 Dataflow 批量删除数百万个实体

mysql - 用于中型数据的 BigQuery 替代方案

permissions - 从 Data Studio 访问数据时,数据集级别的 BigQuery Data Viewer 权限与项目级别的 BigQuery Data Viewer 权限有什么区别?

javascript - 如何从云函数中读取 .json 类型的新云存储文件的内容?