【发布时间】:2020-07-15 10:46:08
【问题描述】:
我写了一个基于云存储触发器的云函数。我有 10-15 个文件以 5 秒的间隔登陆云存储桶,它将数据加载到 bigquery 表中(截断并加载)。
虽然存储桶中有 10 个文件,但我希望云功能以顺序方式处理它们,即一次 1 个文件,因为所有文件都访问同一个表进行操作。
目前云功能一次被多个文件触发,并且由于多个文件试图访问同一个表,它在 BIgquery 操作中失败。
有没有办法在云功能中配置这个??
提前致谢!
【问题讨论】:
-
所有文件都写在同一个表中吗?如果不是,您能否根据文件 prefix 或 GCS 中的不同路径来区分目标表?你每天有多少文件?
-
是的,我们有一个表来加载所有文件,这是一个截断加载表。不,我不能创建多个表,因为它们将再次指向同一个最终表。我们每天最多接收 30 个文件,但可能会有所不同
-
文件有特定的顺序吗?或者,您是否在截断加载后执行查询?
-
NO 没有接收或加载文件的特定顺序。是的,我们在分段加载后执行查询和转换活动。
-
为什么需要按顺序处理它们?这使云架构复杂化,并限制了它的可扩展性。为了更好地理解这个问题,请阅读:cloud.google.com/pubsub/docs/ordering
标签: google-cloud-platform google-bigquery google-cloud-functions google-cloud-storage