首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何(流-)插入许多小行(每行很少字节)到BigQuery成本效益?

如何(流-)插入许多小行(每行很少字节)到BigQuery成本效益?
EN

Stack Overflow用户
提问于 2022-01-03 14:25:37
回答 1查看 374关注 0票数 1

我有一个具有以下属性的BigQuery表:

代码语言:javascript
运行
复制
Table size: 1.64 TB
Number of rows: 9,883,491,153

使用流插入将数据放在那里(每批500行)。

谷歌云定价计算器来看,到目前为止,这些插入的成本大约应该是86 $。

但在现实中,它被证明是大约482 $。

解释在定价文档

流插入(tabledata.insertAll):每200 MB $0.010 (对成功插入的行收取费用)。使用1KB的最小大小计算单个行。)

因此,在我的表中,每行只有182个字节,但是我需要为每一行支付1024字节,这导致了估计成本的562 %。

是否有一种规范的(当然也是合法的)方法来改善这种情况,即降低成本?(类似于插入只有一个结构数组列的临时表,在一行中容纳多行,然后拆分-定期移动到实际目标表中?)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-04 23:30:35

我可以建议你以下几种选择:

使用BigQuery存储写API。您可以将记录流到BigQuery中,它们可以作为在DB中写入的记录可用,也可以对进程进行批处理,以插入大量的记录,以便在单个操作中提交。

一些优点是:

  • 较低的成本,因为你每月有2 TB免费。
  • 它通过使用流偏移量来支持精确的一次语义。
  • 如果在客户端流时表架构发生更改,则BigQuery存储写入将通知客户端。

以下是有关BigQuery存储写入的更多信息。

另一个选项是,您可以使用Beam/DataFlow创建一个流到BigQuery的批处理,并使用BigQueryIO和batch的写入方法。您可以看到更多的信息,这里

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70567211

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档