Cuotas y límites

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

En las siguientes listas se resumen los límites del sistema en cuanto a frecuencia y cuotas.

Tareas de consulta

Los siguientes límites corresponden a las tareas de consulta creadas automáticamente mediante la ejecución de consultas interactivas, así como a las tareas enviadas de forma programática con llamadas a los métodos jobs.query y jobs.insert de tipo consulta.

Las consultas con resultados devueltos desde la caché de consulta se tienen en cuenta en este límite durante el tiempo que tarda BigQuery en determinar que es un resultado en caché. Las consultas de ejecución de prueba no se tienen en cuenta en este límite. Puedes especificar que una consulta es de prueba con la marca --dry_run o estableciendo la propiedad dryRun en una tarea de consulta.

Este límite se aplica a nivel de proyecto. Para aumentar el límite, ponte en contacto con el equipo de asistencia o con Ventas.

  • Límite de frecuencia simultánea para las consultas interactivas a fuentes de datos externas a Bigtable: 4 consultas simultáneas

Tienes un límite de 4 consultas simultáneas a fuentes de datos externas a Bigtable.

  • Límite de frecuencia simultánea para consultas de SQL antiguo que contienen funciones definidas por el usuario: 6 consultas simultáneas

El límite de frecuencia simultánea para las consultas de SQL antiguo que contienen funciones definidas por el usuario incluye las consultas interactivas y por lotes. Las consultas interactivas que contienen este tipo de funciones también cuentan de cara al límite de frecuencia simultánea para consultas interactivas. Este límite no se aplica a las consultas de SQL estándar.

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

Para fijar límites relativos a la cantidad de datos sobre los cuales los usuarios pueden realizar consultas, establece cuotas personalizadas.

  • Límite diario de actualización de tablas de destino: 1000 actualizaciones por tabla y día

Las tablas de destino de una tarea de consulta están sujetas al límite de 1000 actualizaciones por tabla y día. Entre las actualizaciones que se pueden realizar en una tabla de destino se incluyen las operaciones de anexión y de sobrescritura ejecutadas por una consulta mediante la consola, la UI web de BigQuery clásica, la herramienta de línea de comandos bq o las llamadas a los métodos de API jobs.query y jobs.insert de tipo consulta.

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

Este límite no se puede cambiar.

  • Número máximo de tablas a las que se hace referencia por consulta: 1000

  • Longitud máxima de las consultas de SQL antiguo sin resolver: 256 kB

  • Longitud máxima de las consultas de SQL estándar sin resolver: 1 MB

  • Longitud máxima de las consultas de SQL antiguo y estándar resueltas: 12 MB

En el límite de longitud de las consultas resueltas se incluye la longitud de todas las vistas y tablas comodín a las que la consulta hace referencia.

  • Número máximo de parámetros de consulta de SQL estándar: 10.000

  • Tamaño máximo de respuesta: 10 GB comprimidos1

1 El tamaño varía en función de la relación de compresión que se utilice para los datos. El tamaño de respuesta real puede ser significativamente superior a 10 GB.

El tamaño máximo de respuesta es ilimitado cuando se escribe un gran volumen de resultados de consulta en una tabla de destino.

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

2 El límite máximo del tamaño de fila es aproximado porque se basa en la representación interna de los datos de fila. Este límite se aplica durante ciertas fases de la ejecución de una tarea de consulta.

  • Número máximo de columnas en una tabla, resultado de consulta o definición de vista: 10.000

  • Número máximo de ranuras simultáneas por proyecto para el precio bajo demanda: 2000

El número predeterminado de ranuras para las consultas bajo demanda se comparte entre todas las consultas de un único proyecto. Como regla general, si procesas menos de 100 GB de consultas a la vez, es poco probable que utilices las 2000 ranuras.

Para comprobar cuántas ranuras estás utilizando, consulta la página en que se detalla la supervisión de BigQuery con Stackdriver. Si necesitas más de 2000 ranuras, ponte en contacto con tu representante de ventas para analizar si la tarifa fija se ajusta a tus necesidades.

  • Número máximo de consultas simultáneas a fuentes de datos externas a Bigtable: 4

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

Tareas de carga

Se aplican a las tareas creadas automáticamente mediante la carga de datos con la herramienta de línea de comandos, la consola de Cloud o la interfaz de usuario web de BigQuery clásica. Los límites también se aplican a las tareas de carga enviadas de forma programática mediante el método de API jobs.insert de tipo carga.

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

  • Tareas de carga por tabla y día: 1000 (incluidos los fallos)
  • Tareas de carga por proyecto y día: 100.000 (incluidos los fallos)
  • El límite de 1000 tareas de carga por tabla y día no puede aumentarse.
  • Límites de tamaño de filas y celdas:
    Formato de datos Límite máximo
    CSV 100 MB (tamaño de filas y celdas)
    JSON 100 MB (tamaño de filas)
  • Número máximo de columnas por tabla: 10.000
  • Tamaños máximos de archivo:
    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 los bloques de datos comprimidos sí lo son. BigQuery es compatible con los códecs DEFLATE y Snappy. 5 TB (1 MB para el encabezado del archivo)
  • Tamaño máximo por tarea de carga: 15 TB entre todos los archivos de entrada para los formatos CSV, JSON, Avro, Parquet y ORC.
  • Número máximo de URIs de origen en la configuración de la tarea: 10.000 URI.
  • Número máximo de archivos por tarea de carga: 10 millones de archivos totales, incluidos todos los archivos coincidentes con todas las URI comodín.
  • Límite de tiempo para la ejecución de una tarea de carga: 6 horas.
  • Con la excepción de los conjuntos de datos radicados en EE. UU., tienes que cargar los datos desde un segmento de Cloud Storage que se encuentre en la misma región que la ubicación del conjunto de datos (el segmento puede ser multirregional o estar en la misma región que el conjunto de datos). Puedes cargar datos desde cualquier región a los conjuntos de datos radicados en EE. UU.

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

Tareas de copia

Los siguientes límites corresponden a la copia de tablas en BigQuery. Se aplican a tareas creadas automáticamente mediante la copia de datos con la herramienta de línea de comandos, la consola o la interfaz de usuario web de BigQuery clásica. Los límites también se aplican a las tareas de copia enviadas de forma programática mediante el método de API jobs.insert de tipo copia.

  • Tareas de copia por tabla de destino y día: 1000 (incluidos los fallos)
  • Tareas de copia por proyecto y día: 100.000 (incluidos los fallos)

Tareas de exportación

Los siguientes límites corresponden a las tareas de exportación de datos desde BigQuery. Se aplican a las tareas creadas automáticamente mediante la exportación de datos con la herramienta de línea de comandos, la consola o la interfaz de usuario web de BigQuery clásica. Los límites también se aplican a las tareas de exportación enviadas de forma programática mediante el método de API jobs.insert de tipo carga.

  • Exportaciones al día: 100.000 exportaciones por proyecto y hasta 10 TB al día (el límite de datos de 10 TB es acumulativo entre todas las exportaciones)
  • Si exportas más de 10 TB de datos al día, usa la API de almacenamiento de BigQuery.

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

Límites de conjuntos de datos

Los siguientes límites corresponden a los conjuntos de datos:

  • Número de conjuntos de datos por proyecto: sin restricciones
    El número de conjuntos de datos por proyecto no está sujeto a una cuota; sin embargo, cuando un proyecto se acerca a miles de conjuntos de datos, el rendimiento de la interfaz de usuario web clásica comienza a disminuir y las operaciones para mostrar los conjuntos de datos se ralentizan.
  • Número de tablas por conjunto de datos: sin restricciones
    Cuando un conjunto de datos se acerca a las 50.000 tablas, las operaciones para mostrarlas se ralentizan. El rendimiento de estas operaciones se ve afectado tanto si utilizas una llamada a la API como si utilizas la interfaz de usuario web de BigQuery clásica. Actualmente, dicha interfaz te permite mostrar solo 50.000 tablas por conjunto de datos en la consola de Cloud Platform. Para mejorar el rendimiento de la interfaz de usuario web de BigQuery clásica, puedes usar el parámetro ?minimal para imitar el número de tablas que se muestran a 30.000 por proyecto. Tienes que añadir el parámetro a la URL de la interfaz con el siguiente formato: https://bigquery.cloud.google.com/queries/[PROJECT_NAME]?minimal.
  • Número máximo de vistas autorizadas en una lista de control de acceso de un conjunto de datos: 2500
    Puedes crear una vista autorizada para restringir el acceso a tus datos de origen. Se crea una vista autorizada con una consulta SQL que excluye las columnas que no quieres que vean los usuarios cuando envían una consulta a la vista. Puedes añadir hasta 2500 vistas autorizadas a una lista de control de acceso de un conjunto de datos.
  • Frecuencia máxima de operaciones de actualización de metadatos de un conjunto de datos: 5 operaciones cada 10 segundos por conjunto de datos
    El límite de actualización de los metadatos de los conjuntos de datos incluyen todas las operaciones de actualización de metadatos realizadas mediante la consola, la interfaz de usuario web de BigQuery clásica, la herramienta de línea de comandos bq o las llamadas a los métodos de API datasets.insert, datasets.patch o datasets.update.
  • Longitud máxima de la descripción de un conjunto de datos: 16.384 caracteres
    Cuando añades una descripción a un conjunto de datos, el texto puede tener un máximo de 16.384 caracteres.

Límites de tabla

Los siguientes límites corresponden a las tablas de BigQuery.

Todas las tablas

  • Longitud máxima de la descripción de una columna: 16.384 caracteres

Cuando añades una descripción a una columna, el texto puede tener un máximo de 16.384 caracteres.

Tablas estándares

  • Número máximo de operaciones de tabla al día: 1000

Tienes un límite de 1000 operaciones por tabla y día tanto si la operación añade datos a una tabla como si la sobrescribe o utiliza una declaración INSERT de lenguaje de manipulación de datos (DML) para escribir datos.

El número máximo de operaciones de tabla incluye el total combinado de todas las tareas de carga, tareas de copia y tareas de consulta que añaden datos a una tabla de destino o la sobrescriben, o bien que usan una declaración INSERT de DML para escribir datos.

Por ejemplo, si ejecutas 500 tareas de copia que añaden datos a mytable y 500 tareas de consulta que añaden datos a , alcanzarás la cuota.

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

El límite de actualización de los metadatos de las tablas incluyen todas las operaciones de actualización de metadatos que se realizan mediante la consola de Cloud, la interfaz de usuario web de BigQuery clásica, la herramienta de línea de comandos bq, las bibliotecas de cliente, las llamadas a los métodos de API tables.insert, tables.patch o tables.update, o la ejecución de declaraciones de DDL ALTER TABLE. Este límite también se aplica al resultado de la tarea.

  • Número máximo de columnas en una tabla, resultado de consulta o definición de vista: 10.000

Tablas con particiones

  • Número máximo de particiones por tabla: 4000

  • Número máximo de particiones modificadas por una sola tarea: 4000

Cada operación de tarea (consulta o carga) puede afectar a un máximo de 4000 particiones. BigQuery rechaza cualquier tarea de carga o de consulta que afecte a más de 4000 particiones.

  • Número máximo de modificaciones de partición por tabla con particiones por hora de ingestión: 5000
  • Número máximo de modificaciones de partición por tabla con particiones en columnas: 30.000

Tienes un límite diario de 5000 modificaciones de partición en total por cada tabla con particiones por hora de ingestión, y de 3000 modificaciones de partición por cada tabla con particiones en columnas. Una partición puede modificarse con una operación que añade datos a una partición o los sobrescribe. Entre las operaciones que modifican las particiones se incluyen las tareas de carga, las consultas que escriben resultados en una partición o las declaraciones de DML (INSERT, DELETE, UPDATE o MERGE) que modifican datos en una partición.

Es posible que una sola tarea afecte a más de una partición. Por ejemplo, una declaración de DML puede actualizar datos en varias particiones (tanto en tablas con particiones estándares como en tablas con particiones por hora de ingestión). Las tareas de consulta y carga también pueden escribir en varias particiones pero solo en tablas con particiones. BigQuery utiliza el número de particiones afectadas por una tarea para determinar cuánta cuota consume la tarea. Las inserciones de transmisión no influyen en la cuota.

  • Frecuencia máxima de operaciones de partición: 50 operaciones de partición cada 10 segundos

Límites de vista

  • Número máximo de niveles de vista anidados: 16

BigQuery admite hasta 16 niveles de vista anidados. Si se supera esta cifra, se devolverá un error del tipo INVALID_INPUT.

  • Longitud máxima de una consulta de SQL estándar utilizada para definir una vista: 256.000 caracteres

Cuando creas una vista, el texto de la consulta de SQL estándar puede incluir un máximo de 256.000 caracteres.

  • Número máximo de vistas autorizadas en una lista de control de acceso de un conjunto de datos: 2500

Puedes crear una vista autorizada para restringir el acceso a tus datos de origen. Se crea una vista autorizada con una consulta SQL que excluye las columnas que no quieres que vean los usuarios cuando envían una consulta a la vista. Puedes añadir hasta 2500 vistas autorizadas a una lista de control de acceso de un conjunto de datos.

Límites de las funciones definidas por el usuario

Los siguientes límites se aplican a las funciones definidas por el usuario temporales y persistentes en las consultas SQL.

  • Cantidad de datos que genera tu función definida por el usuario en JavaScript cuando procesa una única fila: aproximadamente 5 MB o menos.
  • Límite de frecuencia simultánea para las consultas SQL antiguo que contienen funciones definidas por el usuario: 6 consultas simultáneas.
  • El límite de frecuencia simultánea para las consultas de SQL antiguo que contienen funciones definidas por el usuario incluye las consultas interactivas y por lotes. Las consultas interactivas que contienen funciones definidas por el usuario también cuentan de cara al límite de frecuencia simultánea de consultas interactivas. Este límite no se aplica a las consultas SQL estándar.

  • Número máximo de recursos de funciones definidas por el usuario en JavaScript, como código insertado o archivos externos, en una tarea de consulta: 50
  • Tamaño máximo de cada blob de código insertado: 32 kB
  • Tamaño máximo de cada recurso de código externo: 1 MB

Los siguientes límites se aplican a las funciones definidas por el usuario persistentes.
  • Longitud máxima de un nombre de función: 256 caracteres
  • Número máximo de argumentos: 256
  • Longitud máxima del nombre de un argumento: 128 caracteres
  • Profundidad máxima de la cadena de referencia de una función definida por el usuario: 16
  • Profundidad máxima de un argumento o resultado del tipo STRUCT: 15
  • Número máximo de campos en un argumento o resultado del tipo STRUCT por función definida por el usuario: 1024
  • Número máximo de funciones definidas por el usuario únicas, además de referencias de tablas por consulta: 1000 Tras la expansión total, cada función definida por el usuario puede hacer referencia a hasta 1000 funciones definidas por el usuario y tablas únicas combinadas.
  • Número máximo de bibliotecas de JavaScript en la declaración CREATE FUNCTION: 50
  • Longitud máxima de las rutas de la biblioteca de JavaScript incluidas: 5000 caracteres
  • Velocidad de actualización máxima por unidad definida por el usuario: 5 cada 10 segundos Tras crear la función, puedes actualizar cada función hasta 5 veces cada 10 segundos.
  • Cada blob de código insertado está limitado a un tamaño máximo de 32 kB.
  • Cada recurso de código de JavaScript está limitado a un tamaño máximo de 1 MB.

Declaraciones de lenguaje de manipulación de datos

Los siguientes límites corresponden a las declaraciones de DML.

  • Número máximo de declaraciones INSERT, UPDATE, DELETE y MERGE combinadas por día y tabla: 1000

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

Inserciones de transmisión

Los siguientes límites corresponden a la transmisión de datos a BigQuery.

Si no rellenas el campo insertId cuando insertas filas:

Actualmente, estas cuotas solo se aplican a la ubicación multirregional US. Además, debes completar el formulario de registro de la versión 2 (beta) de transmisiones de BigQuery para poder usarlas.

  • Número máximo de filas por segundo: 1.000.000
    Si no rellenas el campo insertId cada vez que insertes una fila, se aplicará un límite de 1.000.000 filas por segundo y proyecto. Esta cuota es acumulativa. Puedes usarla toda para una sola tabla o para transmitir datos a varias tablas de un proyecto.

    Superar esta cantidad generará errores del tipo quotaExceeded.
  • Número máximo de bytes por segundo: 1 GB
    Si no rellenas el campo insertId cada vez que insertes una fila, se aplicará un límite de 1 GB por segundo y proyecto. Este límite se aplica a nivel de proyecto, no de tabla.

    Superar esta cantidad generará errores del tipo quotaExceeded.

Si rellenas el campo insertId cuando insertes una fila, ocurrirá lo siguiente:

  • Número máximo de filas por segundo: 100.000
    Si rellenas el campo insertId cada vez que insertes una fila, se aplicará un límite de 100.000 filas por segundo y proyecto o tabla. Esta cuota es acumulativa. Puedes usarla toda en una tabla o para transmitir datos a varias tablas de un proyecto.

    Superar esta cantidad generará errores del tipo quotaExceeded.
  • Número máximo de bytes por segundo: 100 MB
    Si rellenas el campo insertId cada vez que insertes una fila, se aplicará un límite de 100 MB por segundo y tabla.

    Superar esta cantidad generará errores del tipo quotaExceeded.

Las siguientes cuotas de transmisión se aplican tanto si rellenas el campo insertId como si no:

  • Tamaño máximo de fila: 1 MB
    Superar este valor generará errores del tipo invalid.
  • Límite de tamaño de la solicitud HTTP: 10 MB
    Superar este valor generará errores del tipo invalid.
  • Número máximo de filas por solicitud: 10.000
    Recomendamos usar un máximo de 500 filas. Trabajar por lotes puede aumentar el rendimiento hasta cierto punto, pero a costa de aumentar la latencia por solicitud. El envío de un número demasiado bajo de filas por solicitud y la sobrecarga de cada solicitud pueden provocar una ingestión ineficiente. Enviar demasiadas filas por solicitud puede disminuir el rendimiento.

    Recomendamos usar un máximo de 500 filas por solicitud, pero experimentar con datos representativos (tamaños de datos y esquemas) te ayudará a determinar el tamaño de lote ideal.
  • Longitud del campo insertId: 128
    Superar este valor generará errores del tipo invalid.

Si necesitas que aumentemos las cuotas de transmisión de tu proyecto, puedes enviar una solicitud desde la consola de Google Cloud. Puedes fijar una cuota personalizada para la transferencia de datos en incrementos de 50.000 filas. Deberías recibir una respuesta en un plazo de dos a tres días laborables.

Solicitudes a APIs

Todas las solicitudes a APIs

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

  • Solicitudes a API por segundo y usuario: 100
    Si realizas más de 100 solicitudes por segundo, podría limitarse el envío. Este límite no se aplica a las inserciones de transmisión.
  • Solicitudes a API simultáneas por usuario: 300
    Si un usuario realiza más de 300 solicitudes simultáneas, podría limitarse el envío. Este límite no se aplica a las inserciones de transmisión.

Solicitudes de tabledata.list

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

  • Número máximo de consultas tabledata.list por proyecto: 500/segundo
    Cuando llamas a tabledata.list, puedes enviar un máximo de 500 solicitudes por segundo y proyecto.
  • Número máximo de bytes por segundo y proyecto devueltos por llamadas a tabledata.list: 60 MB/segundo
    Cuando llamas a tabledata.list, puedes devolver un máximo de 60 MB por segundo de datos de fila de tabla y por proyecto. El límite se aplica al proyecto que contiene la tabla que se está leyendo.
  • Número máximo de filas por segundo y proyecto devueltas por llamadas a tabledata.list: 150.000/segundo
    Cuando llamas a tabledata.list, puedes devolver un máximo de 150.000 filas de tablas por segundo y proyecto. El límite se aplica al proyecto que contiene la tabla que se está leyendo.

Solicitudes de tables.insert

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

Solicitudes de projects.list

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

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

Solicitudes de jobs.get

El método jobs.get devuelve información sobre una tarea específica. Se aplican los siguientes límites a las solicitudes jobs.get:

  • Número máximo de solicitudes por segundo y proyecto: 1000 Cuando llamas a jobs.get, puedes crear un máximo de 1000 solicitudes por segundo y proyecto.

Solicitudes de jobs.query

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

  • Tamaño máximo de respuesta: 10 MB De forma predeterminada, no hay un límite máximo de filas de datos que pueden devolverse por página de resultados, pero sí lo hay en el tamaño de respuesta: 10 MB. Puedes cambiar el número de filas que se devuelven con el parámetro maxResults.

Solicitudes a la API de almacenamiento de BigQuery

Los siguientes límites se aplican a las llamadas a ReadRows si se usa la API de almacenamiento de BigQuery:

  • Llamadas a ReadRows por minuto: 5000 Al leer los datos con la API de almacenamiento de BigQuery, se aplica un límite de 5000 llamadas a ReadRows por minuto, usuario y proyecto.

Los siguientes límites se aplican a las llamadas al resto de los métodos si se usa la API de almacenamiento de BigQuery:

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

¿Cuándo se reponen las cuotas?

Como su objetivo es controlar el límite de frecuencia, las cuotas diarias se reponen a intervalos regulares a lo largo del día. También se realiza una actualización intermitente para evitar interrupciones prolongadas en caso de que se agote la cuota. Por lo general, se ofrece más cuota en cuestión de minutos en lugar de reponerse de forma global una vez al día.

Códigos de error

Los errores de cuota y límite devuelven un código de respuesta HTTP 403 o 400. Consulta la página sobre la solución de problemas para ver una lista completa de los códigos de error, así como los pasos que debes seguir para resolver las incidencias.

¿Te ha resultado útil esta página? Enviar comentarios:

Enviar comentarios sobre...

Si necesitas ayuda, visita nuestra página de asistencia.