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 y las consultas de ejecución de prueba no se tienen en cuenta en este límite. Para indicar que se trata de una consulta de ejecución de prueba, puedes utilizar la marca --dry_run o asignar la propiedad dryRun a 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 bajo demanda a fuentes de datos externas a Cloud Bigtable: 4 consultas simultáneas

Tienes un límite de 4 consultas simultáneas a fuentes de datos externas a Cloud 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 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, fija 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 adición y de sobrescritura ejecutadas por una consulta mediante la consola, la interfaz de usuario web de BigQuery clásica, la herramienta de línea de comandos bq y 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

  • 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 antiguo resueltas: 12 MB

  • Longitud máxima de las consultas de SQL estándar sin resolver: 1 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.

  • Tamaño máximo de respuesta: 128 MB 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 128 MB.

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 monitorizació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 Cloud 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

Los siguientes límites corresponden a las tareas creadas automáticamente mediante la carga 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 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: 50.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: 10.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: 50.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)
  • 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 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. Dicha interfaz te permite mostrar solo 50.000 tablas por conjunto de datos en la consola de Google Cloud Platform (GCP). Para mejorar el rendimiento de la interfaz de usuario web de BigQuery clásica, puedes utilizar el parámetro ?minimal para limitar el número de tablas mostradas 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 metadatos de un conjunto de datos incluye todas las operaciones de actualización de metadatos realizadas con la consola, la interfaz de usuario web de BigQuery clásica, la herramienta de línea de comandos bq y 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 en una tabla.

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 utilizan una declaración INSERT de DML para escribir datos en una tabla.

Por ejemplo, si ejecutas 500 tareas de copia que añaden datos a mytable y 500 tareas de consulta que añaden datos a mytable, 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 metadatos de una tabla incluye todas las operaciones de actualización de metadatos realizadas con la consola, la interfaz de usuario web de BigQuery clásica, la herramienta de línea de comandos bq y las llamadas a los métodos de API tables.insert, tables.patch o tables.update. 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: 2000

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

  • Número máximo de modificaciones de partición por día y tabla: 5000

Tienes un límite diario de 5000 modificaciones de partición en total por cada tabla con particiones. 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 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 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.

  • Una tarea de consulta puede tener un máximo de 50 recursos de funciones definidas por el usuario en JavaScript (blobs de código insertado o archivos externos).
  • Cada blob de código insertado está limitado a un tamaño máximo de 32 KB.
  • Cada recurso de código externo 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.

Límites de BigQuery ML

Los siguientes límites se aplican a las tareas de consulta de SQL estándar que utilizan declaraciones y funciones de BigQuery ML.

  • Consultas que utilizan la declaración CREATE MODEL: 1000
    • Tienes un límite de 1000 consultas CREATE MODEL por día y proyecto.

Inserciones de transmisión

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

  • Tamaño máximo de fila: 1 MB. Superar este valor generará errores invalid.
  • Límite de tamaño de la solicitud HTTP: 10 MB. Superar este valor también generará errores invalid.
  • Número máximo de filas por segundo: 100.000 filas por segundo y proyecto. Superar esta cantidad generará errores quotaExceeded. El número máximo de filas por segundo y tabla también es 100.000.
    Puedes usar toda esta cuota en una tabla o puedes dividirla entre varias tablas de un proyecto.
  • Número máximo de filas por solicitud: 10.000 filas. Recomendamos 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 los gastos generales de cada solicitud pueden provocar una ingestión ineficiente. Enviar demasiadas filas por solicitud puede disminuir el rendimiento.

    Recomendamos usar unas 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.
  • Número máximo de bytes por segundo: 100 MB por segundo y tabla. Superar esta cantidad generará errores quotaExceeded.

Si necesitas más cuota de transmisión de datos para tu proyecto, envía una solicitud desde la página de la consola de GCP. Puedes fijar una cuota personalizada para la transferencia de datos en incrementos de 50.000 filas. Por norma general, recibirás una respuesta en un plazo de dos a tres días laborables.

Solicitudes de API

Todas las solicitudes de API

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

  • Solicitudes de 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 de 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 tampoco se aplica a las inserciones de transmisión.

Solicitudes de tabledata.list

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

  • Número máximo de consultas tabledata.list por proyecto: 500/segundo
    Cuando llamas a tabledata.list, puedes enviar hasta 500 solicitudes por segundo y proyecto.
  • Número máximo de bytes por segundo y proyecto devueltos por las 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 tabla 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 nueva y vacía en el conjunto de datos. Los siguientes límites corresponden a las solicitudes de tables.insert:

Solicitudes de projects.list

El método projects.list muestra todos los proyectos a los que se te haya dado acceso. Los siguientes límites corresponden a las solicitudes de 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. Los siguientes límites corresponden a las solicitudes de 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.

¿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.