如果表在保留期内被删除,Bigquery 是不是收费?

Posted

技术标签:

【中文标题】如果表在保留期内被删除,Bigquery 是不是收费?【英文标题】:Do Bigquery charge if table gets deleted via retention period?如果表在保留期内被删除,Bigquery 是否收费? 【发布时间】:2018-12-05 05:29:28 【问题描述】:

我有大约 150 GB 的数据,我想使用 DML 语句将其存储在 bigquery 中。

这是定价模型。

https://cloud.google.com/bigquery/pricing#dml

根据他们的说法,他们将收取通过 DML 删除表格的费用。

如果我创建具有保留期的表格,是否需要为此付费?考虑到我会一直插入数据。我不在乎插入数据的成本。

【问题讨论】:

【参考方案1】:

根据 DML 规范,如果使用 DML 语句删除行(或在其 SQL 中使用 DELETE 命令),Google 将对行删除收费。原因是:BigQuery 必须扫描行才能删除它们(如DELETE FROM mydataset.mytable WHERE id=xxx; 等),因此您必须为删除结果行之前扫描的字节数付费。

您始终可以使用 BigQuery UI 或 bq 命令行实用程序从数据集中免费删除整个表。

此外,您需要支付 BigQuery 中的存储费用(无论使用情况如何)。含义:您需要为您的数据在 Google 磁盘上占用的字节数付费。

【讨论】:

如果我从使用 SDK 中删除...bigquery.tables().delete(projectId, scratchSchema, table).execute() 会运行 DDL 还是 DML 语句? 不确定它是否在后台运行 DDL 语句,但肯定不是 DML,因为它在删除之前没有扫描表中的任何内容。【参考方案2】: BigQuery 对表中删除而不是删除表收费。执行DROP TABLE 语句是免费的。 创建表格是免费的,除非您根据表格的结果创建表格,在这种情况下,请参阅query pricing 来计算您的费用。 存储成本取决于存储的字节数和数据的保留时间。有关详细信息,请参阅storage pricing。

【讨论】:

以上是关于如果表在保留期内被删除,Bigquery 是不是收费?的主要内容,如果未能解决你的问题,请参考以下文章

Bigquery 重复数据删除查询无法正常工作

Bigquery - 根据时差删除行

Bigquery如何从数据流中删除记录

如何在 BigQuery 中备份数据集?

Bigquery 根据另一个表在列中查找文本

BigQuery 目标表在使用数据传输复制数据集后为空