如果表在保留期内被删除,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 是不是收费?的主要内容,如果未能解决你的问题,请参考以下文章