Cuotas y límites

BigQuery limita la frecuencia máxima de solicitudes entrantes y aplica las cuotas correspondientes a cada proyecto. Las políticas específicas varían según la disponibilidad de los recursos, el perfil del usuario, el historial de uso del servicio y otros factores, y están sujetas a cambios sin previo aviso.

En las siguientes listas, se describen los límites de frecuencias y cuotas vigentes en el sistema.

Trabajos de consulta

Los siguientes límites se aplican a trabajos de consulta creados automáticamente mediante la ejecución de consultas interactivas y a trabajos enviados de manera programática mediante llamadas a los métodos jobs.query y jobs.insert de tipo de consulta.

No se descuentan de este límite las consultas con resultados que se muestran desde la caché de consultas ni las consultas de ejecución de prueba. Puedes especificar una consulta de ejecución de prueba mediante la marca --dry_run o si configuras la propiedad dryRun en un trabajo de consulta.

Este límite se aplica a nivel del proyecto. Para aumentar el límite, comunícate con el equipo de asistencia o con Ventas.

  • Límite de frecuencia de simultaneidad para consultas interactivas en fuentes externas de datos de Cloud Bigtable: 4 consultas simultáneas

Tienes un límite de 4 consultas simultáneas en una fuente externa de datos de Cloud Bigtable.

  • Límite de frecuencia de simultaneidad para consultas de SQL heredadas que contienen funciones definidas por el usuario (UDF): 6 consultas simultáneas

El límite de frecuencia de simultaneidad para consultas de SQL heredadas que contienen UDF incluye consultas tanto interactivas como por lotes. Las consultas interactivas que contienen UDF también suman al límite de la frecuencia de simultaneidad para las consultas interactivas. Este límite no se aplica a consultas de SQL estándar.

  • Límite diario de tamaño de las consultas: configurado como ilimitado de forma predeterminada

Puedes especificar límites sobre la cantidad de datos que los usuarios pueden consultar mediante cuotas personalizadas.

  • Límite de actualización diario de tablas de destino: 1,000 actualizaciones por tabla por día

Las tablas de destino de un trabajo de consulta están sujetas al límite de 1,000 actualizaciones por tabla por día. Las actualizaciones de la tabla de destino incluyen operaciones que agregan y reemplazan datos, y que se realizan mediante una consulta con la consola, la IU web clásica de BigQuery o la herramienta de línea de comandos de bq, o mediante una llamada a los métodos de API jobs.query y jobs.insert de tipo de consulta.

  • Límite de tiempo de ejecución de la consulta: 6 horas

Este límite no puede cambiarse.

  • Cantidad máxima de tablas referenciadas por consulta: 1,000

  • Largo máximo de consulta de SQL heredada sin resolver: 256 KB

  • Largo máximo de consulta de SQL estándar sin resolver: 1 MB

  • Largo máximo de consulta resuelta de SQL estándar y heredado: 12 MB

El límite del largo de las consultas resueltas incluye el largo de todas las vistas y tablas de comodines a las que se hace referencia en la consulta.

  • Cantidad máxima de parámetros de consulta de SQL estándar: 10,000

  • Tamaño máximo de la respuesta: 10 GB con compresión1

1 Los tamaños varían según el índice de compresión de los datos. El tamaño real de respuesta puede ser significativamente mayor que 10 GB.

El tamaño máximo de respuesta es ilimitado cuando se escriben los resultados de una consulta grande en una tabla de destino.

  • Tamaño máximo de la fila: 100 MB2

2 El límite máximo del tamaño de la fila es aproximado, ya que se basa en la representación interna de los datos de la fila. El límite máximo del tamaño de la fila se aplica durante ciertas etapas de la ejecución del trabajo de consulta.

  • Cantidad máxima de columnas en una tabla, resultados de consulta o definiciones de la vista: 10,000

  • Cantidad máxima de ranuras simultáneas por proyecto para precios según demanda: 2,000

La cantidad predeterminada de ranuras para consultas según demanda se comparte entre todas las consultas de un mismo proyecto. Como regla general, si procesas menos de 100 GB de consultas a la vez, es poco probable que utilices las 2,000 ranuras.

Para verificar cuántas ranuras estás usando, consulta Supervisión de BigQuery mediante Stackdriver. Si necesitas más de 2,000 ranuras, comunícate con tu representante de ventas para analizar si el plan de precios de tasa fija satisface tus necesidades.

  • Cantidad máxima de consultas simultáneas en una fuente externa de datos de Cloud Bigtable: 4

Para obtener información sobre los límites que se aplican a las funciones definidas por el usuario en consultas de SQL, consulta los límites de UDF.

Trabajos de carga

Los siguientes límites se aplican a los trabajos creados automáticamente mediante la carga de datos con la herramienta de línea de comandos, GCP Console o la IU web clásica de BigQuery. Los límites también se aplican a los trabajos de carga enviados de manera programática con el método de API jobs.insert de tipo de carga.

Los siguientes límites se aplican cuando cargas datos en BigQuery.

  • Trabajos de carga por tabla por día: 1,000 (incluye operaciones con errores)
  • Trabajos de carga por proyecto por día: 100,000 (incluye operaciones con errores)
  • El límite de 1,000 trabajos de carga por tabla por día no puede aumentarse.
  • Límites de tamaño de filas y celdas:
    Formato de los datos Límite máximo
    CSV 100 MB (tamaño de fila y celda)
    JSON 100 MB (tamaño de fila)
  • Cantidad máxima de columnas por tabla: 10,000
  • Tamaños de archivo máximos:
    Tipo de archivo Comprimido Sin comprimir
    CSV 4 GB 5 TB
    JSON 4 GB 5 TB
    Avro Los archivos Avro comprimidos no son compatibles, pero sí lo son los bloques de datos comprimidos. BigQuery es compatible con los códec DEFLATE y Snappy. 5 TB (1 MB para el encabezado del archivo)
  • Tamaño máximo por trabajo de carga: 15 TB en todos los archivos de entrada para CSV, JSON, Avro, Parquet y ORC
  • Cantidad máxima de URI de origen en la configuración del trabajo: 10,000 URI
  • Cantidad máxima de archivos por trabajo de carga: 10 millones de archivos en total, incluidos todos los archivos que coincidan con todos los URI comodín
  • Límite de tiempo para la ejecución de un trabajo de carga: 6 horas
  • A excepción de los conjuntos de datos ubicados en EE.UU., debes cargar datos desde un depósito de Cloud Storage en la misma región en la que se ubica el conjunto de datos (este depósito puede ser tanto multirregional como regional en la misma región que el conjunto de datos). Puedes cargar datos en un conjunto de datos ubicado en EE.UU. desde cualquier región.

Para obtener más información, consulta Introducción a la carga de datos en BigQuery.

Trabajos de copia

Se aplican los siguientes límites a la copia de tablas en BigQuery. Los límites se aplican a los trabajos creados de forma automática mediante la copia de datos con la herramienta de línea de comandos, la consola o la IU web clásica de BigQuery. También se aplican a los trabajos de copia enviados de manera programática mediante el método de API de tipo de copia jobs.insert.

  • Trabajos de copia por tabla de destino por día: 1,000 (incluye operaciones con errores)
  • Trabajos de copia por proyecto por día: 100,000 (incluye operaciones con errores)

Trabajos de exportación

Los siguientes límites se aplican a trabajos que exportan datos desde BigQuery. Los siguientes límites se aplican a los trabajos creados de forma automática mediante la exportación de datos con la herramienta de línea de comandos, la consola o la IU web clásica de BigQuery. Los límites también se aplican a los trabajos de exportación enviados de manera programática con el método de API jobs.insert de tipo de carga.

  • Exportaciones por día: 100,000 por proyecto y hasta 10 TB por día (el límite de 10 TB de datos es acumulativo en todas las exportaciones)
  • Si necesitas exportar más de 10 TB de datos al día, usa la API de BigQuery Storage.

  • URI comodín: 500 URI comodín por exportación

Límites de conjuntos de datos

Se aplican los siguientes límites a los conjuntos de datos:

  • Cantidad de conjuntos de datos por proyecto: no restringida
    La cantidad de conjuntos de datos por proyecto no está sujeta a una cuota. Sin embargo, a medida que te acercas a varios miles de conjuntos de datos en un proyecto, es posible que observes una reducción en el rendimiento de la IU web clásica y que se requiera más tiempo para mostrar los conjuntos de datos.
  • Cantidad de tablas por conjunto de datos: no restringida
    A medida que te acercas a 50,000 tablas o más en un conjunto de datos, se tarda más en enumerarlas. El rendimiento de la enumeración se ve afectado ya sea que uses una llamada a la API o la IU web clásica de BigQuery. Actualmente, la IU web clásica de BigQuery en GCP Console te permite mostrar solo 50,000 tablas por conjunto de datos. Si quieres mejorar el rendimiento de la IU web clásica de BigQuery, puedes usar el parámetro ?minimal para limitar a 30,000 la cantidad de tablas que se muestran por proyecto. El parámetro se agrega a la URL de la IU web clásica de BigQuery con el siguiente formato: https://bigquery.cloud.google.com/queries/[PROJECT_NAME]?minimal.
  • Cantidad máxima de vistas autorizadas en la lista de control de acceso de un conjunto de datos: 2,500
    Puedes crear una vista autorizada a fin de restringir el acceso a tus datos de origen. La vista autorizada se crea mediante una consulta de SQL que excluye las columnas que no quieras que los usuarios vean cuando consultan la vista. Puedes agregar hasta 2,500 vistas autorizadas a la lista de control de acceso de un conjunto de datos.
  • Frecuencia máxima de operaciones de actualización de metadatos de los conjuntos de datos: 5 operaciones cada 10 segundos por conjunto de datos
    El límite de actualización de metadatos de los conjuntos de datos incluye todas las operaciones de actualización de metadatos realizadas mediante Console, la IU web clásica de BigQuery, la herramienta de línea de comandos bq, o con una llamada a los métodos de API datasets.insert, datasets.patch o datasets.update.
  • Largo máximo de la descripción de un conjunto de datos: 16,384 caracteres
    Cuando agregas una descripción a un conjunto de datos, el texto puede tener, como máximo, 16,384 caracteres.

Límites de la tabla

Los siguientes límites se aplican a las tablas de BigQuery.

Todas las tablas

  • Largo máximo de la descripción de una columna: 16,384 caracteres

Cuando agregas una descripción a una columna, el texto puede tener, como máximo, 16,384 caracteres.

Tablas estándar

  • Cantidad máxima de operaciones en tablas por día: 1,000

Puedes realizar, como máximo, 1,000 operaciones por tabla por día, ya sea que la operación agregue datos a una tabla, la reemplace o utilice una declaración DML INSERT para escribir datos en una tabla.

La cantidad máxima de operaciones en tablas incluye el total combinado de todos los trabajos de carga, de copia y de consulta que agregan datos a una tabla de destino o la reemplazan, o que usan una declaración DML INSERT para escribir datos en ella.

Por ejemplo, si ejecutas 500 trabajos de copia que agregan datos a mytable y 500 trabajos de consulta que agregan datos a , habrás alcanzado la cuota.

  • Frecuencia máxima de operaciones de actualización de metadatos en la tabla: 5 operaciones cada 10 segundos por tabla

El límite de actualización de metadatos de la tabla incluye todas las operaciones de este tipo realizadas mediante GCP Console, la IU web clásica de BigQuery, la herramienta de línea de comandos bq, las bibliotecas cliente o con una llamada a los métodos de API tables.insert, tables.patch o tables.update. Este límite también se aplica al resultado de los trabajos.

  • Cantidad máxima de columnas en una tabla, resultados de consulta o definiciones de la vista: 10,000

Tablas particionadas

  • Cantidad máxima de particiones por tabla: 4,000

  • Cantidad máxima de particiones modificadas mediante un solo trabajo: 2,000

Cada operación de trabajo (de consulta o carga) puede afectar a un máximo de 2,000 particiones. Google BigQuery rechazará cualquier trabajo de consulta o carga que afecte a más de 2,000 particiones.

  • Cantidad máxima de modificaciones de particiones por día, por tabla: 5,000

Cada tabla particionada tiene un límite de 5,000 modificaciones de las particiones por día. Una partición se puede modificar mediante una operación que agrega datos o los reemplaza en la partición. Entre las operaciones que modifican particiones se incluyen las siguientes: un trabajo de carga, una consulta que escribe los resultados en una partición o una declaración DML (INSERT, DELETE, UPDATE o MERGE) que modifica los datos de una partición.

Un trabajo puede afectar a más de una sola partición. Por ejemplo, una declaración DML puede actualizar datos en múltiples particiones (tanto para tablas de tiempo de transferencia como para tablas particionadas). Los trabajos de carga y de consulta también pueden escribir en múltiples particiones, pero únicamente en tablas particionadas. BigQuery usa la cantidad de particiones afectadas por un solo trabajo para determinar qué cantidad de la cuota consume el trabajo. Las inserciones de transmisión no afectan a esta cuota.

  • Frecuencia máxima de operaciones con particiones: 50 operaciones con particiones cada 10 segundos

Límites de vistas

  • Cantidad máxima de niveles de vistas anidadas: 16

BigQuery admite un máximo de 16 niveles en las vistas anidadas. Si hay más de 16 niveles, se mostrará un error de INVALID_INPUT.

  • Longitud máxima de una consulta de SQL estándar usada para definir una vista: 256,000 caracteres

Cuando creas una vista, el texto de la consulta de SQL estándar puede tener 256,000 caracteres como máximo.

  • Cantidad máxima de vistas autorizadas en la lista de control de acceso de un conjunto de datos: 2,500

Puedes crear una vista autorizada a fin de restringir el acceso a tus datos de origen. Una vista autorizada se crea mediante una consulta de SQL que excluye las columnas que no quieras que los usuarios vean cuando consultan la vista. Puedes agregar hasta 2,500 vistas autorizadas a la lista de control de acceso de un conjunto de datos.

Límites de UDF

Se aplican los siguientes límites a las funciones definidas por usuarios, tanto temporales como persistentes, en las consultas de SQL.

  • Cantidad de datos que tu UDF de JavaScript genera cuando procesa una única fila: aproximadamente 5 MB o menos
  • Límite de frecuencia de simultaneidad para consultas de SQL heredadas que contengan funciones definidas por el usuario (UDF): 6 consultas simultáneas
  • El límite de frecuencia de simultaneidad para consultas de SQL heredadas que contienen UDF incluye consultas tanto interactivas como por lotes. Las consultas interactivas que contienen UDF también se toman en cuenta en el límite de frecuencia de simultaneidad de las consultas interactivas. Este límite no se aplica a consultas de SQL estándar.

  • Cantidad máxima de recursos de UDF de JavaScript, como archivos externos o BLOB de código intercalados, en un trabajo de consulta: 50
  • Tamaño máximo de cada BLOB de código intercalado: 32 KB
  • Tamaño máximo de cada recurso de código externo: 1 MB

Se aplican los siguientes límites a las funciones persistentes definidas por el usuario.
  • Largo máximo de un nombre de función: 256 caracteres
  • Cantidad máxima de argumentos: 256
  • Largo máximo de un nombre de argumento: 128 caracteres
  • Profundidad máxima de una cadena de referencia de función definida por el usuario: 16
  • Profundidad máxima del argumento o resultado de tipo STRUCT: 15
  • Cantidad máxima de campos en un argumento o resultado de tipo STRUCT por UDF: 1,024
  • Cantidad máxima de UDF únicas más las referencias de tablas por consulta: 1,000 Después de una expansión completa, cada UDF puede hacer referencia hasta a 1,000 tablas y UDF únicas combinadas.
  • Cantidad máxima de bibliotecas JavaScript en la declaración CREATE FUNCTION: 50
  • Largo máximo de rutas de acceso a bibliotecas JavaScript incluidas: 5,000 caracteres
  • Frecuencia de actualización máxima por UDF: 5 veces cada 10 segundos Después de crear la función, puedes actualizar cada función hasta 5 veces cada 10 segundos.
  • Cada BLOB de código intercalado tiene un límite de tamaño de 32 KB
  • Cada recurso de código de JavaScript tiene un límite de tamaño de 1 MB
  • Las operaciones a nivel de bits en JavaScript manejan solo los 32 bits más significativos

Declaraciones de lenguaje de manipulación de datos

Los siguientes límites se aplican a las declaraciones de lenguaje de manipulación de datos (DML).

  • Cantidad máxima de declaraciones INSERT, UPDATE, DELETE y MERGE combinadas por día, por tabla: 1,000

Una declaración MERGE se cuenta como una sola declaración DML, incluso si contiene varias cláusulas INSERT, UPDATE o DELETE.

Inserciones de transmisión

Se aplican los siguientes límites para la transmisión de datos hacia BigQuery.

Si no propagas datos al campo insertId cuando insertas filas, se aplicará lo siguiente:

En la actualidad, estas cuotas solo se aplican a la ubicación multirregional US y, para usarlas, debes llenar el formulario de inscripción a fin de participar en la versión Beta de BigQuery Streaming V2.

  • Cantidad máxima de filas por segundo: 1,000,000
    Si no propagas datos al campo insertId para cada fila insertada, tendrás un límite de 1,000,000 de filas por segundo y por proyecto. Esta cuota es acumulativa. Puedes usar el total de esta cuota en una sola tabla o para transmitir datos a varias tablas pertenecientes a un mismo proyecto.

    Si superas esta cantidad, se generarán errores quotaExceeded.
  • Cantidad máxima de bytes por segundo: 1 GB
    Si no propagas datos al campo insertId para cada fila insertada, tendrás un límite de 1 GB por segundo y por proyecto. Este límite se aplica a nivel del proyecto. No se aplica para tablas individuales.

    Si superas esta cantidad, se generarán errores quotaExceeded.

Si propagas datos al campo insertId cuando insertas filas, se aplicarán las siguientes restricciones:

  • Cantidad máxima de filas por segundo: 100,000
    Si propagas datos al campo insertId para cada fila insertada, tendrás un límite de 100,000 filas por segundo y por proyecto o tabla. Esta cuota es acumulativa. Puedes usar el total de esta cuota en una tabla o para transmitir datos a varias tablas pertenecientes a un mismo proyecto.

    Si superas esta cantidad, se generarán errores quotaExceeded.
  • Cantidad máxima de bytes por segundo: 100 MB
    Si propagas datos al campo insertId para cada fila insertada, tendrás un límite de 100 MB por segundo y por tabla.

    Si superas esta cantidad, se generarán errores quotaExceeded.

Las siguientes cuotas de transmisión adicionales se aplican sin importar si propagas datos al campo insertId:

  • Tamaño máximo por fila: 1 MB
    Si superas este valor, se generarán errores invalid.
  • Límite de tamaño para solicitudes HTTP: 10 MB
    Si superas este valor, se generarán errores invalid.
  • Cantidad máxima de filas por solicitud: 10,000 filas por solicitud
    Se recomienda 500 filas como máximo. La agrupación en lotes puede aumentar el rendimiento y la capacidad de procesamiento hasta cierto punto, pero en detrimento de la latencia por solicitud. Una baja cantidad de filas por solicitud y la sobrecarga de cada solicitud pueden llevar a que la transferencia sea ineficiente. Si una solicitud abarca demasiadas filas, es posible que observes una disminución en la capacidad de procesamiento.

    Te recomendamos limitarte a un máximo de 500 filas por solicitud, pero puedes experimentar con los datos representativos (esquema y tamaño de datos) para determinar el tamaño de lote óptimo.
  • Longitud del campo insertId: 128
    Si superas este valor, se generarán errores invalid.

Si necesitas un aumento en la cuota de transmisión para tu proyecto, puedes solicitarlo a través de Google Cloud Platform Console. Puedes configurar una cuota personalizada para transmitir datos en incrementos de 50,000 filas. Recibirás una respuesta a tu solicitud en un plazo de 2 a 3 días hábiles.

Solicitudes a la API

Todas las solicitudes a la API

Se aplican los siguientes límites a todas las solicitudes a la API de BigQuery:

  • Solicitudes a la API por segundo, por usuario: 100
    Si realizas más de 100 solicitudes por segundo, es posible que se les aplique regulación. Este límite no se aplica a inserciones de transmisión.
  • Solicitudes a la API simultáneas por usuario: 300
    Si realizas más de 300 solicitudes simultáneas por usuario, es posible que se les aplique regulación. Este límite no se aplica a inserciones de transmisión.

Solicitudes tabledata.list

El método tabledata.list recupera los datos de la tabla de un conjunto específico de filas. Se aplican los siguientes límites a las solicitudes tabledata.list:

  • Cantidad máxima de consultas tabledata.list por proyecto: 500 por segundo
    Cuando llamas a tabledata.list, puedes enviar hasta 500 solicitudes por segundo por proyecto.
  • Cantidad máxima de bytes por segundo por proyecto que muestran las llamadas a tabledata.list: 60 MB por segundo
    Cuando haces una llamada a tabledata.list, puedes mostrar un máximo de 60 MB por segundo de datos de las filas de la tabla por proyecto. El límite se aplica al proyecto que contiene la tabla que se está leyendo.
  • Cantidad máxima de filas por segundo por proyecto que muestran las llamadas tabledata.list: 150,000 por segundo
    Cuando llamas a tabledata.list, puedes mostrar un máximo de 150,000 filas de la tabla por segundo, por proyecto. El límite se aplica al proyecto que contiene la tabla que se está leyendo.

Solicitudes tables.insert

El método tables.insert crea una nueva tabla vacía dentro del conjunto de datos. Se aplican los siguientes límites a las solicitudes tables.insert:

  • Cantidad máxima de solicitudes por segundo, por proyecto: 10 Cuando llamas a tables.insert, puedes crear un máximo de 10 solicitudes por segundo, por proyecto. Este límite incluye las declaraciones que crean tablas, como la declaración DDL CREATE TABLE, y las consultas que escriben resultados en tablas de destino.

Solicitudes projects.list

El método projects.list muestra todos los proyectos a los que se te otorgó acceso. Se aplican los siguientes límites a las solicitudes projects.list:

  • Cantidad máxima de solicitudes por segundo, por proyecto: 2 Cuando llamas a projects.list, puedes crear un máximo de 2 solicitudes por segundo, por proyecto.

Solicitudes jobs.get

El método jobs.get muestra información sobre un trabajo específico. Se aplican los siguientes límites a las solicitudes jobs.get:

  • Cantidad máxima de solicitudes por segundo, por proyecto: 1,000 Cuando llamas a jobs.get, puedes crear un máximo de 1,000 solicitudes por segundo, por proyecto.

Solicitudes jobs.query

El método jobs.query ejecuta una consulta de SQL de forma síncrona y muestra resultados si se completa en un tiempo de espera especificado.

  • Tamaño máximo de respuesta: 10 MB. La configuración predeterminada no limita la cantidad de filas de datos mostradas en cada página de resultados. Sin embargo, estás limitado a un tamaño máximo de respuesta de 10 MB. Puedes modificar la cantidad de filas que se muestran mediante el parámetro maxResults.

Solicitudes a la API de BigQuery Storage

Se aplican los siguientes límites a las llamadas ReadRows realizadas con la API de BigQuery Storage:

  • Llamadas ReadRows por minuto: 5,000 Cuando lees datos con la API de BigQuery Storage, tienes un límite de 5,000 llamadas ReadRows por minuto, usuario y proyecto.

Se aplican los siguientes límites a todas las demás llamadas a los métodos realizadas con la API de BigQuery Storage:

  • Llamadas a la API por minuto: 1,000. Tienes un límite de 1,000 llamadas a la API de BigQuery Storage por minuto, usuario y proyecto.

¿Cuándo se restablecen las cuotas?

Las cuotas diarias se restablecen en intervalos regulares durante el día a fin de reflejar su propósito de orientar comportamientos que limiten las frecuencias. También se realizan actualizaciones intermitentes para evitar interrupciones prolongadas cuando una cuota se agota. Por lo general, se habilita más capacidad de la cuota en unos minutos en lugar de restablecerla por completo una vez al día.

Códigos de error

Los errores de cuota y límite muestran un código de respuesta HTTP 403 o 400. Consulta Solución de problemas a fin de obtener una lista completa de los códigos de error y los pasos para solucionar problemas.

¿Te sirvió esta página? Envíanos tu opinión:

Enviar comentarios sobre…

¿Necesitas ayuda? Visita nuestra página de asistencia.