配额和限制
本文档列出了适用于 BigQuery 的配额和限制。
配额用于限制您的 Google Cloud 项目可使用的共享 Google Cloud 资源(包括硬件、软件和网络组件)的数量。因此,有以下功能的系统具有配额:
- 监控 Google Cloud 产品和服务的使用情况或消耗情况。
- 出于某些原因限制这些资源的消耗量,包括确保公平性和减少使用量高峰。
- 维护可自动强制执行规定限制的配置。
- 提供请求或更改配额的方法。
在大多数情况下,当超过配额时,系统会立即阻止对相关 Google 资源的访问,并且您尝试执行的任务将失败。在大多数情况下,配额适用于每个 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 S3 和 Azure 进行跨云转移。
在 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 个小时。
|
每个查询引用的表数上限 | 1,000 个资源 |
在完全展开后,查询最多可引用 1,000 个唯一表、唯一视图、唯一用户定义的函数 (UDF) 和唯一的表函数。此限制包括:
|
未解析的旧版 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,000 个并发槽。 单个项目中的所有查询会共享 BigQuery 槽。BigQuery 可能会突破此限制以加快查询速度。 如需查看使用的槽数,请参阅使用 Cloud Monitoring 监控 BigQuery。 |
对于按需价格,每个扫描数据的最大 CPU 用量 | 每 MiB 扫描数据使用 256 CPU 秒 |
采用按需价格模式,您的查询可以为每 MiB 扫描数据使用大约 256 CPU 秒。如果您的查询对于正在处理的数据量而言需要使用大量 CPU,则查询会失败并显示 billingTierLimitExceeded 错误。
如需了解详情,请参阅 billingTierLimitExceeded。
|
多语句事务表变更 | 100 个表 | 一个事务最多可以更改 100 个表中的数据。 |
多语句事务分区修改 | 10 万次分区修改 | 一个事务最多可以执行 10 万次分区修改。 |
BigQuery Omni 查询结果大小上限 | 20 GiB(未压缩) | 查询 Azure 或 AWS 数据时,结果大小上限为 20 GiB 逻辑字节。如果查询结果大于 20 GiB,请考虑将结果导出到 Amazon S3 或 Blob Storage。如需了解详情,请参阅 BigQuery Omni 限制。 |
每天 BigQuery Omni 查询结果总大小 | 1 TB | 项目的总查询结果大小为每天 1 TB。
如需了解详情,请参阅 BigQuery Omni 限制。 |
BigQuery Omni 行大小上限 | 10 MiB | 查询 Azure 或 AWS 数据时,最大行大小为 10 MiB。如需了解详情,请参阅 BigQuery Omni 限制。 |
虽然计划查询使用 BigQuery Data Transfer Service 的功能,但计划查询不是转移作业,并且不受加载作业限制的约束。
导出作业
以下限制适用于从 BigQuery 导出数据的作业,导出方式是使用 bq 命令行工具、Google Cloud 控制台或导出类型的 jobs.insert
API 方法。
限制 | 默认 | 备注 |
---|---|---|
每天导出的字节数上限 | 50 TB |
使用共享槽池时,您每天最多可以免费从一个项目中导出 50 TB(太字节)的数据。您可以设置 Cloud Monitoring 提醒政策,以提供导出的字节数的通知。 如果每天要导出 50 TB(太字节)以上的数据,请执行以下操作之一:
|
每天的导出作业数量上限 | 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:行大小上限 | 100 MB | JSON 行的大小上限为 100 MB。 |
JSON:文件大小上限 - 已压缩 | 4 GB | 已压缩的 JSON 文件的大小上限为 4 GB。 |
JSON:文件大小上限 - 未压缩 | 5 TB | 未压缩的 JSON 文件的大小上限为 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 命令行工具或复制类型的 jobs.insert
方法创建的作业。无论这些复制作业成功还是失败,它们都会计入这些限制。
限制 | 默认 | 备注 |
---|---|---|
每个目标表每天的复制作业数 | 请参阅每日表操作次数。 | |
每天的复制作业数 | 10 万个作业 | 您的项目每天最多可运行 10 万个复制作业。 |
每个目标表每天的跨区域复制作业数 | 100 个作业 | 您的项目每天最多可为一个目标表运行 100 个跨区域复制作业。 |
每天跨区域复制作业数 | 2,000 个作业 | 您的项目每天最多可运行 2,000 个跨区域复制作业。 |
要复制的源表数 | 1,200 个源表 | 对于每个复制作业,您最多可以从 1,200 个源表进行复制。 |
如需了解如何查看当前的复制作业使用情况,请参阅复制作业 - 查看当前配额用量。
以下限制适用于复制数据集的情况:
限制 | 默认 | 备注 |
---|---|---|
源数据集中的最大表数 | 2 万个表 | 一个源数据集最多可以有 2 万个表。 |
每次运行可复制到同一区域中目标数据集的最大表数 | 2 万个表 | 您的项目每次运行可将 20,000 个表复制到同一区域中的目标数据集。 |
每次运行可复制到其他区域中的目标数据集的最大表数 | 1,000 个表 | 您的项目每次运行时可将 1,000 个表复制到不同区域的目标数据集。例如,如果您为包含 8,000 个表的数据集配置了跨区域复制,则 BigQuery Data Transfer Service 会按顺序自动创建 8 次运行。第一次运行会复制 1,000 个表。24 小时后,第二次运行复制 1,000 个表。此过程将持续进行,直到复制完数据集中的所有表。每个数据集中最多可包含 2 万个表。 |
预留
以下配额适用于预留:
配额 | 默认 | 备注 |
---|---|---|
欧盟区域的槽总数 | 5,000 个槽 |
您在欧盟多区域位置可以使用 Google Cloud 控制台购买的 BigQuery 槽数上限。
在 Google Cloud 控制台中查看配额 |
美国区域的槽总数 | 10,000 个槽 |
您在美国多区域位置可以使用 Google Cloud 控制台购买的 BigQuery 槽数上限。
在 Google Cloud 控制台中查看配额 |
us-east1 区域的槽总数
|
4,000 个槽 |
您在所列区域位置可以使用 Google Cloud 控制台购买的 BigQuery 槽数上限。
在 Google Cloud 控制台中查看配额 |
以下区域的槽总数:
|
2,000 个槽 |
您在每个列出的区域位置可以使用 Google Cloud 控制台购买的 BigQuery 槽数上限。
在 Google Cloud 控制台中查看配额 |
以下区域的槽总数:
|
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 版预留数量上限。 |
数据集
以下限制适用于 BigQuery 数据集。
限制 | 默认 | 备注 |
---|---|---|
数据集数量上限 | 无限制 | 一个项目可拥有的数据集数量没有限制。 |
每个数据集的表数 | 无限制 | 使用 API 调用时,如果数据集中的表接近 5 万个,则枚举性能会变慢。Google Cloud 控制台最多可为每个数据集显示 50,000 个表。 |
数据集的访问控制列表中的授权视图数 | 2500 个资源 | 数据集的访问控制列表最多可包含 2500 个授权资源,包括授权视图、授权数据集和授权函数。 如果由于有大量授权视图而导致超过此上限,请考虑将视图分组到授权数据集中。 |
每个数据集每 10 秒的数据集更新操作次数 | 5 次操作 |
您的项目每 10 秒最多可以执行 5 次数据集更新操作。
数据集更新限制包括以下各项执行的所有元数据更新操作:
|
数据集说明的长度上限 | 16384 个字符 | 为数据集添加说明时,说明文本最多可包含 16384 个字符。 |
表
所有表
以下限制适用于所有 BigQuery 表。
限制 | 默认 | 备注 |
---|---|---|
列名的长度上限 | 300 个字符 | 列名最多只能包含 300 个字符。 |
列说明的长度上限 | 1024 个字符 | 为列添加说明时,说明文本最多只能包含 1024 个字符。 |
嵌套记录的深度上限 | 15 层 |
RECORD 类型的列可以包含嵌套的 RECORD 类型(也称为子记录)。嵌套深度上限为 15 层。
此限制与记录是基于标量还是基于数组(重复)无关。
|
标准表
以下限制适用于 BigQuery 标准(内置)表:
限制 | 默认 | 备注 |
---|---|---|
每天的表修改次数 | 1,500 次修改 | 无论是附加数据、更新数据还是截断表,您的项目每天最多可以对每个表执行 1,500 次表修改。此限制不可更改,并且包括附加到或覆盖目标表的所有加载作业、复制作业和查询作业的总和。 DML 语句不会计入每天的表修改次数。 |
表元数据更新操作的速率上限 | 每 10 秒 5 次操作 |
您的项目每表每 10 秒最多可以执行 5 次表元数据更新操作。此限制适用于所有由以下项执行的表元数据更新操作:
DELETE 、INSERT 、MERGE 、TRUNCATE TABLE 或 UPDATE 语句将数据写入表中。请注意,虽然 DML 语句计数会计入此限制,但达到上限时,不受其约束。DML 操作具有专用速率限制。
如果超出此限制,您会收到类似于 |
每个表的列数上限 | 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 在确定某个作业消耗的限额量时,会使用受该作业影响的分区数量。流式插入不会影响此限额。
如需了解保持在分区表限制内的策略,请参阅排查配额错误。
限制 | 默认 | 备注 |
---|---|---|
每个分区表的分区数 | 4,000 个分区 | 每个分区表最多可以有 4,000 个分区。如果超过此限制,请考虑将聚簇和分区一起使用,或者改用分区。 |
单个作业修改的分区数 | 4,000 个分区 | 每个作业操作(查询或加载)最多可影响 4,000 个分区。 BigQuery 会拒绝任何尝试修改 4,000 个以上分区的查询或加载作业。 |
每个注入时间分区表每天的分区修改次数 | 5,000 次修改 | 无论是附加数据、更新数据还是截断注入时间分区表,您的项目每天最多可以进行 5,000 次分区修改。 DML 语句不会计入每天的分区修改次数。 |
每个列分区表每天的分区修改次数 | 3 万次修改 | 您的项目每天最多可以对列分区表进行 3 万次分区修改。 DML 语句不会计入每天的分区修改次数。 |
分区表元数据更新操作的速率上限 | 每 10 秒 50 次修改 |
您的项目每 10 秒最多可以为每个分区表执行 50 次修改。此限制适用于所有由以下项执行的分区表元数据更新操作:
DELETE 、INSERT 、MERGE 、TRUNCATE TABLE 或 UPDATE 语句将数据写入表中。
如果超出此限制,您会收到类似于 如需确定计入此限制的操作,您可以检查日志。 |
范围分区的可能范围数 | 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 层嵌套视图。如果嵌套层数超过 16 层,系统会返回 INVALID_INPUT 错误。
|
用于定义视图的 GoogleSQL 查询的长度上限 | 25.6 万个字符 | 定义视图的单个 GoogleSQL 查询不得超过 25.6 万个字符。此限制适用于单个查询,并且不包含查询中引用的视图的长度。 |
每个数据集的授权视图数上限 | 请参阅数据集。 |
具体化视图
以下限制适用于 BigQuery 具体化视图:
限制 | 默认 | 备注 |
---|---|---|
基表引用(同一数据集) | 20 个具体化视图 | 每个基表最多可被来自同一数据集的 20 个具体化视图引用。 |
基表引用(同一项目) | 100 个具体化视图 | 每个基表最多可被来自同一项目的 100 个具体化视图引用。 |
基表引用(整个组织) | 500 个具体化视图 | 每个基表最多可被来自整个组织的 500 个具体化视图引用。 |
每个数据集的授权视图数上限 | 请参阅数据集。 |
搜索索引
以下限制适用于 BigQuery 搜索索引:
限额 | 默认 | Notes |
---|---|---|
每个区域每个项目每天的 CREATE INDEX DDL 语句数量
|
500 次操作 |
您的项目在一个区域内每天最多可以发出 500 次 CREATE INDEX DDL 操作。 |
每个表每天的搜索索引 DDL 语句数量 | 20 次操作 |
您的项目每天最多可以针对每个表发出 20 次 CREATE INDEX 或 DROP INDEX DDL 操作。 |
不在预留中运行的搜索索引创建允许的每个组织的表数据总大小上限 | 多区域中为 100 TB;所有其他区域中为 20 TB |
如果组织中具有索引的表的整体大小低于您区域的限制(US 和 EU 多区域为 100 TB,所有其他区域为 20 TB),则可以为表创建搜索索引。如果索引管理作业在您自己的预留中运行,则此限制不适用。
|
向量索引
以下限制适用于 BigQuery 向量索引:
限额 | 默认 | Notes |
---|---|---|
基表的行数下限 | 5,000 行 | 一个表必须至少有 5,000 行才能创建向量索引。 |
基表的行数上限 | 1,000,000,000 行 | 如需创建向量索引,一个表最多可以有 1,000,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 INDEX 或 DROP VECTOR INDEX 操作。 |
不在预留中运行的向量索引创建允许的每个组织的表数据总大小上限 | 20 TB | 如果组织中具有索引的表的总大小低于 20 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 Functions (第 1 代)) | 10 MB | 来自 Cloud Functions 函数(第 1 代)的 HTTP 响应正文最大为 10 MB。超过此值会导致查询失败。 |
HTTP 响应大小限制(Cloud Functions (第 2 代) 或 Cloud Run) | 15 MB | 来自 Cloud Functions 函数(第 2 代)或 Cloud Run 的 HTTP 响应正文最大为 15 MB。超过此值会导致查询失败。 |
HTTP 调用时间上限(Cloud Functions (第 1 代)) | 9 分钟 | 您可以为 Cloud Functions 函数(第 1 代)自行设置单次 HTTP 调用的时间限制,但时间上限为 9 分钟。如果超过为 Cloud Functions 函数(第 1 代)设置的时间限制,则在有限次数的重试后可能会导致 HTTP 调用失败和查询失败。 |
HTTP 调用时间限制(Cloud Functions (第 2 代) 或 Cloud Run) | 20 分钟 | 对 Cloud Functions (第 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:
在上述位置,每个项目在每个位置最多可以使用 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 语句具有以下限制。 |
每个表的并发变更 DML 语句数 | 2 个语句 |
BigQuery 会为每个表运行最多两个并发变更 DML 语句(UPDATE 、DELETE 和 MERGE )。表的其他变更 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 个 CREATE 或 DROP 语句。
|
每个表每 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.ANNOTATE_IMAGE |
900 | 307,800 | 5 |
ML.TRANSLATE |
3,000 | 1,026,000 | 5 |
ML.UNDERSTAND_TEXT |
300 | 102,600 | 5 |
ML.GENERATE_TEXT (使用基于 gemini-pro-vision 模型的远程模型时) |
60 | 2 万 | 1 |
ML.GENERATE_TEXT (使用基于 gemini-pro-vision 以外的模型的远程模型时) |
60 | 30000 | 5 |
ML.GENERATE_EMBEDDING (与 Vertex AI multimodalembedding 模型上的远程模型搭配使用时) |
120 | 25,000 | 1 |
ML.GENERATE_EMBEDDING (与 Vertex AI textembedding-gecko 和 textembedding-gecko-multilingual 模型上的远程模型搭配使用时) |
600 | 1 亿 | 1 |
ML.PROCESS_DOCUMENT |
600 | 205,200 | 5 |
ML.TRANSCRIBE |
60 | 1,000 | 5 |
如需详细了解 Vertex AI LLM 和 Cloud AI 服务 API 的配额,请参阅以下文档:
- Vertex AI 上的生成式 AI 的配额限制
- Cloud Translation API 配额和限制
- Vision API 配额和限制
- Natural Language API 配额和限制
- Document AI 配额和限制
- Speech-to-Text 配额和限制
如需为 BigQuery ML 函数申请更多配额,请先调整关联的 Vertex AI LLM 或 Cloud AI 服务的配额,然后向 [email protected] 发送电子邮件,并在邮件中添加调整后的 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,因此包含 100,000 行的查询大约需要 100 分钟。为什么作业运行时间更长?
即使输入数据相同,作业运行时也可能不同。在 Vertex AI 中,为避免配额排空,远程过程调用 (RPC) 具有不同的优先级。如果配额不足,优先级较低的 RPC 会等待,如果处理时间过长,可能会失败。
如何解读每个作业配额的行数?
在 BigQuery 中,查询最多可执行 6 小时。支持的最大行数是此时间轴和 Vertex AI QPM 配额的函数,以确保 BigQuery 可以在 6 小时内完成查询处理。由于通常查询不会用尽全部配额,因此这个数字要比 QPM 配额乘以 360 所得的值小。
如果对行数超过每个作业配额的行数(例如 1000 万行)的表运行批量推理作业,会发生什么情况?
BigQuery 仅处理每个作业配额的行数指定的行数。您只需为成功调用的 API 行数付费,而不是为表中的所有行付费。对于其余行,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 周的时间来处理。 |
每个位置每个项目的预留大小上限 (Looker Studio) | 100 GB | 将 BI Engine 与没有原生集成的 Looker Studio 搭配使用时适用。 此限制不会影响您查询的表的大小,因为 BI Engine 仅在内存中加载查询中所用的列,而不是整个表。 |
每个表的数据模型大小上限 (Looker Studio) | 10 GB | 将 BI Engine 与没有原生集成的 Looker Studio 搭配使用时适用。 如果您有每个位置每个项目 100 GB 的预留,BI Engine 会将每个表的预留限制为 10 GB 以内。剩余的可用预留用于同一项目中的其他表。 |
每个表的分区数上限 (Looker Studio) | 500 个分区 | 将 BI Engine 与没有原生集成的 Looker Studio 搭配使用时适用。 适用于 Looker Studio 的 BI Engine 支持每个表最多 500 个分区。 |
每次查询的行数上限 (Looker Studio) | 1.5 亿 | 将 BI Engine 与没有原生集成的 Looker Studio 搭配使用时适用。 适用于 Looker Studio 的 BI Engine 支持最多 1.5 亿行查询数据,具体取决于查询复杂性。 |
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 |
您的项目在 us 和 eu 多区域通过 tabledata.list 每分钟最多可以返回 7.5 GB 的表行数据,在所有其他区域每分钟最多可以返回 3.7 GB 的表行数据。此配额适用于从中读取数据的表所在的项目。其他 API(包括 jobs.getQueryResults 以及从 jobs.query 和 jobs.insert 提取结果)也可以使用此配额。在 Google Cloud 控制台中查看配额
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 控制台中查看配额 |
每个区域的 AWS 连接数 | 每个区域 50 个连接。 | 您的项目在每个 AWS 区域中最多可以有 50 个 AWS 连接。 |
每个区域的 Azure 连接数 | 每个区域 50 个连接。 | 您的项目在每个 Azure 区域中最多可以有 50 个 Azure 连接。 |
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。 |
交互式 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(预览版):
限制 | 默认 | 备注 |
---|---|---|
dataPolicy.list 调用次数上限。
|
每个项目每分钟 400 个请求 每个组织每分钟 600 个请求 |
|
dataPolicy.testIamPermissions 调用次数上限。 |
每个项目每分钟 400 个请求 每个组织每分钟 600 个请求 |
|
读取请求数上限。 |
每个项目每分钟 1200 个请求 每个组织每分钟 1800 个请求 |
这包括对 dataPolicy.get 和 dataPolicy.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 元数据操作调用。元数据调用包括 CreateReadSession 和 SplitReadStream 方法。
在 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 个 |
您可以在 us 和 eu 多区域位置为每个项目打开最多 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 个并发连接,或者在 在 Java 或 Go 中使用默认流时,我们建议您使用 Storage Write API 多路复用向具有共享连接的多个目标表写入数据以减少所需的整体连接数。 在 Google Cloud 控制台中查看配额您可以在 Cloud Monitoring 中查看项目的用量配额和限制指标。根据您的区域选择并发连接限制名称。选项包括 |
吞吐量 | 多区域中吞吐量为每秒 3 GB;单区域中为每秒 300 MB |
在 us 和 eu 多区域中,每秒最多可以流式传输 3 GB;在其他区域中,每个项目每秒最多可以流式传输 300 MB。
在 Google Cloud 控制台中查看配额 您可以在 Cloud Monitoring 中查看项目的用量配额和限制指标。根据您的区域选择吞吐量限制名称。选项包括 |
CreateWriteStream 请求
|
每个项目在每个区域中每小时 10000 个数据流 |
每个区域中每个项目每小时最多可以调用 CreateWriteStream 10000 次。如果您不需要“正好一次”语义,请考虑使用默认流。此配额按小时计算,但 Google Cloud 控制台中显示的指标是按分钟。
|
待处理流的字节数 | 多区域为 10 TB;单区域为 1 TB |
对于您触发的每项提交,您可以在 us 和 eu 多区域中提交高达 10 TB,并在其他区域提交 1 TB。 没有针对此配额的配额报告。
|
以下限制适用于 Storage Write API 请求:
限制 | 默认 | 备注 |
---|---|---|
批量提交数 | 每个表 10,000 个数据流 |
每次 BatchCommitWriteStream 调用中最多可以提交 10,000 个数据流。 |
AppendRows
请求大小
|
10 MB | 请求大小上限为 10 MB。 |
流式插入
使用旧版流式插入 API 将数据流式插入到 BigQuery 时,需遵循以下配额和限制。如需了解保持在这些限制内的策略,请参阅排查配额错误。如果超出这些配额,则会收到 quotaExceeded
错误。
限制 | 默认 | 备注 |
---|---|---|
us 和 eu 多区域位置中每个项目的每秒字节数上限
|
每秒 1 GB |
您的项目每秒最多可以流式插入 1 GB。此配额是给定多区域位置的累计配额。换句话说,对于多区域位置内一个给定项目的所有表,每秒流式插入的总字节数不能超过 1 GB。
超出此限制会导致 如有必要,您可以联系 Cloud Customer Care 来申请增加配额。请尽早申请增加配额(至少提前两周)。增加的配额需要经过一段时间才可用,尤其是在大幅增加配额的情况下。 |
所有其他位置的每个项目的每秒字节数上限 | 每秒 300 MB |
除
超出此限制会导致 如有必要,您可以联系 Cloud Customer Care 来申请增加配额。请尽早申请增加配额(至少提前两周)。增加的配额需要经过一段时间才可用,尤其是在大幅增加配额的情况下。 |
行大小上限 | 10 MB |
超过此值将导致 invalid 错误。
|
HTTP 请求大小限制 | 10 MB |
超过此值将导致 在内部,请求将从 HTTP JSON 转换为内部数据结构。该转换后的数据结构有自己的强制性大小限制。生成的内部数据结构的大小很难预测,但如果您将 HTTP 请求保持在 10 MB 或更小,达到此内部限制的机率就会很低。 |
每个请求的行数上限 | 5 万行 | 我们建议最多不要超过 500 行。批处理在一定限度内可以提高性能和吞吐量,但会影响每个请求的延迟时间。 每个请求的行数过少,每个请求的开销可导致提取效率低下。每个请求的行数过多,吞吐量可能会下降。用具有代表性的数据(架构和数据大小)进行实验来确定数据的理想批量大小。 |
insertId 字段长度
|
128 个字符 |
超过此值将导致 invalid 错误。
|
如需额外的流式插入配额,请参阅申请增加配额。