配额和限制

本文档列出了适用于 BigQuery 的配额和系统限制。

  • 配额用于指定您可以使用的可计数共享资源的数量。配额由 BigQuery 等 Google Cloud 服务定义。
  • 系统限制是无法更改的固定值。

Google Cloud 使用配额来帮助确保公平性并减少资源使用和可用性的激增。配额用于限制您的 Google Cloud 项目可使用的 Google Cloud 资源的数量。配额适用于一系列资源类型,包括硬件、软件和网络组件。例如,配额可以限制对某项服务的 API 调用次数、您的项目并发使用的负载均衡器数量或者您可以创建的项目数量。配额可以防止服务过载,从而保护 Google Cloud 用户社区。配额还可帮助您管理自己的 Google Cloud 资源。

Cloud 配额系统执行以下操作:

  • 监控 Google Cloud 产品和服务的消耗情况
  • 限制这些资源的消耗量
  • 提供请求更改配额值的方法

在大多数情况下,当您尝试消耗的资源超出其配额允许的范围时,系统会阻止对资源的访问,并且您尝试执行的任务会失败。

配额通常在 Google Cloud 项目级层应用。您在一个项目中使用资源不会影响您在另一个项目中的可用配额。在 Google Cloud 项目中,配额在所有应用和 IP 地址间共享。

BigQuery 资源也有系统限制。系统限制不能更改。

默认情况下,BigQuery 配额和限制按项目计算。按不同基础计算的配额和限制如下所示;例如,每个表的最大列数或每位用户的并发 API 请求数上限。具体政策取决于资源可用性、用户个人资料、Service Usage 历史记录和其他因素,如有更改,恕不另行通知。

配额补充

系统会全天定期补充每日配额,以反映这些配额在限制速率方面的意图。系统还会间歇性刷新,以避免在配额用完时出现长时间中断。通常情况下,系统每过几分钟就会提供更多配额,而不是每天在全局范围内补充一次配额。

申请增加配额

如需调整大多数配额,请使用 Google Cloud 控制台。如需了解详情,请参阅申请配额调整

如需获取在 Google Cloud 控制台中申请增加配额的分步指南,请点击操作演示

操作演示

配额用量上限

如需了解如何通过创建配额替换项来限制特定资源的用量,请参阅创建配额替换项

所需权限

要在 Google Cloud 控制台中查看和更新 BigQuery 配额,您需要具有与任何 Google Cloud 配额相同的权限。如需了解详情,请参阅 Google Cloud 配额权限

问题排查

如需了解如何排查配额和限制相关的错误,请参阅排查 BigQuery 配额错误

作业

配额和限制适用于 BigQuery 代表您运行的作业,无论它们是使用 Google Cloud 控制台、bq 命令行工具运行还是使用 REST API 或客户端库以编程方式运行。

查询作业

以下配额适用于通过运行交互式查询和计划查询而自动创建的查询作业,以及使用 jobs.query 和查询类型的 jobs.insert API 方法提交的作业:

配额 默认 备注
每天的查询用量 无限制 项目中的查询可以处理的字节数不受限制。
在 Google Cloud 控制台中查看配额
每位用户每天的查询用量 无限制 用户的查询每天可以处理的字节数没有限制。
在 Google Cloud 控制台中查看配额
每天 Cloud SQL 联合查询跨区域字节数 1 TB 如果 BigQuery 查询处理位置与 Cloud SQL 实例位置不同,则查询为跨区域查询。您的项目每天最多可在跨区域查询中运行 1 TB 的数据。请参阅 Cloud SQL 联合查询
在 Google Cloud 控制台中查看配额
每天的跨云转移字节数 1 TB 您每天可从 Amazon S3 存储桶或 Azure Blob Storage 转移高达 1 TB 的数据。如需了解详情,请参阅从 Amazon S3Azure 进行跨云转移。
在 Google Cloud 控制台中查看配额

以下限制适用于通过运行交互式查询和计划查询而自动创建的查询作业,以及使用 jobs.query 和查询类型的 jobs.insert API 方法提交的作业:

限制 默认 备注
加入队列的交互式查询数上限 1,000 个查询 您的项目最多可以将 1,000 个交互式查询排入队列。超出此限制的其他交互式查询会返回配额错误。
加入队列的批量查询数上限 20,000 个查询 您的项目在队列中最多可以包含 20,000 个批量查询。超出此限制的其他批量查询将返回配额错误。
对 Bigtable 外部数据源执行的并发交互式查询数上限 16 个查询 您的项目最多可以对 Bigtable 外部数据源运行 16 个并发查询。
包含远程函数的并发查询数上限 10 条查询 每个项目最多可以使用远程函数运行十条并发查询。
并发多语句查询数上限 1,000 个多语句查询 您的项目最多可以运行 1,000 个并发多语句查询。 如需了解与多语句查询相关的其他配额和限制,请参阅多语句查询
包含 UDF 的并发旧版 SQL 查询数上限 6 个查询 您的项目最多可使用用户定义的函数 (UDF) 运行 6 个并发旧版 SQL 查询。 此限制同时适用于交互式查询和批量查询。 包含 UDF 的交互式查询也会计入交互式查询的并发限制。此限制不适用于 GoogleSQL 查询。
每日查询大小限制 无限制 默认情况下,未设置每日查询大小限制。不过,您可以通过创建自定义配额来控制每天的查询用量每位用户每天的查询用量,从而限制用户可以查询的数据量。
每日目标表更新限制 请参阅每天的表操作数上限 查询作业中的目标表更新会计入目标表每天的最大表操作次数限制。目标表更新包括通过以下方式执行的附加操作和覆盖操作:使用 Google Cloud 控制台或 bq 命令行工具运行查询,或者调用 jobs.query 和查询类型 jobs.insert API 方法运行查询。
查询/多语句查询执行时间限制 6 小时

查询或多语句查询最多可执行 6 小时,然后就会失败。但有时系统会重试查询。查询最多可以尝试 3 次,每次尝试最多可运行 6 小时。因此,查询的总运行时可能会超过 6 个小时。

CREATE MODEL 作业超时默认为 24 小时,但时序、AutoML 和超参数调优作业除外,超时为 72 小时。

每个查询引用的表数上限 1,000 个资源 在完全展开后,查询最多可引用 1,000 个唯一、唯一视图、唯一用户定义的函数 (UDF) 和唯一的表函数。此限制包括:
  • 查询直接引用的表、视图、UDF 和表函数。
  • 查询中引用的其他视图/UDF/表函数所引用的表、视图、UDF 和表函数。
SQL 查询字符长度上限 1,024 千个字符 SQL 查询的长度不得超过 1,024 千个字符。此限制包括注释和空格字符。如果查询超出此限制,您会收到以下错误:The query is too large.为了保持在此限制内,请考虑将大型数组或列表替换为查询参数,并在会话中将长查询拆分为多个查询。
未解析的旧版 SQL 查询的长度上限 256 KB 未解析的旧版 SQL 查询的长度不得超过 256 KB。如果查询超出此限制,您会收到以下错误:The query is too large. 为了保持在此限制内,请考虑将大型数组或列表替换为查询参数。
未解析 GoogleSQL 查询的长度上限 1 MB 未解析 GoogleSQL 查询的长度不得超过 1 MB。如果查询超出此限制,您会收到以下错误:The query is too large. 为了保持在此限制内,请考虑将大型数组或列表替换为查询参数。
已解析旧版和 GoogleSQL 查询的长度上限 12 MB 已解析查询的长度限制涵盖查询引用的所有视图和通配符表的长度。
GoogleSQL 查询参数的数量上限 1 万个参数 一个 GoogleSQL 查询最多可以有 10,000 个参数。
请求大小上限 10 MB 请求大小上限为 10 MB,包括查询参数等其他属性。
响应大小上限 10 GB - 已压缩 大小取决于数据的压缩比。实际响应大小可能远大于 10 GB。 将大型查询的结果写入目标表时,不限制最大响应大小。
行大小上限 100 MB 行大小上限是近一个似值,因为该限制基于行数据的内部表示形式。 系统会在执行查询作业时的某些阶段实施行大小上限。
表、查询结果或视图定义中的列数上限 1 万列 表、查询结果或视图定义最多可以有 1 万列。其中包括嵌套和重复的列。
采用按需价格的并发槽数上限 每个项目 2,000 个槽

每个组织 2 万个槽
使用按需价格,您的项目最多可以有 2,000 个并发槽。 此外,组织级别的并发槽数上限为 2 万个。 如果组织内的项目总需求超过 2 万个槽,BigQuery 会尝试在这些项目之间公平分配槽。 单个项目中的所有查询会共享 BigQuery 槽。BigQuery 可能会突破此限制以加快查询速度。 如需查看使用的槽数,请参阅使用 Cloud Monitoring 监控 BigQuery
对于按需价格,每个扫描数据的最大 CPU 用量 每 MiB 扫描数据使用 256 CPU 秒 采用按需价格模式,您的查询可以为每 MiB 扫描数据使用大约 256 CPU 秒。如果您的查询对于正在处理的数据量而言需要使用大量 CPU,则查询会失败并显示 billingTierLimitExceeded 错误。 如需了解详情,请参阅 billingTierLimitExceeded
多语句事务表变更 100 个表 一个事务最多可以更改 100 个表中的数据。
多语句事务分区修改 10 万次分区修改 一个事务最多可以执行 10 万次分区修改。
BigQuery Omni 查询结果大小上限 20 GiB(未压缩) 查询 AzureAWS 数据时,结果大小上限为 20 GiB 逻辑字节。如果查询结果大于 20 GiB,请考虑将结果导出到 Amazon S3Blob Storage。如需了解详情,请参阅 BigQuery Omni 限制
BigQuery Omni 每天的查询结果总大小 1 TB 项目的总查询结果大小为每天 1 TB。 如需了解详情,请参阅 BigQuery Omni 限制
BigQuery Omni 行大小上限 10 MiB 查询 AzureAWS 数据时,行大小上限为 10 MiB。如需了解详情,请参阅 BigQuery Omni 限制

虽然计划查询使用 BigQuery Data Transfer Service 的功能,但计划查询不是转移作业,并且不受加载作业限制的约束。

导出作业

以下限制适用于从 BigQuery 导出数据的作业,导出方式是使用 bq 命令行工具、Google Cloud 控制台或导出类型的 jobs.insert API 方法。

限制 默认 备注
每天导出的字节数上限 50 TiB 使用共享槽池时,您每天最多可以免费从一个项目中导出 50 TiB(太字节)的数据。您可以设置 Cloud Monitoring 提醒政策,以提供导出字节数的通知。 如果每天要导出 50 TiB(太字节)以上的数据,请执行以下操作之一:
每天的导出作业数上限 10 万次导出 您每天最多可以在一个项目中运行 10 万次导出。如果每天要运行超过 10 万次导出,请执行以下操作之一:
导出到单个文件的表大小上限 1 GB 您最多可以将 1 GB 的表数据导出到单个文件中。如需导出 1 GB 以上的数据,请使用通配符将数据导出到多个文件。将数据导出到多个文件时,各个文件的大小会有所不同。在某些情况下,输出文件的大小会超过 1 GB。
每次导出的通配符 URI 数量 500 个 URI 一次导出最多可导出 500 个通配符 URI。

如需详细了解如何查看当前的导出作业用量,请参阅查看当前配额用量

加载作业

使用 Google Cloud 控制台、bq 命令行工具或加载类型的 jobs.insert API 方法将数据加载到 BigQuery 时,受以下限制约束。

限制 默认 备注
每个表每天的加载作业数 1,500 个作业 加载作业(包括失败的加载作业)会计入目标表每天的表操作次数上限。如需了解标准表和分区表每天的表操作次数上限,请参阅
每天的加载作业数 10 万个作业 您的项目每 24 小时最多补充 10 万个加载作业配额。失败的加载作业会计入此限额。 在某些情况下,如果前一天的配额未完全使用,则可在 24 小时内运行 10 万个以上的加载作业。
每个表的列数上限 1 万列 一个表最多可以有 1 万列。这包括嵌套和重复的列。
每个加载作业的大小上限 15 TB 所有 CSV、JSON、Avro、Parquet 和 ORC 输入文件的总大小最大可达 15 TB。
作业配置中的源 URI 数量上限 1 万个 URI 一个作业配置最多可以有 1 万个源 URI。
每个加载作业的文件数上限 1000 万个文件 一个加载作业总共可有最多 1000 万个文件,包括与所有通配符 URI 匹配的所有文件。
来源 Cloud Storage 存储桶中的文件数量上限 大约 60,000,000 个文件 加载作业可以从包含多达大约 60,000,000 个文件的 Cloud Storage 存储桶中读取数据。
加载作业的执行时间限制 6 小时 如果加载作业的执行时间超过 6 个小时,则会失败。
Avro:文件数据块的大小上限 16 MB Avro 文件数据块的大小限制为 16 MB。
CSV:单元格大小上限 100 MB CSV 单元格的大小不得超过 100 MB。
CSV:行大小上限 100 MB CSV 行的大小上限为 100 MB。
CSV:文件大小上限 - 已压缩 4 GB 已压缩的 CSV 文件的大小限制为 4 GB。
CSV:文件大小上限 - 未压缩 5 TB 未压缩的 CSV 文件的大小上限为 5 TB。
以换行符分隔的 JSON (ndJSON):行大小上限 100 MB ndJSON 行的大小上限为 100 MB。
ndJSON:文件大小上限 - 已压缩 4 GB 已压缩的 ndJSON 文件的大小上限为 4 GB。
ndJSON:文件大小上限 - 未压缩 5 TB 未压缩的 ndJSON 文件的大小上限为 5 TB。

如果您由于频繁更新而经常超出加载作业限制,请改为考虑将数据流式插入到 BigQuery

如需了解如何查看当前的加载作业用量,请参阅查看当前配额用量

BigQuery Data Transfer Service 加载作业配额注意事项

BigQuery Data Transfer Service 转移创建的加载作业会计入 BigQuery 的加载作业配额中。请务必考虑在每个项目中启用的转移数量,以防止转移和其他加载作业产生 quotaExceeded 错误。

您可以使用以下公式来估算转移所需的加载作业数量:

Number of daily jobs = Number of transfers x Number of tables x Schedule frequency x Refresh window

其中:

  • Number of transfers 是您在项目中启用的转移配置的数量。
  • Number of tables 是各个转移类型创建的表的数量。表数量因转移类型而异:

    • Campaign Manager 转移会创建约 25 个表。
    • Google Ads 转移会创建约 60 个表。
    • Google Ad Manager 转移会创建约 40 个表。
    • Google Play 转移会创建约 25 个表。
    • Search Ads 360 转移会创建约 50 个表。
    • YouTube 转移会创建约 50 个表。
  • Schedule frequency 说明了转移作业的运行频率。我们为以下每种转移类型提供了转移作业运行时间表:

  • Refresh window 是数据转移作业包含的天数。如果输入 1,则不会进行每日回填。

复制作业

以下限制适用于复制表的 BigQuery 作业,这包括用于创建标准表、表克隆或表快照的副本、克隆或快照的作业。这些限制适用于使用 Google Cloud 控制台、bq 命令行工具或在作业配置中指定 copy 字段jobs.insert 方法创建的作业。无论这些复制作业成功还是失败,它们都会计入这些限制。

限制 默认 备注
每个目标表每天的复制作业数 请参阅每日表操作次数
每天的复制作业数 10 万个作业 您的项目每天最多可运行 10 万个复制作业。
每个目标表每天的跨区域复制作业数 100 个作业 您的项目每天最多可为一个目标表运行 100 个跨区域复制作业。
每天跨区域复制作业数 2,000 个作业 您的项目每天最多可运行 2,000 个跨区域复制作业。
要复制的源表数 1,200 个源表 对于每个复制作业,您最多可以从 1,200 个源表进行复制。

如需了解如何查看当前的复制作业使用情况,请参阅复制作业 - 查看当前配额用量

以下限制适用于复制数据集的情况:

限制 默认 备注
源数据集中的最大表数 25,000 个表 一个源数据集最多可以有 25,000 个表。
每次运行可复制到同一区域中目标数据集的最大表数 2 万个表 您的项目每次运行最多可将 2 万个表复制到同一区域内的目标数据集。如果源数据集包含超过 2 万个表,BigQuery Data Transfer Service 会安排顺序运行,每次最多复制 2 万个表,直到复制所有表。这些运行作业之间默认间隔为 24 小时,用户可以将其自定义为最短 12 小时。
每次运行可复制到其他区域中的目标数据集的最大表数 1,000 个表 您的项目每次运行时最多可将 1,000 个表复制到其他区域的目标数据集。如果源数据集包含超过 1,000 张表,BigQuery Data Transfer Service 会安排顺序运行,每次最多复制 1,000 张表,直到复制所有表为止。这些运行作业之间默认间隔为 24 小时,用户可以将其自定义为最短 12 小时。

预留

以下配额适用于预留

配额 默认 备注
欧盟区域的槽总数 5,000 个槽 您在欧盟多区域位置可以使用 Google Cloud 控制台购买的 BigQuery 槽数上限。
在 Google Cloud 控制台中查看配额
美国区域的槽总数 10,000 个槽 您在美国多区域位置可以使用 Google Cloud 控制台购买的 BigQuery 槽数上限。
在 Google Cloud 控制台中查看配额
us-east1 区域的槽总数 4,000 个槽 您在所列区域位置可以使用 Google Cloud 控制台购买的 BigQuery 槽数上限。
在 Google Cloud 控制台中查看配额
以下区域的槽总数:
  • asia-south1
  • asia-southeast1
  • europe-west2
  • us-central1
  • us-west1
2,000 个槽 您在每个列出的区域位置可以使用 Google Cloud 控制台购买的 BigQuery 槽数上限。
在 Google Cloud 控制台中查看配额
以下区域的槽总数:
  • asia-east1
  • asia-northeast1
  • asia-northeast3
  • asia-southeast2
  • australia-southeast1
  • europe-north1
  • europe-west1
  • europe-west3
  • europe-west4
  • northamerica-northeast1
  • us-east4
  • southamerica-east1
1,000 个槽 您在每个列出的区域位置可以使用 Google Cloud 控制台购买的 BigQuery 槽数上限。
在 Google Cloud 控制台中查看配额
BigQuery Omni 区域的槽总数 100 个槽 您在 BigQuery Omni 区域位置可以使用 Google Cloud 控制台购买的 BigQuery 槽数上限。
在 Google Cloud 控制台中查看配额
所有其他区域的槽总数 500 个槽 您在每个其他区域位置可以使用 Google Cloud 控制台购买的 BigQuery 槽数上限。
在 Google Cloud 控制台中查看配额

以下限制适用于预留

限制 备注
槽预留的管理项目 每个组织 5 个项目 组织中可以包含给定位置/区域的槽预留或有效承诺的项目数上限。
标准版本预留数上限 每个项目 10 个预留 组织中给定位置/区域每个管理项目的标准版预留数上限。
企业版或企业 Plus 版预留的数量上限 每个项目 200 个预留 给定位置/区域内每个管理项目中的组织或企业 Plus 版预留数量上限。
与具有 CONTINUOUS 作业类型的预留分配关联的预留中的槽数上限。 500 个槽 如果您要创建具有 CONTINUOUS 作业类型的预留分配,则关联的预留不得超过 500 个槽。

数据集

以下限制适用于 BigQuery 数据集

限制 默认 备注
数据集数量上限 无限制 一个项目可拥有的数据集数量没有限制。
每个数据集的表数 无限制 使用 API 调用时,如果数据集中的表接近 5 万个,则枚举性能会变慢。Google Cloud 控制台最多可为每个数据集显示 50,000 个表。
数据集的访问控制列表中的授权视图数 2500 个资源 数据集的访问控制列表最多可包含 2500 个授权资源,包括授权视图授权数据集授权函数。 如果由于有大量授权视图而导致超过此上限,请考虑将视图分组到授权数据集中。
每个数据集每 10 秒的数据集更新操作次数 5 次操作 您的项目每 10 秒最多可以执行 5 次数据集更新操作。 数据集更新限制包括以下各项执行的所有元数据更新操作:
数据集说明的长度上限 16384 个字符 为数据集添加说明时,说明文本最多可包含 16384 个字符。

所有表

以下限制适用于所有 BigQuery 表。

限制 默认 备注
列名的长度上限 300 个字符 列名最多只能包含 300 个字符。
列说明的长度上限 1024 个字符 为列添加说明时,说明文本最多只能包含 1024 个字符。
嵌套记录的深度上限 15 层 RECORD 类型的列可以包含嵌套的 RECORD 类型(也称为子记录)。嵌套深度上限为 15 层。 此限制与记录是基于标量还是基于数组(重复)无关。
表说明的长度上限 16,384 个字符 为表格添加说明时,说明文本最多可包含 16384 个字符。

标准表

以下限制适用于 BigQuery 标准(内置)

限制 默认 备注
每天的表修改次数 1,500 次修改

无论是更新表元数据、附加或更新数据,还是截断表,您的项目每天最多可以对每个表执行 1,500 次表修改。此限制不可更改,并且包括附加到或覆盖目标表的所有加载作业复制作业查询作业的总和。

DML 语句不会计入每天的表修改次数。

流式数据不会计入每天的表修改次数。

表元数据更新操作的速率上限 每 10 秒 5 次操作 您的项目每表每 10 秒最多可以执行 5 次表元数据更新操作。此限制适用于所有由以下项执行的表元数据更新操作: 此限制还包括所有加载作业、复制作业和查询作业的总数,这些作业对目标表执行附加或覆盖操作,或者使用 DML DELETEINSERTMERGETRUNCATE TABLEUPDATE 语句将数据写入表中。请注意,虽然 DML 语句计数会计入此限制,但达到上限时,不受其约束。DML 操作具有专用速率限制

如果超出此限制,您会收到类似于 Exceeded rate limits: too many table update operations for this table 的错误消息。 这是一个暂时性错误,您可以使用指数退避算法重试。

如需确定计入此限制的操作,您可以检查日志。如需了解如何诊断和解决此错误,请参阅排查配额错误

每个表的列数上限 1 万列 每个表、查询结果或视图定义最多可以有 1 万列。这包括嵌套列和重复列。

外部表

以下限制适用于以 Parquet、ORC、Avro、CSV 或 JSON 格式将数据存储在 Cloud Storage 中的 BigQuery 表:

限制 默认 备注
每个外部表的源 URI 数量上限 1 万个 URI 每个外部表最多可以有 1 万个源 URI。
每个外部表的文件数量上限 1000 万个文件 一个外部表最多可包含 1000 万个文件,包括与所有通配符 URI 匹配的所有文件。
每个外部表存储在 Cloud Storage 中的数据的大小上限 600 TB 一个外部表的所有输入文件最多可以包含 600 TB。此限制适用于存储在 Cloud Storage 上的文件大小;此大小与查询价格公式中使用的大小不同。 对于外部分区表,系统会在分区删减后应用此限制。
来源 Cloud Storage 存储桶中的文件数量上限 大约 60,000,000 个文件 外部表可以引用包含多达大约 60,000,000 个文件的 Cloud Storage 存储桶。对于外部分区表,系统会在分区删减之前应用此限制。

分区表

以下限制适用于 BigQuery 分区表

分区限制适用于对目标分区执行附加或覆盖操作的所有加载作业复制作业查询作业的总数。

单个作业可能会影响多个分区。例如,查询作业和加载作业可以写入多个分区。

BigQuery 在确定某个作业消耗的限额量时,会使用受该作业影响的分区数量。流式插入不会影响此限额。

如需了解保持在分区表限制内的策略,请参阅排查配额错误

限制 默认 备注
每个分区表的分区数 1 万个分区 每个分区表最多可以有 1 万个分区。如果超过此限制,请考虑将聚簇和分区一起使用,或者改用分区。
单个作业修改的分区数 4,000 个分区 每个作业操作(查询或加载)最多可影响 4,000 个分区。 BigQuery 会拒绝任何尝试修改 4,000 个以上分区的查询或加载作业。
每个分区表每天在注入期间的分区修改次数 11,000 次修改

无论是附加数据、更新数据还是截断注入时间分区表,您的项目每天最多可以进行 11,000 次分区修改。

DML 语句不会计入每天的分区修改次数。

每个列分区表每天的分区修改次数 3 万次修改

您的项目每天最多可以对列分区表进行 3 万次分区修改。

DML 语句不会计入每天的分区修改次数。

流式数据不会计入每天的分区修改次数。

分区表元数据更新操作的速率上限 每 10 秒 50 次修改 您的项目每 10 秒最多可以为每个分区表执行 50 次修改。此限制适用于所有由以下项执行的分区表元数据更新操作: 此限制还包括所有加载作业、复制作业和查询作业的总数,这些作业对目标表执行附加或覆盖操作,或者使用 DML DELETEINSERTMERGETRUNCATE TABLEUPDATE 语句将数据写入表中。

如果超出此限制,您会收到类似于 Exceeded rate limits: too many partitioned table update operations for this table 的错误消息。 这是一个暂时性错误,您可以使用指数退避算法重试。

如需确定计入此限制的操作,您可以检查日志

范围分区的可能范围数 1 万个范围 范围分区表最多可以有 1 万个可能的范围。 此限制适用于创建表时的分区规范。创建表后,此限制也适用于实际分区数。

表克隆

以下限制适用于 BigQuery 表克隆

限制 默认 备注
链中克隆和快照的数量上限 3 个表克隆或快照 克隆和快照总共的深度不得超过 3。创建基表的克隆或快照时,只能再创建结果的克隆或快照两次;尝试第三次创建结果的克隆或快照会导致错误。例如,您可以创建基表的克隆 A,创建克隆 A 的快照 B,并创建快照 B 的克隆 C。如需再创建第三级克隆或快照的副本,请改用复制操作
基表的克隆和快照数量上限 1,000 个表克隆或快照 一个给定基表的现有克隆和快照总数不能超过 1,000 个。举例来说,如果您有 600 个快照和 400 个克隆,则达到限额。

表快照

以下限制适用于 BigQuery 表快照

限制 默认 备注
并发表快照作业数上限 100 个作业 您的项目最多可以运行 100 个并发表快照作业。
每天的表快照作业数上限 5 万个作业 您的项目每天最多可以运行 5 万个表快照作业。
每个表每天的表快照作业数上限 50 个作业 您的项目每天最多可以为每个表运行 50 个表快照作业。
每个表快照每 10 秒的元数据更新数上限。 5 个更新 您的项目每 10 秒最多可更新 5 次表快照的元数据。
链中克隆和快照的数量上限 3 个表克隆或快照 克隆和快照总共的深度不得超过 3。创建基表的克隆或快照时,只能再创建结果的克隆或快照两次;尝试第三次创建结果的克隆或快照会导致错误。例如,您可以创建基表的克隆 A,创建克隆 A 的快照 B,并创建快照 B 的克隆 C。如需再创建第三级克隆或快照的副本,请改用复制操作
基表的克隆和快照数量上限 1,000 个表克隆或快照 一个给定基表的现有克隆和快照总数不能超过 1,000 个。举例来说,如果您有 600 个快照和 400 个克隆,则达到限额。

视图

以下配额和限制适用于视图具体化视图

逻辑视图

以下限制适用于 BigQuery 标准视图

限制 默认 备注
嵌套视图层数上限 16 层 BigQuery 最多支持 16 层嵌套视图。 您可以创建不超过此限制的视图,但查询层级数不得超过 15 个。如果超出此限制,BigQuery 会返回 INVALID_INPUT 错误。
用于定义视图的 GoogleSQL 查询的长度上限 25.6 万个字符 用于定义视图的单个 GoogleSQL 查询的长度不得超过 256 KB。此限制适用于单个查询,并且不包含查询中引用的视图的长度。
每个数据集的授权视图数上限 请参阅数据集
视图说明的长度上限 16,384 个字符 为视图添加说明时,说明文本最多可包含 16384 个字符。

具体化视图

以下限制适用于 BigQuery 具体化视图

限制 默认 备注
基表引用(同一数据集) 20 个具体化视图 每个基表最多可被来自同一数据集的 20 个具体化视图引用。
基表引用(同一项目) 100 个具体化视图 每个基表最多可被来自同一项目的 100 个具体化视图引用。
基表引用(整个组织) 500 个具体化视图 每个基表最多可被来自整个组织的 500 个具体化视图引用。
每个数据集的授权视图数上限 请参阅数据集
具体化视图说明的长度上限 16,384 个字符 为具体化视图添加说明时,说明文本最多可包含 16384 个字符。

搜索索引

以下限制适用于 BigQuery 搜索索引

限额 默认 Notes
每个区域每个项目每天的 CREATE INDEX DDL 语句数量 500 次操作 您的项目在一个区域内每天最多可以发出 500 次 CREATE INDEX DDL 操作。
每个表每天的搜索索引 DDL 语句数量 20 次操作 您的项目每天最多可以针对每个表发出 20 次 CREATE INDEXDROP INDEX DDL 操作。
不在预留中运行的搜索索引创建允许的每个组织的表数据总大小上限 多区域中为 100 TB;所有其他区域中为 20 TB 如果组织中具有索引的表的整体大小低于您区域的限制(USEU 多区域为 100 TB,所有其他区域为 20 TB),则可以为表创建搜索索引。如果索引管理作业在您自己的预留中运行,则此限制不适用。

向量索引

以下限制适用于 BigQuery 向量索引

限额 默认 Notes
基表的行数下限 5,000 行 一个表必须至少有 5,000 行才能创建向量索引。
基表的行数上限 对于索引类型 IVF

,为 10,000,000,000 行;对于索引类型 TREE_AH,为 200,000,000 行
如需创建 IVF 向量索引,一个表最多可以有 10,000,000,000 行;如需创建 TREE_AH 向量索引,一个表最多可以有 200,000,000 行。
编入索引的列中数组的大小上限 1,600 个元素 要编入索引的列中的数组最多可以包含 1,600 个元素。
向量索引填充的表大小下限 10 MB 如果您在小于 10 MB 的表上创建向量索引,则系统不会填充该索引。同样,如果从向量索引表中删除数据,使得表大小小于 10 MB,则系统会暂时停用向量索引。无论您是否将自己的预留用于索引管理作业,都会发生这种情况。当向量索引表的大小再次超过 10 MB 时,系统会自动填充其索引。
每个区域每个项目每天的 CREATE VECTOR INDEX DDL 语句数量 500 次操作 对于每个项目,您每天在每个区域最多可以发出 500 次 CREATE VECTOR INDEX 操作。
每个表每天的向量索引 DDL 语句数量 10 次操作 每个表每天最多可以发出 10 次 CREATE VECTOR INDEXDROP VECTOR INDEX 操作。
不在预留中运行的向量索引创建允许的每个组织的表数据总大小上限 6 TB 如果组织中具有索引的表的总大小低于 6 TB,则可以为表创建向量索引。如果索引管理作业在您自己的预留中运行,则此限制不适用。

例程

以下配额和限制适用于例程

用户定义的函数

以下限制适用于 GoogleSQL 查询中的临时性和永久性用户定义的函数 (UDF)

限制 默认 备注
每行的最大输出数 5 MB 处理单行数据时,JavaScript UDF 可以输出的最大数据量约为 5 MB。
使用 JavaScript UDF 的并发旧版 SQL 查询数上限 6 个查询 您的项目最多可以有 6 个在 JavaScript 中包含 UDF 的并发旧版 SQL 查询。 此限制包括交互式查询和批量查询。 此限制不适用于 GoogleSQL 查询。
每个查询的 JavaScript UDF 资源数量上限 50 个资源 一个查询作业最多可包含 50 个 JavaScript UDF 资源,例如内嵌代码 blob 或外部文件。
内嵌代码 blob 的大小上限 32 KB UDF 中的内嵌代码 blob 大小上限为 32 KB。
每个外部代码资源的大小上限 1 MB 每个 JavaScript 代码资源的大小上限为 1 MB。

以下限制适用于永久性 UDF:

限制 默认 备注
UDF 名称的长度上限 256 个字符 UDF 名称不得超过 256 个字符。
参数数量上限 256 个参数 一个 UDF 最多可以有 256 个参数。
参数名称的长度上限 128 个字符 UDF 参数名称不得超过 128 个字符。
UDF 参考链的深度上限 16 个引用 一个 UDF 引用链最多可以有 16 层引用。
STRUCT 类型参数或输出的深度上限 15 层 STRUCT 类型的 UDF 参数或输出最多可达 15 层深度。
每个 UDF 的 STRUCT 类型参数或输出中的字段数上限 1024 个字段 UDF 中 STRUCT 类型参数和输出最多可以有 1024 个字段。
CREATE FUNCTION 语句中的 JavaScript 库数量上限 50 个库 一个 CREATE FUNCTION 语句最多可包含 50 个 JavaScript 库。
包含的 JavaScript 库路径的长度上限 5,000 个字符 UDF 中包含的 JavaScript 库路径的长度最多为 5,000 个字符。
每个 UDF 每 10 秒的更新速率上限 5 个更新 您的项目每 10 秒最多可更新 UDF 5 次。
每个数据集的授权 UDF 数上限 请参阅数据集

远程函数

以下限制适用于 BigQuery 中的远程函数

限制 默认 备注
包含远程函数的并发查询数上限 10 条查询 每个项目最多可以使用远程函数运行十条并发查询。
输入大小上限 5 MB 一行中所有输入参数的总大小上限为 5 MB。
HTTP 响应大小限制(Cloud Run functions [第 1 代]) 10 MB 来自 Cloud Run 函数(第 1 代)的 HTTP 响应正文最大为 10 MB。超过此值会导致查询失败。
HTTP 响应大小限制(Cloud Functions (第 2 代) 或 Cloud Run) 15 MB 来自 Cloud Run 函数(第 2 代)或 Cloud Run 的 HTTP 响应正文最大为 15 MB。超过此值会导致查询失败。
HTTP 调用时间上限(Cloud Run functions [第 1 代]) 9 分钟 您可以为 Cloud Run 函数(第 1 代)自行设置单次 HTTP 调用的时间限制,但时间上限为 9 分钟。如果超过为 Cloud Run 函数(第 1 代)设置的时间限制,则可能会导致 HTTP 调用失败和查询失败。
HTTP 调用时间限制(Cloud Functions (第 2 代) 或 Cloud Run) 20 分钟 对 Cloud Run 函数 (第 2 代) 或 Cloud Run 的单次 HTTP 调用的时间限制。 如果超出此值,则可能会导致 HTTP 调用失败和查询失败。
HTTP 调用重试次数上限 20 对 Cloud Functions 函数(第 1 代、第 2 代)或 Cloud Run 的单次 HTTP 调用的重试尝试次数上限。 如果超出此值,则可能会导致 HTTP 调用失败和查询失败。

表函数

以下限制适用于 BigQuery 表函数

限制 默认 备注
表函数名称的长度上限 256 个字符 表函数的名称不得超过 256 个字符。
参数名称的长度上限 128 个字符 表函数参数的名称最多可包含 128 个字符。
参数数量上限 256 个参数 表函数最多可以有 256 个参数。
表函数引用链的深度上限 16 个引用 表函数引用链最多可以有 16 层引用。
类型为 STRUCT 的参数或输出的深度上限 15 层 表函数的 STRUCT 参数最多可达 15 层深度。同样,表函数输出中的 STRUCT 记录最高可达 15 层深度。
每个表函数中 STRUCT 类型的参数或返回表中的字段数上限 1024 个字段 表函数的 STRUCT 参数最多可包含 1024 个字段。 同样,表函数输出中的 STRUCT 记录最多可包含 1024 个字段。
返回表中的列数上限 1024 列 表函数返回的表最多可包含 1024 列。
返回表列名称的长度上限 128 个字符 返回的表中的列名称不得超过 128 个字符。
每个表函数每 10 秒的更新次数上限 5 个更新 您的项目每 10 秒最多可更新表函数 5 次。

Apache Spark 的存储过程

以下限制适用于 Apache Spark 的 BigQuery 存储过程

限制 默认 备注
并发存储过程查询数上限 50 每个项目最多可以运行 50 个并发存储过程查询。
使用中的 CPU 数上限 12,000 每个项目最多可以使用 12,000 个 CPU。已处理的查询不会消耗此限制。

除以下位置外,每个项目在每个位置最多可以使用 2,400 个 CPU:

  • asia-south2
  • australia-southeast2
  • europe-central2
  • europe-west8
  • northamerica-northeast2
  • southamerica-west1

在上述位置,每个项目在每个位置最多可以使用 500 个 CPU。

如果您在位于同一地理区域的一个多区域位置和一个单区域位置分别运行并发查询,则您的查询可能会耗用相同的并发 CPU 配额。

使用中的标准永久性磁盘的总大小上限 204.8 TB

每个项目在每个位置最多可以使用 204.8 TB 的标准永久性磁盘。已处理的查询不会消耗此限制。

如果您在位于同一地理区域的一个多区域位置和一个单区域位置分别运行并发查询,则您的查询可能会耗用相同的标准永久性磁盘配额。

笔记本

所有 Dataform 配额和限制以及 Colab Enterprise 配额和限制均适用于 BigQuery 中的笔记本。 以下限制也适用:

限制 默认 备注
笔记本大小上限 20 MB

笔记本的大小是其内容、元数据和编码开销的总和。

如需查看笔记本内容的大小,您可以展开笔记本标头,点击查看,然后点击笔记本信息

每秒向 Dataform 发送的请求数上限 100 笔记本通过 Dataform 创建和管理。任何创建或修改笔记本的操作都会计入此配额。已保存的查询会共用此配额。例如,如果您在 1 秒内对笔记本进行 50 次更改,对已保存的查询进行 50 次更改,则达到配额上限。

已保存的查询

所有 Dataform 配额和限制均适用于已保存的查询。以下限制也适用:

限制 默认 备注
已保存的查询大小上限 10 MB
每秒向 Dataform 发送的请求数上限 100 已保存的查询通过 Dataform 创建和管理。任何创建或修改已保存的查询的操作都会计入此配额。笔记本会共用此配额。例如,如果您在 1 秒内对笔记本进行 50 次更改,对已保存的查询进行 50 次更改,则达到配额上限。

数据操纵语言

以下限制适用于 BigQuery 数据操纵语言 (DML) 语句:

限制 默认 备注
每天 DML 语句数 无限制 您的项目每天可以运行的 DML 语句的数量是不受限制的。

DML 语句不会计入每天的表修改次数(对于分区表,则不会计入每天的分区表修改次数)。

不过请注意,DML 语句具有以下限制
每个表每天的并发 INSERT DML 语句数 1,500 个语句 前 1,500 个 INSERT 语句在提交后便立即运行。达到此限制后,写入表的 INSERT 语句的并发限制为 10。其他 INSERT 语句会添加到 PENDING 队列中。在任何给定时间内,最多可在表中将 100 个 INSERT 语句排入队列。INSERT 语句完成后,下一个 INSERT 语句会从队列中移除并运行。

如果您必须更频繁地运行 DML INSERT 语句,请考虑使用 Storage Write API 将数据流式插入到表中。
每个表的并发变更 DML 语句数 2 个语句 BigQuery 会为每个表运行最多两个并发变更 DML 语句(UPDATEDELETEMERGE)。表的其他变更 DML 语句将排入队列。
每个表已排队的变更 DML 语句数 20 个语句 一个表最多可有 20 个变更 DML 语句在队列中等待运行。如果您为表提交其他变更 DML 语句,则这些语句会失败。
DML 语句在队列中的最长时间 6 小时 交互式优先级 DML 语句最长可在队列中等待 6 个小时。如果语句在 6 小时后未运行,则会失败。
每个表的 DML 语句速率上限 每 10 秒 25 条语句 您的项目每个表每 10 秒最多可运行 25 条 DML 语句。INSERT 和变更型 DML 语句都会计入此限制。

如需详细了解如何变更 DML 语句,请参阅 INSERT DML 并发UPDATE, DELETE, MERGE DML 并发

多语句查询

以下限制适用于 BigQuery 中的多语句查询

限制 默认 备注
并发多语句查询数上限 1,000 个多语句查询 您的项目最多可以运行 1,000 个并发多语句查询
累计时间限制 24 小时 多语句查询的累计时间限制为 24 小时。
语句时间限制 6 小时 多语句查询中单个语句的时间限制为 6 小时。

查询中的递归 CTE

以下限制适用于 BigQuery 中的递归通用表表达式 (CTE)

限制 默认 备注
迭代限制 500 次迭代 递归 CTE 可以执行此数量的迭代。如果超出此限制,则会产生错误。如需解决迭代限制问题,请参阅排查迭代限制错误

行级安全性

以下限制适用于 BigQuery 行级访问权限政策

限制 默认 备注
每个表的行访问权限政策数量上限 400 个政策 一个表最多可以有 400 个行访问权限政策。
每个查询的行访问权限政策数量上限 6,000 个政策 一个查询最多可以访问 6,000 个行访问权限政策。
每个政策每 10 秒的 CREATE/DROP DDL 语句数量上限 5 个语句 您的项目每 10 秒最多可以对每个行访问权限政策资源执行 5 个 CREATEDROP 语句。
每个表每 10 秒的 DROP ALL ROW ACCESS POLICIES 语句数 5 个语句 您的项目每 10 秒最多可以对每个表执行 5 个 DROP ALL ROW ACCESS POLICIES 语句。

数据政策

以下限制适用于列级动态数据遮盖

限制 默认 备注
每个政策标记的数据政策数量上限。 每个政策标记 8 个政策 每个政策标记最多 8 个数据政策。这些政策之一可用于列级访问权限控制。 不支持重复的遮盖表达式。

BigQuery ML

以下限制适用于 BigQuery ML。

查询作业

所有查询作业配额和限制均适用于使用 BigQuery ML 语句和函数的 GoogleSQL 查询作业。

CREATE MODEL 语句

以下限制适用于 CREATE MODEL 作业:

限制 默认 备注
每个项目每 48 小时的 CREATE MODEL 语句查询次数 20,000 次语句查询 一些模型利用 Vertex AI 服务进行训练,这些服务具有自己的资源和配额管理功能。
执行时间限制 24 小时或 72 小时 CREATE MODEL 作业超时默认为 24 小时,但时序、AutoML 和超参数调优作业除外,超时为 72 小时。

Vertex AI 和 Cloud AI 服务函数

以下限制适用于使用 Vertex AI 大语言模型 (LLM) 和 Cloud AI 服务的函数:

功能 每分钟请求数 每项作业的行数 并发运行的作业数
ML.GENERATE_TEXT(使用基于 gemini-1.5-pro 模型的远程模型时) 60 21,600 5
ML.GENERATE_TEXT(使用基于 gemini-1.5-flash 模型的远程模型时) 200 72,000 5
ML.GENERATE_TEXT(在 us-central1 区域使用基于 gemini-1.0-pro-vision 模型的远程模型时) 100 20,000 1
ML.GENERATE_TEXT(在 us-central1 以外的区域使用基于 gemini-1.0-pro-vision 模型的远程模型时) 10 3600 1
ML.GENERATE_TEXT(在 us-central1 区域使用基于 gemini-1.0-pro 模型的远程模型时) 300 108,000 5
ML.GENERATE_TEXT(在 us-central1 以外的区域使用基于 gemini-1.0-pro 模型的远程模型时) 10 3600 5
ML.GENERATE_TEXT(使用基于 Anthropic Claude 模型的远程模型时) 30 10,800 5
ML.GENERATE_TEXT(使用基于 text-bison 模型的远程模型时) 1,600 576,000 5
ML.GENERATE_TEXT(使用基于 text-bison-32 模型的远程模型时) 300 108,000 5
ML.GENERATE_EMBEDDING(与受支持的欧洲单区域Vertex AI multimodalembedding 模型上的远程模型搭配使用时) 120 14,000 5
ML.GENERATE_EMBEDDING(在受支持的欧洲单区域以外的区域内,与基于 Vertex AI multimodalembedding 模型的远程模型搭配使用时) 600 25000 5
ML.GENERATE_EMBEDDING(与 us-central1 区域 Vertex AI text-embeddingtext-multilingual-embedding 模型上的远程模型搭配使用时) 1500 2,700,000 1
ML.GENERATE_EMBEDDING(在 us-central1 以外的区域与 Vertex AI text-embeddingtext-multilingual-embedding 模型上的远程模型搭配使用时) 100 324,000 1
ML.PROCESS_DOCUMENT,文档平均一页 600 150000 5
ML.PROCESS_DOCUMENT,文档平均 10 页 600 100000 5
ML.PROCESS_DOCUMENT,文档平均 50 页 600 15000 5
ML.TRANSCRIBE 200 10000 5
ML.ANNOTATE_IMAGE 1800 648,000 5
ML.TRANSLATE 6000 2,160,000 5
ML.UNDERSTAND_TEXT 600 21,600 5

如需详细了解 Vertex AI LLM 和 Cloud AI 服务 API 的配额,请参阅以下文档:

“每作业行数配额”表示系统在 6 小时内可处理的理论行数上限。实际处理的行数取决于许多其他因素,包括输入大小和网络状况。例如,ML.TRANSCRIBE 可以处理的短音频比长音频多。

如需为 BigQuery ML 函数申请更多配额,请先调整关联的 Vertex AI LLM 或 Cloud AI 服务的配额,然后向 bqml-feedback@google.com 发送电子邮件,并在邮件中添加调整后的 LLM 或 Cloud AI 服务配额的相关信息。如需详细了解如何为这些服务申请更多配额,请参阅申请更高的配额

配额定义

以下列表介绍了适用于 Vertex AI 和 Cloud AI 服务函数的配额:

  • 调用 Vertex AI 基础模型的函数会使用一个 Vertex AI 配额,即每分钟查询次数 (QPM)。在本上下文中,查询是指从函数向 Vertex AI 模型的 API 发出的请求调用。QPM 配额适用于基本模型以及该模型的所有版本、标识符和调优后版本。如需详细了解 Vertex AI 基础模型配额,请参阅按区域和模型的配额
  • 调用 Cloud AI 服务的函数会使用目标服务的请求配额。如需了解详情,请参阅给定 Cloud AI 服务的配额参考。
  • BigQuery ML 使用以下三种配额:

    • 每分钟请求数。此配额是指函数每分钟可以向 Vertex AI 模型或 Cloud AI 服务的 API 发出的请求调用次数上限。此限制适用于每个项目。

      对于调用 Vertex AI 基础模型的函数,每分钟的请求调用次数因 Vertex AI 模型端点、版本和区域而异。此配额在概念上与 Vertex AI 使用的 QPM 配额相同,但其值可能低于相应模型的 QPM 配额。

    • 每项作业的行数。此配额是指每个查询作业允许的行数上限。

    • 并发运行的作业数。此配额是指每个项目针对给定函数可以同时运行的 SQL 查询数量的限制。

以下示例展示了如何在典型情况下解读配额限制:

  • 我在 Vertex AI 中的配额为 1,000 QPM,因此包含 10 万行的查询应该需要大约 100 分钟。为什么作业的运行时间延长?

    即使是相同的输入数据,作业运行时也可能有所不同。在 Vertex AI 中,远程过程调用 (RPC) 具有不同的优先级,以避免配额耗尽。如果配额不足,优先级较低的 RPC 会等待,如果处理时间过长,则可能会失败。

  • 如何解读“每个作业配额的行数”?

    在 BigQuery 中,一个查询的执行时间最长可达 6 小时。支持的最大行数是此时间轴和 Vertex AI QPM 配额的函数,以确保 BigQuery 可以在 6 小时内完成查询处理。由于通常查询不会用尽全部配额,因此这个数字要比 QPM 配额乘以 360 所得的值小。

  • 如果对行数超过每个作业配额的行数(例如 1000 万行)的表运行批量推理作业,会发生什么情况?

    BigQuery 只会处理“每作业行数”配额指定的行数。您只需为相应行数的成功 API 调用付费,而不是为表中的全部 1,000 万行付费。对于其余行,BigQuery 会返回 A retryable error occurred: the maximum size quota per query has reached 错误来响应请求,该错误会在结果的 status 列中返回。您可以使用这组 SQL 脚本或此 Dataform 软件包迭代推理调用,直到成功处理所有行为止。

  • 我要处理的行数比每个作业配额的行数多很多。将行拆分到多个查询中并同时运行这些查询是否有所助益?

    不会,因为这些查询会消耗相同的每分钟 BigQuery ML 请求配额和 Vertex AI QPM 配额。如果有多个查询都符合“每项作业行数”配额和“同时运行的作业数量”配额,那么累计处理会耗尽“每分钟请求数”配额。

BI Engine

以下限制适用于 BigQuery BI Engine

限制 默认 备注
每个位置每个项目的预留大小上限(SQL 接口 250 GiB 将 BI Engine 与 BigQuery 搭配使用时适用。适用于所有情况,但没有原生集成的 Looker Studio 除外。

您可以申请增加项目的最大预留容量。 大多数区域都可以增加预留,并且可能需要 3 天到 1 周的时间来处理。
每个查询的行数上限 70 亿 每个查询的行数上限。

Analytics Hub

以下限制适用于 Analytics Hub

限制 默认 备注
每个项目的数据交换数量上限 500 次交换 您最多可以在一个项目中创建 500 个数据交换。
每个数据交换的产品详情数量上限 1,000 个列表 您在一个数据交换中最多可以创建 1,000 个清单。
每个共享数据集的关联数据集数量上限 1,000 个关联的数据集 所有 Analytics Hub 订阅者最多可以为每个共享数据集关联 1,000 个数据集。

API 配额和限制

这些配额和限制适用于 BigQuery API 请求。

BigQuery API

以下配额适用于 BigQuery API(核心)请求:

配额 默认 备注
每日请求数 无限制 您的项目每天可发送的 BigQuery API 请求数不受限制。
在 Google Cloud 控制台中查看配额
每分钟 tabledata.list 字节数上限 多区域为 7.5 GB;所有其他区域为 3.7 GB 您的项目在 useu 多区域通过 tabledata.list 每分钟最多可以返回 7.5 GB 的表行数据,在所有其他区域每分钟最多可以返回 3.7 GB 的表行数据。此配额适用于从中读取数据的表所在的项目。其他 API(包括 jobs.getQueryResults 以及从 jobs.queryjobs.insert 提取结果)也可以使用此配额。
在 Google Cloud 控制台中查看配额

BigQuery Storage Read API 可以维持比 tabledata.list 高得多的吞吐量。如果您需要的吞吐量超过此配额下所允许的吞吐量,请考虑使用 BigQuery Storage Read API。

以下限制适用于 BigQuery API(核心)请求:

限制 默认 备注
每种方法每个用户每秒的 API 请求数上限 100 个请求 用户每秒最多可以向一个 API 方法发出 100 个 API 请求。如果用户每秒向一个方法发出超过 100 个请求,则可能会受到系统的限制。此限制不适用于流式插入
每位用户的并发 API 请求数上限 300 个请求 如果某用户发出超过 300 个并发请求,则可能会受到系统的限制。 此限制不适用于流式插入。
请求标头大小上限 16 KiB BigQuery API 请求最大可为 16 KiB(包括请求网址和所有标头)。此限制不适用于请求正文,例如在 POST 请求中。
每秒 jobs.get 请求数上限 1,000 个请求 您的项目每秒最多可以发出 1,000 个 jobs.get 请求。
jobs.query 响应大小上限 20 MB 默认情况下,jobs.query 在每页结果中返回的数据行数没有上限,但响应大小不得超过 20 MB。您可以使用 maxResults 参数更改要返回的行数。
jobs.getQueryResults 行大小上限 20 MB 行大小上限是一个近似值,因为该限制基于行数据的内部表示法。系统会在转码期间强制执行此限制。
每秒 projects.list 请求数上限 2 个请求 您的项目每秒最多可以发出两个 projects.list 请求。
每秒 tabledata.list 请求数上限 1,000 个请求 您的项目每秒最多可以发出 1,000 个 tabledata.list 请求。
每个 tabledata.list 响应的行数上限 10 万行 一个 tabledata.list 调用最多可以返回 10 万个表行。 如需了解详情,请参阅通过 API 对结果进行分页
tabledata.list 行大小上限 100 MB 行大小上限是一个近似值,因为该限制基于行数据的内部表示法。系统会在转码期间强制执行此限制。
每秒 tables.insert 请求数上限 10 个请求 您的项目每秒最多可以发出 10 个 tables.insert 请求。 tables.insert 方法可在数据集内创建一个新的空表。此限制涵盖创建表(例如 CREATE TABLE)的 SQL 语句和将结果写入目标表的查询

BigQuery Connection API

以下配额适用于 BigQuery Connection API 请求:

配额 默认 备注
每分钟读取请求数 每分钟 1,000 个请求 您的项目每分钟最多可以向读取连接数据的 BigQuery Connection API 方法发出 1,000 个请求。
在 Google Cloud 控制台中查看配额
每分钟写入请求数 每分钟 100 个请求 您的项目每分钟最多可以向用于创建或更新连接的 BigQuery Connection API 方法发出 100 个请求。
在 Google Cloud 控制台中查看配额
每分钟创建的 BigQuery Omni 连接 每分钟创建 10 个连接 您的项目每分钟最多可以在 AWS 和 Azure 上创建 10 个 BigQuery Omni 连接。
BigQuery Omni 连接使用 每分钟 100 次连接使用 您的项目每分钟最多可以使用 BigQuery Omni 连接 100 次。这适用于使用您的连接访问 AWS 账号的操作,例如查询表。

BigQuery Migration API

以下限制适用于 BigQuery Migration API

限制 默认 备注
批量 SQL 转换的单个文件大小 10 MB 每个单独的源和元数据文件最大可达 10 MB。此限制不适用于 dwh-migration-dumper 命令行提取工具生成的元数据 zip 文件。
批量 SQL 转换的源文件总大小 1 GB 上传到 Cloud Storage 的所有输入文件的总大小不得超过 1 GB。这包括所有源文件以及所有元数据文件(如果选择添加它们)。
交互式 SQL 转换的输入字符串大小 1 MB 输入用于交互式 SQL 转换的字符串不得超过 1 MB。使用 Translation API 运行互动式翻译时,此限制适用于所有字符串输入的总大小。
交互式 SQL 转换的配置文件大小上限 50 MB Cloud Storage 中的各个元数据文件(压缩)和 YAML 配置文件不得超过 50 MB。如果文件大小超过 50 MB,交互式转换器会在转换期间跳过该配置文件并生成错误消息。减小元数据文件大小的一种方法是,在生成元数据时使用 —database–schema 标志按数据库进行过滤。

以下配额适用于 BigQuery Migration API。以下默认值适用于大多数情况。项目默认值可能有所不同:

配额 默认 备注

每分钟 EDWMigration Service List 请求数

每个用户每分钟的 EDWMigration Service List 请求数

12,000 个请求

2,500 个请求

您的项目每分钟最多可以发出 12,000 次 Migration API List 请求。

每个用户每分钟最多可以发出 2,500 次 Migration API List 请求。

在 Google Cloud 控制台中查看配额

每分钟 EDWMigration Service Get 请求数

每个用户每分钟的 EDWMigration Service Get 请求数

25,000 次请求

2,500 个请求

您的项目每分钟最多可以发出 25,000 次 Migration API Get 请求。

每个用户每分钟最多可以发出 2,500 次 Migration API Get 请求。

在 Google Cloud 控制台中查看配额

每分钟 EDWMigration Service 其他请求数

每个用户每分钟的 EDWMigration Service 其他请求数

25 个请求

5 个请求

您的项目每分钟最多可以发出 25 次其他 Migration API 请求。

每个用户每分钟最多可以发出 5 次其他 Migration API 请求。

在 Google Cloud 控制台中查看配额

每分钟交互式 SQL 转换请求数

每个用户每分钟的交互式 SQL 转换请求数

200 个请求

50 个请求

您的项目每分钟最多可以发出 200 次 SQL 转换服务请求。

每个用户每分钟最多可以发出 50 次其他 SQL 转换服务请求。

在 Google Cloud 控制台中查看配额

BigQuery Reservation API

以下配额适用于 BigQuery Reservation API 请求:

配额 默认 备注
每分钟每个区域的请求数 100 个请求 在每个区域中,您的项目每分钟最多可以对 BigQuery Reservation API 方法进行 100 次调用。
在 Google Cloud 控制台中查看配额
每个区域每分钟的 SearchAllAssignments 调用次数 100 个请求 在每个区域中,您的项目每分钟最多可以对 SearchAllAssignments 方法进行 100 次调用。
在 Google Cloud 控制台中查看配额
每位用户每分钟在每个区域对 SearchAllAssignments 的请求数 10 个请求 在每个区域中,每位用户每分钟最多可以对 SearchAllAssignments 方法进行 10 次调用。
在 Google Cloud 控制台中查看配额
(在 Google Cloud 控制台搜索结果中,搜索 每位用户。)

BigQuery Data Policy API

以下限制适用于 Data Policy API预览版):

限制 默认 备注
dataPolicies.list 调用次数上限。 每个项目每分钟 400 个请求

每个组织每分钟 600 个请求
dataPolicies.testIamPermissions 调用次数上限。 每个项目每分钟 400 个请求

每个组织每分钟 600 个请求
读取请求数上限。 每个项目每分钟 1200 个请求

每个组织每分钟 1800 个请求
这包括对 dataPolicies.getdataPolicies.getIamPolicy 的调用。
写入请求数上限。 每个项目每分钟 600 个请求

每个组织每分钟 900 个请求

这包括对以下方法的调用:

IAM API

当您在 BigQuery 中使用 Identity and Access Management 功能检索和设置 IAM 政策以及测试 IAM 权限时,需遵循以下配额。数据控制语言 (DCL) 语句会计入 SetIAMPolicy 配额。

配额 默认 Notes
每位用户每分钟的 IamPolicy 请求数 每位用户每分钟 1,500 个请求 每位用户每个项目每分钟最多可以发出 1,500 个请求。
在 Google Cloud 控制台中查看配额
每个项目每分钟的 IamPolicy 请求数 每个项目每分钟 3,000 个请求 您的项目每分钟最多可以发出 3,000 个请求。
在 Google Cloud 控制台中查看配额
每个项目每分钟的单区域 SetIAMPolicy 请求数 每个项目每分钟 1,000 个请求 您的单区域项目每分钟最多可以发出 1,000 个请求。
在 Google Cloud 控制台中查看配额
每个项目每分钟的多区域 SetIAMPolicy 请求数 每个项目每分钟 2,000 个请求 您的多区域项目每分钟最多可以发出 2,000 个请求。
在 Google Cloud 控制台中查看配额
每个项目每分钟的 Omni 区域 SetIAMPolicy 请求数 每个项目每分钟 200 个请求 您的 Omni 区域项目每分钟最多可以发出 200 个请求。
在 Google Cloud 控制台中查看配额

Storage Read API

以下配额适用于 BigQuery Storage Read API 请求:

配额 默认 备注
每位用户每分钟的读取数据平面请求数 25,000 次请求 对于每个项目,每位用户每分钟最多可以执行 25,000 次 ReadRows 调用。
在 Google Cloud 控制台中查看配额
每位用户每分钟的读取控制层面请求数 5,000 个请求 对于每个项目,每位用户每分钟最多可以执行 5,000 次 Storage Read API 元数据操作调用。元数据调用包括 CreateReadSessionSplitReadStream 方法。
在 Google Cloud 控制台中查看配额

以下限制适用于 BigQuery Storage Read API 请求:

限制 默认 备注
行/过滤条件长度上限 1 MB 使用 Storage Read API CreateReadSession 调用时,每行或每个过滤条件的最大长度限制为 1 MB。
序列化数据大小上限 128 MB 使用 Storage Read API ReadRows 调用时,单个 ReadRowsResponse 消息中数据的序列化形式不得大于 128 MB。
并发连接数上限 多区域中 2,000 个;单区域中 400 个 您可以在 useu 多区域位置为每个项目打开最多 2,000 个并发 ReadRows 连接,在其他单区域位置打开 400 个并发 ReadRows 连接。在某些情况下,并发连接数的上限可能比此限制还要少。
每个流的内存用量上限 1.5 GB 每个流的内存上限是一个近似值,因为该限制基于行数据的内部表示法。如果单个行使用的内存超过 1.5 GB,则数据流可能会失败。如需了解详情,请参阅排查资源超出限制的问题

Storage Write API

以下配额适用于 Storage Write API 请求。 以下配额可以在文件夹级别应用。这些配额随后会汇总并共享给所有子项目。如需启用此配置,请与 Cloud Customer Care 联系。

如果您打算申请提高配额上限,请在请求中添加配额错误消息以加快处理速度。

配额 默认 备注
并发连接数 单区域中为 1,000;多区域中为 10,000

并发连接数配额基于发起 Storage Write API 请求的客户端项目,而非包含 BigQuery 数据集资源的项目。发起项目是与 API 密钥服务账号关联的项目。

您的项目可以在一个单区域中运行 1,000 个并发连接,或者在 USEU 多区域中运行 10,000 个并发连接。

在 Java 或 Go 中使用默认流时,我们建议您使用 Storage Write API 多路复用向具有共享连接的多个目标表写入数据,以减少所需的整体连接数。如果您使用具有“至少一次”语义的 Beam 连接器,则可以将 UseStorageApiConnectionPool 设置为 TRUE 以启用多路复用。

在 Google Cloud 控制台中查看配额

您可以在 Cloud Monitoring 中查看项目的用量配额和限制指标。根据您的区域选择并发连接限制名称。选项包括 ConcurrentWriteConnectionsPerProjectConcurrentWriteConnectionsPerProjectEUConcurrentWriteConnectionsPerProjectRegion,分别适用于 useu 和其他单区域。

强烈建议您设置提醒来监控配额用量和限制。此外,如果您的流量模式出现激增和/或定期自然增长,不妨考虑将配额超额预配 25-50%,以便应对意外需求。

吞吐量 多区域中吞吐量为每秒 3 GB;单区域中为每秒 300 MB useu 多区域中,每秒最多可以流式传输 3 GB;在其他区域中,每个项目每秒最多可以流式传输 300 MB。
在 Google Cloud 控制台中查看配额

您可以在 Cloud Monitoring 中查看项目的用量配额和限制指标。根据您的区域选择吞吐量限制名称。选项包括 AppendBytesThroughputPerProjectAppendBytesThroughputPerProjectEUAppendBytesThroughputPerProjectRegion,分别适用于 useu 和其他单区域。 写入吞吐量配额的计量依据是目标数据集所在的项目,而非客户端项目。

强烈建议您设置提醒来监控配额用量和限制。此外,如果您的流量模式出现激增和/或定期自然增长,不妨考虑将配额超额预配 25-50%,以便应对意外需求。


CreateWriteStream 请求 每个项目在每个区域中每小时 10000 个数据流 每个区域中每个项目每小时最多可以调用 CreateWriteStream 10000 次。如果您不需要“正好一次”语义,请考虑使用默认流。此配额按小时计算,但 Google Cloud 控制台中显示的指标是按分钟。
待处理流的字节数 多区域为 10 TB;单区域为 1 TB 对于您触发的每项提交,您可以在 useu 多区域中提交高达 10 TB,并在其他区域提交 1 TB。 没有针对此配额的配额报告。

以下限制适用于 Storage Write API 请求:

限制 默认 备注
批量提交数 每个表 10,000 个数据流 每次 BatchCommitWriteStream 调用中最多可以提交 10,000 个数据流。
AppendRows 请求大小 10 MB 请求大小上限为 10 MB。

流式插入

使用旧版流式插入 API 将数据流式插入到 BigQuery 时,需遵循以下配额和限制。如需了解保持在这些限制内的策略,请参阅排查配额错误。如果超出这些配额,则会收到 quotaExceeded 错误。

限制 默认 备注
useu 多区域位置中每个项目的每秒字节数上限 每秒 1 GB

您的项目每秒最多可以流式插入 1 GB。此配额是给定多区域位置的累计配额。换句话说,对于多区域位置内一个给定项目的所有表,每秒流式插入的总字节数不能超过 1 GB。

超出此限制会导致 quotaExceeded 错误。

如有必要,您可以联系 Cloud Customer Care 来申请增加配额。请尽早申请增加配额(至少提前两周)。增加的配额需要经过一段时间才可用,尤其是在大幅增加配额的情况下。

所有其他位置的每个项目的每秒字节数上限 每秒 300 MB

useu 多区域位置外,您的项目在所有位置每秒最多可以流式插入 300 MB。此配额是给定多区域位置的累计配额。换句话说,对于某区域内一个给定项目的所有表,每秒流式插入的总字节数不得超过 300 MB。

超出此限制会导致 quotaExceeded 错误。

如有必要,您可以联系 Cloud Customer Care 来申请增加配额。请尽早申请增加配额(至少提前两周)。增加的配额需要经过一段时间才可用,尤其是在大幅增加配额的情况下。

行大小上限 10 MB 超过此值将导致 invalid 错误。
HTTP 请求大小限制 10 MB

超过此值将导致 invalid 错误。

在内部,请求将从 HTTP JSON 转换为内部数据结构。该转换后的数据结构有自己的强制性大小限制。生成的内部数据结构的大小很难预测,但如果您将 HTTP 请求保持在 10 MB 或更小,达到此内部限制的机率就会很低。

每个请求的行数上限 5 万行 我们建议最多不要超过 500 行。批处理在一定限度内可以提高性能和吞吐量,但会影响每个请求的延迟时间。 每个请求的行数过少,每个请求的开销可导致提取效率低下。每个请求的行数过多,吞吐量可能会下降。用具有代表性的数据(架构和数据大小)进行实验来确定数据的理想批量大小。
insertId 字段长度 128 个字符 超过此值将导致 invalid 错误。

如需额外的流式插入配额,请参阅申请增加配额

带宽

以下配额适用于复制带宽:

配额 默认 备注
包含从主副本到辅助副本的跨区域数据出站流量的每个区域的初始回填复制带宽上限。 对于大多数项目,每个区域的物理带宽配额为 10 Gbps
包含从主副本到辅助副本的跨区域数据出站流量的每个区域的持续复制带宽上限。 对于大多数项目,每个区域的物理带宽配额为 5 GiBps
包含从主副本到辅助副本的跨区域数据出站流量的每个区域的增强型复制带宽上限。 对于大多数项目,每个区域的默认配额为 5 个物理 GiBps 增强型复制带宽配额不适用于初始回填操作。

当项目的复制带宽超过特定配额时,受影响项目的复制操作可能会停止,并显示 rateLimitExceeded 错误,其中包含超出配额的详细信息。