价格

BigQuery 价格概览

BigQuery 是一个无服务器数据分析平台。您无需预配单个实例或虚拟机即可使用 BigQuery。而是 BigQuery 会根据您的需要自动分配计算资源。您还可以提前以插槽的形式预留计算容量,这些插槽代表虚拟 CPU。BigQuery 的价格结构体现了此设计。

BigQuery 价格包含两个主要组成部分:

  • 分析价格是处理查询的费用,其中包括 SQL 查询、用户定义的函数、脚本,以及可扫描表的某些数据操纵语言 (DML) 和数据定义语言 (DDL) 语句。

  • 存储价格是存储您加载到 BigQuery 中的数据的费用。

BigQuery 会对某些其他操作收费,包括流式插入和使用 BigQuery Storage API。如需了解详情,请参阅数据提取价格 (Data ingestion pricing)数据提取价格 (Data extraction pricing)

此外,BigQuery 还提供免费操作免费层级

您创建的每个项目都有与之关联的结算帐号。在项目中运行的 BigQuery 作业所产生的所有费用均会计入关联的结算帐号,BigQuery 存储费用也会计入关联的结算帐号。 您可以在 Cloud Console 中使用“Cloud Billing 报告”页面来查看 BigQuery 费用和趋势。

分析价格模式

BigQuery 针对运行查询提供两种价格模式供您选择:

  • 按需价格。借助此价格模式,您需要为每个查询处理的字节数付费。每月处理的前 1 TB 查询数据免费。

  • 统一费率价格。借助此价格模式,您可以购买槽,也就是虚拟 CPU。购买槽时,您将购买可以用于运行查询的专用处理容量。槽的使用承诺方案如下:

    • 灵活槽:承诺至少使用 60 秒。
    • 每月:承诺至少使用 30 天。
    • 每年:承诺使用 365 天。

    对于每月和每年方案,您承诺使用较长时间的容量,因此可以享有较低的价格。

您可以将这两种模式结合使用以满足自己的需求。采用按需价格模式,您只需为实际用量付费。但是,您的查询使用共享的槽池运行,因此性能可能会有所不同。采用统一费率价格模式时,您可以购买有保证的容量,承诺使用时间较长,享有折扣价。如需详细了解为您的工作负载选择哪种价格,请参阅使用 Reservations 管理工作负载

按需分析价格

默认情况下,查询采用按需价格模式计费。

借助按需价格模式,BigQuery 按处理的字节数(也称为读取的字节数)收费。无论您是将数据存储在 BigQuery 中,还是存储在外部数据源(例如 Cloud Storage、云端硬盘或 Cloud Bigtable)中,我们都会根据处理的字节数向您收取费用。按需价格仅根据用量计算。

按需查询价格如下所示:

如果客户的查询量较大,并且更倾向于每月支付稳定的费用,则可选择统一费率价格

价格详情

请注意以下关于按需查询费用的事项:

  • BigQuery 使用列式数据结构。我们会根据您选择的列中处理的总数据量向您收费,每列的总数据量是基于该列中的数据类型计算的。如需详细了解我们如何计算您的数据大小,请参阅数据大小计算
  • 您不需要为返回错误的查询或从缓存中检索结果的查询付费。 对于脚本作业,此事项按语句提供。
  • 系统在计算费用时会向上取整到最接近的 MB 数,查询引用的每个表所处理的数据至少计为 10 MB,每个查询所处理的数据也至少计为 10 MB。
  • 取消正在运行的查询作业可能会产生费用,费用最高可达正常完成查询所需的全部费用。
  • 在运行查询时,即使您对结果数量设置了明确的 LIMIT,我们也会根据您选择的列中处理的数据量向您收费。
  • 对表进行分区聚簇有助于减少查询处理的数据量。分区和聚簇是最佳做法,请尽量加以使用。
  • 按需查询价格在 Google Cloud SKU 页面上被称为分析价格。
  • 如果您对聚簇表运行查询,并且此查询包含针对聚簇列的过滤条件,则 BigQuery 会使用过滤条件表达式来剪除查询要扫描的块。这可以减少扫描的字节数。
  • 从 BigQuery 查询外部数据源时,您需要根据查询读取的字节数付费。如果外部数据存储在其他 Google Cloud 产品(例如 Cloud Storage)中,那么您还需要支付该产品的任何存储费用。如需了解详情,请参阅 Google Cloud 价格

BigQuery 提供了费用控制机制,可让您为查询费用设置上限。您可以进行以下设置:

如需详细了解如何计算处理的字节数,请参阅查询大小计算

统一费率价格

对于希望每月支付稳定的查询费用,而不是根据处理的数据量(TB 数)支付按需计费价格的客户,BigQuery 为其提供了统一费率价格方案。

如需启用统一费率价格,请使用 BigQuery Reservations

如果您注册固定费用方案,您将以 BigQuery 为单位购买专用的查询处理容量。您的查询会使用此容量,无需按处理的字节数付费。如果您的容量需求超出承诺容量,BigQuery 会生成槽队列,您无需额外付费。如需详细了解 BigQuery 如何利用槽来处理查询,请参阅

统一费率价格:

  • 涵盖查询费用,包括 BigQuery ML、DML、DDL 语句。
  • 不涵盖存储费用或 BI Engine 费用。
  • 作为区域性资源购买。在一个单区域位置或多区域位置购买的槽用量承诺无法在任何其他单区域位置或多区域位置使用,也不能转移。
  • 客户可以联系 Google Cloud 支持团队提高每个项目的并发配额。
  • 提供每秒、每月和每年承诺。
  • 可在整个组织共享。无需为每个项目购买槽用量承诺
  • 最少需要购买 100 个槽,并以 100 个槽为增量购买。
  • 在承诺期间按秒计费。

每月统一费率承诺

下表显示了每月槽用量承诺的费用。 如需了解详情,请参阅每月承诺

每年统一费率承诺

下表显示了每年槽用量承诺的费用。 如需了解详情,请参阅每年承诺

灵活槽:短期承诺

灵活槽是一种特殊的承诺类型:

  • 承诺期限只有 60 秒。
  • 此期限过后,您可以随时取消灵活槽。
  • 您只需按照部署了的承诺秒数付费。

灵活槽受可用容量的限制。当您尝试购买灵活槽时,不一定会购买成功。但是,一旦承诺购买成功,系统就会保证您的容量,除非您将其取消。如需了解详情,请参阅灵活槽

下表显示了灵活槽用量承诺的费用。

存储价格

存储价格是存储您加载到 BigQuery 中的数据的费用。您需要为活跃存储空间和长期存储空间付费。

  • 活跃存储包括过去 90 天内修改的任何表或表分区。

  • 长期存储包括任何连续 90 天未经过修改的表或表分区。该表的存储空间价格会自动下降 50% 左右。活跃存储空间和长期存储空间之间的性能、耐用性或可用性没有区别。

每月前 10 GB 免费存储。

价格详情

存储价格根据您表中所存储的数据在未压缩时的大小计算。数据大小根据各列的数据类型计算。如需详细了解数据大小的计算方式,请参阅数据大小计算

存储费用基于每秒每 MB 按比例计算。例如,如果您的存储情况如下:

  • 存储 100 MB 半个月,则需要支付 $0.001(十分之一美分)
  • 存储 500 GB 半个月,则需要支付 $5
  • 存储 1 TB 一整月,则需要支付 $20

存储空间用量以千兆字节 (GB) 为单位计算,其中 1 GB 为 230 个字节。此计量单位也称为吉比字节 (GiB)。与之类似,1 TB 为 240 个字节,即 1024 GB。

如果一个表连续 90 天未发生修改,系统将按长期存储费率计费。某表被视为长期存储后,不会出现性能、耐用性、可用性和任何其他功能方面的降级。

对于分区表,它的每一个分区都可以单独考虑是否采用长期存储价格。如果某个分区在过去 90 天内未进行修改,则该分区中的数据将被视为长期存储,可以按折扣价计费。

如果表发生了修改,价格会恢复到常规的存储价格,且 90 天连续未修改时间的计时器会从零开始重新计数。对表中数据进行任何修改都会重置该计时器,包括:

操作 详细信息
将数据加载到表中 通过任何加载或查询作业将数据附加到目标表或覆盖目标表。
将数据复制到表中 通过任何复制作业将数据附加到目标表或覆盖目标表。
将查询结果写入表中 通过任何查询作业将数据附加到目标表或覆盖目标表。
使用数据操纵语言 (DML) 使用 DML 语句修改表数据。
使用数据定义语言 (DDL) 使用 CREATE OR REPLACE TABLEDDL 语句替换表。
将数据流式插入表中 使用 tabledata.insertAll API 调用提取数据。

其他所有操作均不会重置计时器,包括:

  • 查询表
  • 创建表查询视图
  • 从表中导出数据
  • 复制表(至另一个目标表)
  • 修补或更新表资源

对于在结算周期内达到 90 天阈值的表,我们会相应地按比例计算其价格。

长期存储价格仅适用于 BigQuery 存储,不适用于外部数据源中存储的数据,这些数据源包括 Cloud Bigtable、Cloud Storage 和云端硬盘等。

数据大小计算

当您将数据加载到 BigQuery 中或查询数据时,我们会根据数据大小向您收取费用。数据大小是基于每个列的数据类型的大小计算的。

所存储数据的大小以及您的查询所处理的数据大小以千兆字节 (GB) 为单位计算,其中 1 GB 为 230 个字节。此计量单位也称为吉比字节 (GiB)。与之类似,1 TB 为 240 个字节,即 1024 GB。

BigQuery 的数据类型的大小如下所示:

数据类型 大小
INT64/INTEGER 8 个字节
FLOAT64/FLOAT 8 个字节
NUMERIC 16 个字节
BIGNUMERIC 32 个字节
BOOL/BOOLEAN 1 个字节
STRING 2 个字节 + UTF-8 编码字符串大小
BYTES 2 个字节 + 值中的字节数
DATE 8 个字节
DATETIME 8 个字节
TIME 8 个字节
TIMESTAMP 8 个字节
STRUCT/RECORD 0 个字节 + 包含的字段的大小
GEOGRAPHY 16 个字节 + 24 个字节 * geography 类型的数据中的顶点数量。如需验证顶点的数量,请使用 ST_NumPoints 函数。

所有数据类型的 null 值均计为 0 个字节。

重复列以数组形式存储,大小根据有多少个值来计算。例如,如果整数列 (INT64) 是重复的 (ARRAY<INT64>) 且包含 4 个条目,则系统会将该列计算为 32 个字节(即 4 个条目 x 8 个字节)。

数据提取价格

BigQuery 提供两种数据提取模式:

  • 批量加载。通过一次批量操作将源数据加载到一个或多个 BigQuery 表中。

  • 流处理。一次或以小批量流式传输一条数据。

如需详细了解应选择哪种模式,请参阅加载数据简介

价格详情

默认情况下,从 Cloud Storage 或本地文件将数据批量加载到 BigQuery 中时,您无需付费。默认情况下,加载作业时使用槽的共享池。BigQuery 并不保证此共享池的可用容量,也不保证您能实现的吞吐量。此外,您也可以购买专用槽以运行加载作业。对于专用槽,您需要按统一费率价格付费。将加载作业分配给预留时,它们将失去对免费池的访问权限。如需了解详情,请参阅分配

数据加载到 BigQuery 后,系统即会按照 BigQuery 存储价格收费。如果您从 Cloud Storage 加载数据,则需要为在 Cloud Storage 中存储数据支付费用。如需了解详情,请参阅 Cloud Storage 价格页面上的数据存储部分。

如果目标数据集位于 US 多区域位置,从任何其他区域中的 Cloud Storage 存储分区加载数据时,系统都不会收取网络出站流量费用。如需了解详情,请参阅位置注意事项

数据提取价格

BigQuery 提供两种数据提取模式:

  • 批量导出。将表数据导出到 Cloud Storage。

  • 流式读取。使用 Storage Read API 执行表数据的流式读取。

价格详情

导出数据

默认情况下,从 BigQuery 导出数据不会产生费用。默认情况下,导出作业时使用槽的共享池。BigQuery 并不保证此共享池的可用容量,也不保证您能实现的吞吐量。此外,您也可以购买专用槽以运行导出作业。对于专用槽,您需要按统一费率价格付费。将导出作业分配给预留时,它们将失去对免费池的访问权限。如需了解详情,请参阅分配

Storage Read API 价格

Storage Read API 采用按需价格模式。您需要为读取的数据量付费。选择统一费率价格模式的客户每月最多可以使用 Storage Read API 免费读取 300 TB 的数据。对于每月超过 300 TB 额度的部分,系统将按照按需费率进行计费。

在按需价格模式下,您的 Storage Read API 费用根据 ReadRows 调用从 BigQuery 存储空间读取的字节数计算。

读取的字节数包括用于过滤但未作为 ReadRows 输出返回给您的数据。从临时表中读取数据不需要付费。

请注意以下有关 Storage Read API 费用的事项:

  • 您需要根据读取的数据总量付费。读取的每列数据总量是根据列中数据的类型计算的,而数据的大小是根据列的数据类型计算的。如需详细了解数据大小的计算方式,请参阅数据大小计算
  • 即使 ReadRows 调用失败,您也需要为读取会话中读取的所有数据付费。
  • 如果您在数据流传输完毕之前取消 ReadRows 调用,则需要为取消前读取的所有数据付费。您的费用可能包括取消 ReadRows 调用之前已读取但未返回给您的数据。
  • 对表进行分区和聚簇是最佳做法,请尽量加以使用。您可以使用 WHERE 子句来删减分区,以减少读取的数据量。如需了解详情,请参阅查询分区表
  • Storage Read API 不包含在 Google Cloud 免费层级中。

免费操作

以下 BigQuery 操作在所有位置均为免费。配额和限制适用于这些操作。

操作 详细信息
加载数据 免费使用共享槽池。客户可以为保证容量选择统一费率价格。数据一旦加载到 BigQuery 中,您就需要支付存储费用。如需了解详情,请参阅数据提取价格
复制数据 您不需要为复制表的操作支付费用,但需要支付新表和所复制表的存储费用。如需了解详情,请参阅复制现有的表
导出数据 免费使用共享槽池,但需为在 Cloud Storage 中存储数据支付费用。如需了解详情,请参阅导出数据
删除数据集 您不需要为删除数据集的操作支付费用。
删除表、视图、分区和函数 您不需要为删除表、视图、各个表分区或用户定义的函数的操作支付费用。
元数据操作 您不需要为 list、get、patch、update 和 delete 调用支付费用。该类操作包括(但不限于):列出数据集、更新数据集的访问控制列表、更新表的说明或列出数据集内的用户定义的函数。
读取伪列 您不需要为查询以下伪列的内容支付费用:

_TABLE_SUFFIX
_PARTITIONDATE
_PARTITIONTIME
_FILE_NAME
读取元表 您不需要为查询以下元表的内容支付费用:

__PARTITIONS_SUMMARY__
__TABLES_SUMMARY__
用户定义的函数 (UDF) 您无需为创建、替换或调用永久性 UDF 支付费用。

免费层级

作为 Google Cloud 免费层级的一部分,BigQuery 提供一些有特定限额的免费资源。这些免费资源的用量限额在免费试用期间及试用结束后均有效。如果超过这些用量限额且免费试用期已过,您将需要根据本页中列出的价格支付费用。

资源 每月免费用量上限 详细信息
存储 每月前 10 GB 数据免费。 存储在 BigQuery 中的 BigQuery ML 模型和训练数据会计入 BigQuery 存储服务的免费层级。
查询(分析) 每月处理的前 1 TB 查询数据免费。 使用 BigQuery ML 预测、检查和评估功能的查询会计入 BigQuery 分析服务的免费层级。包含 CREATE MODEL 语句的 BigQuery ML 查询不计入免费层级。
BigQuery 还为那些希望有稳定月度费用的高用量客户提供统一费率价格方案。
BigQuery Storage Write API(预览版 每月的前 2 TB 免费。 如需了解详情,请参阅数据提取价格
BigQuery ML CREATE MODEL 查询 包含 CREATE MODEL 语句的查询每月处理的前 10 GB 数据免费。 BigQuery ML CREATE MODEL 查询独立于 BigQuery 分析服务的免费层级,仅适用于 BigQuery ML 内置模型(在 BigQuery 内训练的模型)。

后续步骤