【发布时间】:2021-12-04 19:49:59
【问题描述】:
使用 Cloud Functions 的推荐方法之一是通过 Pub/Sub Push 订阅调用它们,以将 Pub/Sub 消息写入 BigQuery。我的消息非常小,而且数量很多。
我为写入 GBQ 的 60.000.000 条消息支付了大约 80 美元。我的 GCF 的配置是 128 MB,1 秒超时。
源代码:
exports['write-to-gbq'] = async (event, context) => {
const message = JSON.parse(Buffer.from(event.data, 'base64').toString())
const dataset = bigquery.dataset('dataset')
const table = dataset.table('table')
await table.insert({...message, created_at: new BigQueryDatetime(String(new Date().toISOString()))})
};
有没有办法将成本降低 10 倍以上? Compute Engine 实例似乎要便宜得多,但也许我做错了什么?
【问题讨论】:
-
看看你的账单。成本如何分解(百分比)。 BQ 是多少,Pub/Sub 等是多少?您的功能要求是什么......例如......是否可以接受延迟,以便插入被批处理并且不能尽快在 BQ 中可用?
-
$80 仅适用于 Cloud Function。 GBQ 账单只有 8 美元,与这个水槽几乎没有关系。我猜这是更多的查询。延迟最多几个小时是可以的。
标签: google-bigquery google-cloud-functions