Quotas et limites

Ce document répertorie les quotas et limites qui s'appliquent à BigQuery.

Un quota limite la quantité d'une ressource Google Cloud partagée particulière que votre projet cloud peut utiliser, y compris les composants matériels, logiciels et réseau.

Les quotas font partie d'un système qui effectue les opérations suivantes :

  • Surveille votre utilisation ou votre consommation des produits et services Google Cloud
  • Limite la consommation de ces ressources pour des raisons telles que l'équité et la réduction des pics d'utilisation
  • Gère des configurations qui appliquent automatiquement des restrictions recommandées
  • Fournit un moyen de modifier le quota ou de demander des modifications

Dans la plupart des cas, lorsqu'un quota est dépassé, le système bloque immédiatement l'accès à la ressource Google concernée et la tâche que vous essayez d'effectuer échoue. Dans la plupart des cas, les quotas s'appliquent à chaque projet Cloud. Ils sont partagés entre toutes les applications et adresses IP qui utilisent ce projet.

De nombreux produits et services présentent également des limites qui ne sont pas liées au système de quotas. Il s'agit de contraintes, telles que la taille maximale des fichiers ou les limites de schémas de bases de données, qui ne peuvent généralement pas être augmentées ou réduites, sauf indication contraire.

Par défaut, les quotas et limites de BigQuery s'appliquent par projet. Les quotas et limites qui s'appliquent de manière différente sont indiqués comme tels ; par exemple, le nombre maximal de colonnes par table ou le nombre maximal de requêtes API simultanées par utilisateur. Les règles spécifiques varient en fonction de la disponibilité des ressources, du profil de l'utilisateur, de l'historique d'utilisation du service et d'autres facteurs. Elles peuvent en outre être modifiées sans préavis.

Renouvellement de quota

Les quotas quotidiens sont réapprovisionnés à intervalles réguliers tout au long de la journée, de sorte à inciter les utilisateurs à limiter leur taux de requêtes. Nous procédons en outre à un renouvellement progressif des quotas pour éviter de longues interruptions lorsqu'ils ont été atteints. Au lieu d'être réinitialisés intégralement en une seule fois, ils sont renouvelés au bout de quelques minutes.

Demander une augmentation du quota

Pour demander une augmentation ou une diminution de la plupart des quotas, utilisez Google Cloud Console. Certains quotas ne peuvent pas être augmentés au-delà de leurs valeurs par défaut.

Pour en savoir plus, consultez les sections suivantes de la page Utiliser des quotas :

Pour obtenir des instructions détaillées sur le processus de demande d'augmentation de quota dans Cloud Console, cliquez sur Visite guidée:

VISITE GUIDÉE

Autorisations

Pour afficher et mettre à jour vos quotas BigQuery dans Cloud Console, vous avez besoin des mêmes autorisations que pour tout quota Google Cloud. Pour plus d'informations, consultez la section Autorisations de quota Google Cloud.

Tâches de copie

Les limites suivantes s'appliquent aux tâches BigQuery permettant de copier des tables. Ces limites concernent les tâches que vous créez à l'aide de l'outil de ligne de commande bq, de Cloud Console ou de la méthode API jobs.insert de type copie. Toutes les tâches de copie sont comptabilisées dans cette limite, qu'elles aboutissent ou non.

Limite Par défaut Remarques
Tâches de copie par table de destination et par jour Consultez la section Opérations de table par jour.
Tâches de copie par jour 100 000 Tâches Votre projet peut exécuter jusqu'à 100 000 tâches de copie par jour.
Tâches de copie interrégionales par table de destination et par jour 100 Tâches Votre projet peut exécuter jusqu'à 100 tâches de copie interrégionales par jour et par table de destination.
Tâches de copie interrégionales par jour 2 000 Tâches Votre projet peut exécuter jusqu'à 2 000 tâches de copie interrégionales par jour.

Les limites suivantes s'appliquent à la copie d'ensembles de données :

Limite Par défaut Remarques
Nombre maximal de tables dans l'ensemble de données source 20 000 TABLES Un ensemble de données source peut comporter jusqu'à 20 000 tables.
Nombre maximal de tables pouvant être copiées par exécution dans un ensemble de données de destination dans la même région 20 000 TABLES Votre projet peut copier 20 000 tables par exécution dans un ensemble de données de destination situé dans la même région.
Nombre maximal de tables pouvant être copiées par exécution dans un ensemble de données de destination dans une autre région 1 000 TABLES Votre projet peut copier 1 000 tables par exécution dans un ensemble de données de destination situé dans une région différente. Par exemple, si vous configurez une copie interrégionale d'un ensemble de données comprenant 8 000 tables, le service de transfert de données BigQuery crée automatiquement huit exécutions de manière séquentielle. La première exécution copie 1 000 tables. Vingt-quatre heures plus tard, la deuxième exécution copie 1 000 tables. Ce processus se poursuit jusqu'à ce que toutes les tables de l'ensemble de données soient copiées, dans la limite de 20 000 tables par ensemble de données.

Instructions du langage de manipulation de données (LMD)

Les limites suivantes s'appliquent aux instructions BigQuery langage de manipulation de données (LMD) :

Limite Par défaut Remarques
Instructions LMD par jour Illimité Les instructions LMD sont comptabilisées dans le nombre d'opérations de table par jour (ou dans le nombre d'opérations de table partitionnée par jour pour les tables partitionnées). Toutefois, le nombre d'instructions LMD que votre projet peut exécuter par jour n'est pas limité. Une fois la limite quotidienne d'opérations de table (ou d'opérations de table partitionnée) atteinte, des erreurs sont générées pour les opérations de table autres que LMD. Vous pouvez toutefois continuer à exécuter des instructions LMD sans générer d'erreurs.
Instructions LMD en mutation simultanées par table 2 instructions BigQuery exécute jusqu'à deux instructions LMD en mutation simultanées (UPDATE, DELETE et MERGE) par table. Les autres instructions LMD en mutation d'une table sont placées en file d'attente.
Instructions LMD en mutation en file d'attente par table 20 instructions Dans la file d'attente, une table peut contenir jusqu'à 20 instructions LMD en mutation en attente d'exécution. Si vous envoyez des instructions LMD en mutation supplémentaires pour la table, ces instructions échouent.
Temps maximal dans la file d'attente pour l'instruction LMD 6 heures Une instruction LMD interactive prioritaire peut être placée en file d'attente pendant six heures. Si l'instruction n'est pas exécutée au bout de six heures, elle échoue.

Pour en savoir plus sur les instructions LMD en mutation, consultez la section UPDATE, DELETE, MERGELMD simultané.

Ensembles de données

Les limites suivantes s'appliquent aux ensembles de données BigQuery.

Limite Par défaut Remarques
Nombre maximal d'ensembles de données Illimité Le nombre d'ensembles de données qu'un projet peut avoir est illimité.
Nombre de tables par ensemble de données Illimité Lorsque vous utilisez un appel d'API, les performances d'énumération sont ralenties à mesure que vous approchez 50 000 tables dans un ensemble de données. Cloud Console peut afficher jusqu'à 50 000 tables pour chaque ensemble de données.
Nombre de vues autorisées dans la liste de contrôle d'accès d'un ensemble de données 2 500 Vues autorisées La liste de contrôle d'accès d'un ensemble de données peut contenir jusqu'à 2 500 vues autorisées.
Nombre d'opérations de mise à jour d'un ensemble de données par ensemble de données toutes les 10 secondes 5 opérations Votre projet peut effectuer jusqu'à cinq opérations de mise à jour des ensembles de données toutes les 10 secondes. La limite de mise à jour de l'ensemble de données inclut toutes les opérations de mise à jour des métadonnées effectuées par les éléments suivants :
Longueur maximale de la description des ensembles de données 16 384 caractères Lorsque vous ajoutez une description à un ensemble de données, le texte ne doit pas comporter plus de 16 384 caractères.

Tâches d'exportation

Le quota suivant s'applique aux tâches d'exportation de données depuis BigQuery en exportant des données à l'aide de l'outil de ligne de commande bq, de Cloud Console ou de la Méthode d'API jobs.insert de type exportation.

Quota Par défaut Remarques
Nombre maximal d'octets exportés par jour 50 To Votre projet peut exporter jusqu'à 50 téraoctets par jour.
Pour exporter plus de 50 To de données par jour, utilisez l'API Storage Read ou l'instruction EXPORT DATA.
Afficher le quota dans Cloud Console

Les limites suivantes s'appliquent aux tâches d'exportation de données depuis BigQuery à l'aide de l'outil de ligne de commande bq, de Cloud Console ou de la méthode d'API jobs.insert de type exportation.

Limite Par défaut Remarques
Nombre maximal d'exportations par jour 100 000 Exportations Votre projet peut exécuter jusqu'à 100 000 exportations par jour.
URI génériques par exportation 500 URI Une exportation peut comporter jusqu'à 500 URI génériques.

Tâches de chargement

Les limites suivantes s'appliquent lorsque vous chargez des données dans BigQuery à l'aide de Cloud Console, de l'outil de ligne de commande bq ou de la Méthode d'API jobs.insert de type chargement.

Limite Par défaut Remarques
Tâches de chargement par table et par jour Consultez la section Nombre maximal d'opérations par table et par jour. Les tâches de chargement ayant échoué sont comptabilisées dans cette limite. Les tâches de chargement, y compris celles ayant échoué, sont comptabilisées dans le nombre maximal d'opérations de table par jour pour la table de destination.
Tâches de chargement par jour 100 000 Tâches Votre projet peut exécuter jusqu'à 100 000 tâches de chargement par jour. Les tâches de chargement ayant échoué sont comptabilisées dans cette limite.
Nombre maximal de colonnes par table 10 000 colonnes Une table peut contenir jusqu'à 10 000 colonnes.
Taille maximale par tâche de chargement 15 To La taille totale de l'ensemble de vos fichiers d'entrée CSV, JSON, Avro, Parquet et ORC peut atteindre 15 To.
Nombre maximal d'URI sources dans la configuration de la tâche 10 000 URI Une configuration de tâche peut comporter jusqu'à 10 000 URI sources.
Nombre maximal de fichiers par tâche de chargement 10 000 000 fichiers Une tâche de chargement peut contenir jusqu'à 10 millions de fichiers au total, y compris tous les fichiers correspondant à tous les URI génériques.
Limite de temps d'exécution d'une tâche de chargement 6 heures Une tâche de chargement échoue si elle s'exécute pendant plus de six heures.
Avro: taille maximale des blocs de données de fichiers 16 Mo La taille des blocs de données du fichier Avro est limitée à 16 Mo.
CSV: taille maximale de la cellule 100 Mo La taille des cellules CSV ne doit pas dépasser 100 Mo.
CSV: taille maximale des lignes 100 Mo La taille des lignes CSV ne doit pas dépasser 100 Mo.
CSV: taille maximale du fichier compressé 4 Go La taille des fichiers CSV compressés est limitée à 4 Go.
CSV: taille maximale du fichier, non compressé 5 To La taille d'un fichier CSV non compressé est limitée à 5 To.
JSON: taille maximale des lignes 100 Mo La taille des lignes JSON peut atteindre 100 Mo.
JSON: taille maximale du fichier (compressé) 4 Go La taille d'un fichier JSON compressé est limitée à 4 Go.
JSON: taille de fichier maximale non compressée 5 To La taille maximale d'un fichier JSON non compressé est de 5 To.

Si vous dépassez régulièrement les limites de tâches de chargement en raison de mises à jour fréquentes, envisagez plutôt de diffuser des données par flux dans BigQuery.

Tâches de requête

Les quotas suivants s'appliquent aux tâches de requête créées automatiquement via l'exécution de requêtes interactives, de requêtes planifiées et de tâches soumises à l'aide de jobs.query et de la méthode d'API jobs.insert de type requête :

Quota Par défaut Remarques
Utilisation des requêtes par jour Illimité Votre projet peut exécuter un nombre illimité de requêtes par jour.
Afficher le quota dans Cloud Console
Utilisation des requêtes par jour et par utilisateur Illimité Les utilisateurs peuvent exécuter un nombre illimité de requêtes par jour.
Afficher le quota dans Cloud Console
Octets de requêtes fédérées Cloud SQL interrégionales par jour 1 To Si l'emplacement de traitement des requêtes BigQuery et l'emplacement de l'instance Cloud SQL sont différents, votre requête est une requête interrégionale. Votre projet peut exécuter jusqu'à 1 To de requêtes interrégionales par jour. Consultez la page Requêtes fédérées Cloud SQL.
Afficher le quota dans Cloud Console

Les limites ci-dessous s'appliquent aux tâches de requête créées automatiquement via l'exécution de requêtes interactives, de requêtes planifiées et de tâches soumises à l'aide de jobs.query et de la méthode d'API jobs.insert de type requête :

Limite Par défaut Remarques
Limite de débit simultané pour les requêtes interactives 100 requêtes Votre projet peut exécuter jusqu'à 100 requêtes interactives simultanées. Les requêtes dont les résultats sont renvoyés par le cache de requêtes sont prises en compte dans cette limite jusqu'à ce que BigQuery détermine qu'il s'agit d'un succès de cache. Les requêtes de simulation ne sont pas comptabilisées dans ce quota. Vous pouvez spécifier une requête de simulation à l'aide de l'option --dry_run. Pour en savoir plus sur les stratégies permettant de respecter cette limite, consultez la page Résoudre les erreurs de quota.
Limite de débit simultané pour les requêtes interactives sur les sources de données externes Cloud Bigtable 4 requêtes Votre projet peut exécuter jusqu'à quatre requêtes simultanées sur une source de données externe Bigtable.
Taille limite des requêtes quotidiennes Illimité Par défaut, aucune limite quotidienne ne s'applique à la taille des requêtes. Toutefois, vous pouvez définir des limites sur la quantité de données que les utilisateurs peuvent interroger en créant des quotas personnalisés.
Limite de débit simultané pour les requêtes en ancien SQL contenant des fonctions définies par l'utilisateur 6 requêtes Votre projet peut exécuter jusqu'à six requêtes en ancien SQL simultanées avec des fonctions définies par l'utilisateur. Cette limite inclut les requêtes interactives et les requêtes par lot. Les requêtes interactives contenant des fonctions définies par l'utilisateur sont également comptabilisées dans la limite de débit simultané pour les requêtes interactives. Cette limite ne s'applique pas aux requêtes en SQL standard.
Limite quotidienne de mises à jour de la table de destination Consultez la section Nombre maximal d'opérations par table et par jour. Les mises à jour des tables de destination dans une tâche de requête sont comptabilisées dans la limite du nombre maximal d'opérations de table par jour pour les tables de destination. La mise à jour des tables de destination inclut les opérations d'ajout et d'écrasement que vous effectuez en exécutant des requêtes via Cloud Console ou l'outil de ligne de commande bq, ou bien en appelant la méthode d'API jobs.query et la méthode d'API jobs.insert de type requête.
Délai d'exécution de la requête/du script 6 heures Une requête ou un script peut s'exécuter pendant six heures au maximum, puis échouer. Cependant, des requêtes font parfois l'objet de nouvelles tentatives. Une requête peut être tentée trois fois au maximum, et chaque tentative peut être exécutée pendant six heures au maximum. Par conséquent, il est possible pour une requête d'avoir un temps d'exécution total de plus de six heures.
Nombre maximal de ressources référencées par requête 1 000 Ressources Une requête peut référencer jusqu'à 1 000 tables, vues, fonctions définies par l'utilisateur (UDF) et fonctions de table (bêta) uniques après expansion complète. Cette limite inclut les éléments suivants :
  • Tables, vues, fonctions définies par l'utilisateur et fonctions de table directement référencées par la requête.
  • Tables, vues, fonctions définies par l'utilisateur et fonctions de table référencées par d'autres vues/UDF/fonctions de table référencées dans la requête.
  • Tables résultant de l'expansion des tables génériques utilisées dans la requête ou des autres fonctions de table vues/UDF/tables référencées.
Longueur maximale d'une requête non résolue en ancien SQL 256 Ko Une requête non résolue en ancien SQL peut atteindre 256 Ko. Si votre requête est plus longue, vous obtenez l'erreur suivante: The query is too large. Pour respecter cette limite, envisagez de remplacer les tableaux ou les listes volumineux par des paramètres de requête.
Longueur maximale d'une requête non résolue en SQL standard 1 Mo Une requête SQL standard non résolue peut atteindre 1 Mo. Si votre requête est plus longue, l'erreur suivante s'affiche: The query is too large.. Pour respecter cette limite, envisagez de remplacer les tableaux ou les listes volumineux par des paramètres de requête.
Longueur maximale d'une requête résolue en ancien SQL et en SQL standard 12 Mo La limite de longueur d'une requête résolue prend en compte la longueur de toutes les vues et tables génériques référencées par la requête.
Nombre maximal de paramètres d'une requête en SQL standard 10 000 Paramètres Une requête SQL standard peut comporter jusqu'à 10 000 paramètres.
Taille maximale des réponses 10 Go compressés La taille varie en fonction des taux de compression des données. La taille de réponse réelle peut être nettement supérieure à 10 Go. La taille de réponse maximale est illimitée dans le cas de l'écriture de résultats de requête volumineux dans une table de destination.
Taille maximale des lignes 100 Mo La taille maximale des lignes est approximative, car la limite est basée sur la représentation interne des données de ligne. La limite maximale de taille de ligne est appliquée à certaines étapes de l'exécution de la tâche de requête.
Nombre maximal de colonnes dans une table, un résultat de requête ou une définition de vue 10 000 colonnes Une de table, un résultat de requête ou une définition de vue peut contenir jusqu'à 10 000 colonnes.
Nombre maximal d'emplacements simultanés pour la tarification à la demande 2 000 Emplacements Avec la tarification à la demande, votre projet peut comporter jusqu'à 2 000 emplacements simultanés. Les emplacements BigQuery sont partagés entre toutes les requêtes d'un même projet. BigQuery peut passer en utilisation intensive au-delà de cette limite pour accélérer vos requêtes. Pour vérifier le nombre d'emplacements que vous utilisez, consultez la page consacrée à la surveillance de BigQuery avec Cloud Monitoring.
Utilisation maximale du processeur par données analysées pour la tarification à la demande 256 secondes de processeur par Mio analysé Avec la tarification à la demande, votre requête peut utiliser jusqu'à 256 secondes de processeur par Mio de données analysées. Si votre requête nécessite une utilisation intensive du processeur pour la quantité de données en cours de traitement, la requête échoue avec une erreur billingTierLimitExceeded. Pour en savoir plus, consultez la section billingTierLimitExceeded.

Bien que les requêtes programmées utilisent des fonctionnalités du service de transfert de données BigQuery, elles ne sont pas des transferts et ne sont pas soumises aux limites de tâches de chargement.

Sécurité au niveau des lignes

Les limites suivantes s'appliquent aux règles d'accès au niveau de la ligne de BigQuery:

Limite Default Remarques
Nombre maximal de règles d'accès aux lignes par table. 100 Règles Une table peut contenir jusqu'à 100 règles d'accès aux lignes.
Nombre maximal de règles d'accès aux lignes par table. 100 Règles Une requête peut accéder jusqu'à 100 règles d'accès aux lignes.
Nombre maximal d'instructions LDD CREATE / DROP par règle pour 10 secondes Cinq instructions Votre projet peut créer jusqu'à cinq instructions CREATE ou DROP par ressource de règle d'accès aux lignes toutes les 10 secondes.
Instructions DROP ALL ROW ACCESS POLICIES par table et par période de 10 secondes Cinq instructions Votre projet peut générer jusqu'à cinq instructions DROP ALL ROW ACCESS POLICIES par table toutes les 10 secondes.
Nombre maximal d'appels rowAccessPolicies.list Consultez la section Limites pour toutes les API BigQuery.
Nombre maximal d'appels rowAccessPolicies.getIamPolicy Consultez la page sur les quotas de l'API Cloud IAM.

Insertions en flux continu

Les quotas et limites suivants s'appliquent à l'insertion de données en flux continu dans BigQuery. Pour découvrir des stratégies qui vous aideront à respecter ces limites, consultez la page Dépannage des erreurs de quota.

Insertions en flux continu sans champs insertId

Si vous ne remplissez pas le champ insertId lorsque vous insérez des lignes, la limite suivante s'applique. Pour en savoir plus, consultez la section Désactiver la déduplication optimale. Il s'agit de la méthode recommandée pour utiliser BigQuery afin d'augmenter les quotas d'ingestion par flux.

Limite Par défaut Remarques
Nombre maximal d'octets par seconde 1 Go Si vous ne remplissez pas le champ insertId pour chaque ligne insérée, votre projet peut diffuser jusqu'à 1 Go par seconde. Le dépassement de cette limite entraîne des erreurs quotaExceeded.

Insertions en flux continu avec champs insertId

Si vous remplissez le champ insertId lorsque vous insérez des lignes, les quotas suivants s'appliquent. Si vous dépassez ces quotas, des erreurs quotaExceeded sont générées.

Quota Par défaut Remarques
Nombre maximal de lignes par seconde et par projet dans les emplacements multirégionaux us et eu 500 000 Lignes

Si vous remplissez le champ insertId pour chaque ligne insérée, vous êtes limité à 500 000 lignes par seconde dans les emplacements multirégionaux us et eu par projet. Ce quota est cumulatif au sein d'un emplacement multirégional donné. En d'autres termes, la somme des lignes par seconde transmises à l'ensemble des tables pour un projet donné au sein d'un emplacement multirégional est limitée à 500 000. En outre, chaque table est limitée à 100 000 lignes par seconde.

Si vous dépassez les limites par projet ou par table, des erreurs quotaExceeded sont générées.

Nombre maximal de lignes par seconde et par projet dans tous les autres emplacements 100 000 Lignes

Si vous remplissez le champ insertId pour chaque ligne insérée, vous êtes limité à 100 000 lignes par seconde dans tous les emplacements sauf les emplacements multirégionaux us et eu par projet ou par table. Ce quota est cumulatif au sein d'un emplacement régional donné. En d'autres termes, la somme des lignes par seconde transmises à l'ensemble des tables pour un projet donné au sein d'un emplacement régional est limitée à 100 000.

Si vous dépassez cette valeur, des erreurs quotaExceeded sont générées.

Nombre maximal de lignes par seconde et par table 100 000 Lignes

Si vous remplissez le champ insertId pour chaque ligne insérée, vous êtes limité à 100 000 lignes par seconde et par table.

Si vous dépassez cette valeur, des erreurs quotaExceeded sont générées.

Nombre maximal d'octets par seconde 100 Mo

Si vous remplissez le champ insertId pour chaque ligne insérée, vous êtes limité à 100 Mo par seconde et par table.

Si vous dépassez cette valeur, des erreurs quotaExceeded sont générées.

Toutes les insertions en flux continu

Les quotas supplémentaires d'insertions en flux continu qui sont présentés ci-dessous s'appliquent que vous remplissiez le champ insertId ou non.

Limite Par défaut Remarques
Taille maximale des lignes 10 Mo Si vous dépassez cette valeur, des erreurs invalid sont générées.
Taille limite des requêtes HTTP 10 Mo

Si vous dépassez cette valeur, des erreurs invalid sont générées.

En interne, la requête est traduite de HTTP JSON en une structure de données interne. La structure de données traduite applique sa propre limite de taille. Il est difficile de prédire la taille de la structure de données interne obtenue. Toutefois, si vous conservez des requêtes HTTP de 10 Mo ou moins, le risque d'atteindre la limite interne est faible.

nombre maximal de lignes par requête 50 000 Lignes Nous recommandons un maximum de 500 lignes. La mise en lots peut augmenter les performances et le débit jusqu'à un certain point, mais au prix d'une latence des requêtes. Si le nombre de lignes par requête est trop faible, l'impact de chaque requête peut rendre l'ingestion inefficace. Si le nombre de lignes par requête est trop important, le débit peut s'affaiblir. Testez des données représentatives (tailles de schémas et de données) pour déterminer la taille de lot idéale pour vos données.
Longueur du champ insertId 128 caractères Si vous dépassez cette valeur, des erreurs invalid sont générées.

Si vous avez besoin d'un quota supérieur d'insertions en flux continu pour votre projet, vous pouvez désactiver la déduplication optimale. Pour obtenir des quotas de streaming supplémentaires, consultez la page Demander une augmentation de quota.

Fonctions de table

Les limites suivantes s'appliquent aux fonctions de table BigQuery:

Limite Par défaut Remarques
Longueur maximale d'un nom de fonction de table 256 caractères Le nom d'une fonction de table peut comporter jusqu'à 256 caractères.
Longueur maximale d'un nom d'argument 128 caractères Le nom d'un argument de fonction de table peut comporter jusqu'à 128 caractères.
Nombre maximal d'arguments 256 Arguments Une fonction de table peut contenir jusqu'à 256 arguments.
Profondeur maximale d'une chaîne de référence de fonction de table 16 Références Une chaîne de référence de fonction de table peut comporter jusqu'à 16 références.
Profondeur maximale d'un argument ou d'une sortie de type STRUCT 15 Niveaux Un argument STRUCT pour une fonction de table peut comporter jusqu'à 15 niveaux de profondeur. De même, un enregistrement STRUCT dans le résultat d'une fonction de table peut contenir jusqu'à 15 niveaux de profondeur.
Nombre maximal de champs dans un argument ou une table de retour de type STRUCT par fonction de table 1 024 Champs Un argument STRUCT pour une fonction de table peut contenir jusqu'à 1 024 champs. De même, un enregistrement STRUCT dans le résultat d'une fonction de table peut contenir jusqu'à 1 024 champs.
Nombre maximal de colonnes dans le tableau des retours 1 024 colonnes Une table affichée par une fonction de table peut contenir jusqu'à 1 024 colonnes.
Longueur maximale des noms des colonnes des tables de retour 128 caractères Les noms de colonne des tables renvoyées peuvent comporter jusqu'à 128 caractères.
Nombre maximal de mises à jour par fonction de table pour 10 secondes 5 mises à jour Votre projet peut mettre à jour une fonction de table jusqu'à cinq fois toutes les 10 secondes.

Tables

Toutes les tables

Les limites suivantes s'appliquent à toutes les tables BigQuery.

Limite Par défaut Remarques
Longueur maximale d'une description de colonne 1 024 caractères Lorsque vous ajoutez une description à une colonne, le texte ne doit pas comporter plus de 1 024 caractères.
Profondeur maximale des enregistrements imbriqués 15 Niveaux Les colonnes de type RECORD peuvent contenir des types RECORD imbriqués, également appelés enregistrements enfants. La limite de profondeur des données imbriquées est de 15 niveaux. Cette limite est indépendante du fait que les enregistrements soient scalaires ou basés sur des tableaux (répétitions).

Tables externes

Les limites suivantes s'appliquent aux tables BigQuery contenant des données stockées sur Cloud Storage aux formats Avro, CSV, JSON, ORC et Parquet.

Limite Par défaut Remarques
Nombre maximal d'URI sources par table externe 10 000 URI Chaque table externe peut comporter jusqu'à 10 000 URI sources.
Nombre maximal de fichiers par table externe 10 000 000 fichiers Une table externe peut contenir jusqu'à 10 millions de fichiers, y compris tous les fichiers correspondant à tous les URI génériques.
Taille maximale des données stockées sur Cloud Storage par table externe 600 To Une table externe peut contenir jusqu'à 600 téraoctets pour tous les fichiers d'entrée. Cette limite s'applique aux tailles de fichiers tels qu'ils sont stockés sur Cloud Storage. cette taille n'est pas la même que celle utilisée dans la formule de tarifs de la requête. Pour les tables partitionnées externes, la limite est appliquée après l'élimination des partitions.

Tables partitionnées

Les limites suivantes s'appliquent aux tables partitionnées BigQuery.

Les limites de partitionnement s'appliquent au total cumulé de toutes lestâches de chargement ,tâches de copie et Tâches associées à la requête qui ajoutent ou écrasent une partition de destination, ou qui utilisent une instruction LMD DELETE, INSERT, MERGE, TRUNCATE TABLE ou UPDATE pour écrire des données dans une table.

Les instructions LMD sont comptabilisées dans les limites de partition, mais n'y sont pas limitées. En d'autres termes, le nombre total d'opérations quotidiennes qui sont comptabilisées dans la limite inclut les instructions LMD, mais celles-ci n'échouent pas en raison de cette limite. Par exemple, si vous exécutez 500 tâches de copie qui ajoutent des données à mytable$20210720 et 1 000 tâches de requête qui ajoutent des données à mytable$20210720, vous atteignez la limite quotidienne des opérations de partition.

Une seule tâche peut affecter plusieurs partitions. Par exemple, une instruction LMD peut mettre à jour des données dans plusieurs partitions (à la fois dans les tables partitionnées et les tables partitionnées par date d'ingestion). Les tâches de requête et les tâches de chargement peuvent également écrire sur plusieurs partitions, mais uniquement pour les tables partitionnées.

BigQuery utilise le nombre de partitions affectées par une tâche pour déterminer la limite utilisée par celle-ci. Les insertions en flux continu n'affectent pas cette limite.

Pour en savoir plus sur les stratégies permettant de respecter les limites des tables partitionnées, consultez la page Résoudre les erreurs de quota.

Limite Par défaut Remarques
Nombre maximal de modifications par partition et par jour 1 500 Opérations

Votre projet peut apporter jusqu'à 1 500 mises à jour à une partition particulière par jour, que la mise à jour ajoute des données à la partition ou la tronque.

Nombre maximal de partitions par table partitionnée 4 000 Partitions Chaque table partitionnée peut comporter jusqu'à 4 000 partitions. Si vous dépassez cette limite, pensez à utiliser le clustering en plus ou à la place du partitionnement.
Nombre maximal de partitions modifiées par tâche 4 000 Partitions Chaque opération de tâche (requête ou chargement) peut affecter jusqu'à 4 000 partitions. BigQuery rejette toute tâche de requête ou de chargement qui tente de modifier plus de 4 000 partitions.
Modifications de partition par table partitionnée par date d'ingestion par jour 5 000 Modifications. Votre projet peut effectuer jusqu'à 5 000 modifications de partition par jour dans une table partitionnée par date d'ingestion.
Modifications de partition par table partitionnée par colonne et par jour 30 000 Modifications.

Votre projet peut générer jusqu'à 30 000 modifications de partition par jour pour une table partitionnée en colonnes.

Nombre d'opérations de partition pour 10 secondes par table 50 Opérations Votre projet peut exécuter jusqu'à 50 opérations de partition par table partitionnée toutes les 10 secondes.
Nombre de plages possibles pour le partitionnement de plage 10 000 Plages Une table partitionnée par plages peut contenir jusqu'à 10 000 plages. Cette limite s'applique à la spécification de partition lorsque vous créez la table. Une fois la table créée, la limite s'applique également au nombre réel de partitions.

Tables standards

Les limites suivantes s'appliquent aux tables BigQuery standards :

Limite Par défaut Remarques
Opérations sur table par jour 1 500 Opérations

Votre projet peut générer jusqu'à 1 500 opérations par table et par jour, qu'il s'agisse d'ajouter des données à la table ou de la tronquer. Cette limite inclut le total combiné de tous lestâches de chargement ,Tâches de copie et Tâches de requête qui ajoutent à une table de destination ou écrasent une table de destination, ou qui utilisent une instruction LMD DELETE, INSERT, MERGE ,TRUNCATE TABLE, ouUPDATE pour écrire des données dans une table.

Les instructions LMD sont comptabilisées dans cette limite, mais n'y sont pas limitées. Autrement dit, les opérations quotidiennes totales comptabilisées dans la limite incluent des instructions LMD, mais ces instructions n'échouent pas en raison de cette limite. Par exemple, si vous exécutez 500 tâches de copie qui ajoutent des données à mytable et 1 000 tâches de requête qui ajoutent des données à mytable, vous atteignez le quota.

Pour plus d'informations sur les opérations de table par jour pour les tables partitionnées, consultez la section Opérations de table partitionnée par jour.

Taux maximal d'opérations de mise à jour des métadonnées de table par table 5 opérations pour 10 secondes Votre projet peut effectuer jusqu'à cinq opérations de mise à jour des métadonnées de table pour 10 secondes par table. Cette limite s'applique à toutes les opérations de mise à jour des métadonnées de table, effectuées par les éléments suivants :Cette limite inclut également le total cumulé de toutes les tâches de chargement, tâches de copie et tâches de requête qui s'ajoutent à une table de destination ou l'écrasent. Cette limite ne s'applique pas aux opérations LMD.

Si vous dépassez cette limite, vous recevez un message d'erreur du type Exceeded rate limits: too many table update operations for this table. Cette erreur est temporaire. vous pouvez réessayer avec un intervalle exponentiel entre les tentatives.

Pour identifier les opérations comptabilisées dans cette limite, vous pouvez inspecter vos journaux.

Nombre maximal de colonnes par table 10 000 colonnes Chaque table, résultat de requête ou définition de vue peut comporter jusqu'à 10 000 colonnes.

Instantanés de table

Les limites suivantes s'appliquent aux instantanés de table BigQuery:

Limite Par défaut Remarques
Nombre maximal de tâches simultanées pour les instantanés de table 100 Tâches Votre projet peut exécuter jusqu'à 100 tâches d'instantané de table simultanées.
Nombre maximal de tâches d'instantané de table par jour 50 000 Tâches Votre projet peut exécuter jusqu'à 50 000 tâches d'instantané de table par jour.
Nombre maximal de tâches par instantané de table et par jour 50 Tâches Votre projet peut exécuter jusqu'à 50 tâches par jour et par instantané de table.
Nombre maximal de mises à jour de métadonnées par instantané de table et par intervalle de 10 secondes 5 mises à jour Votre projet peut mettre à jour les métadonnées d'un instantané de table jusqu'à cinq fois toutes les 10 secondes.

Fonctions définies par l'utilisateur

Les limites suivantes s'appliquent aux fonctions définies par l'utilisateur (UDF) temporaires et persistantes dans les requêtes SQL BigQuery.

.
Limite Par défaut Remarques
Sortie maximale par ligne 5 Mo La quantité maximale de données que votre fonction JavaScript définie par l'utilisateur peut générer lors du traitement d'une seule ligne est d'environ 5 Mo.
Nombre maximal de requêtes en ancien SQL simultanées avec fonctions définies par l'utilisateur (JavaScript) 6 requêtes Votre projet peut comporter jusqu'à six requêtes en ancien SQL simultanées contenant des fonctions définies par l'utilisateur en JavaScript. Cette limite inclut les requêtes interactives et les requêtes par lot. Les requêtes interactives contenant des fonctions définies par l'utilisateur sont également comptabilisées dans la limite de débit simultané pour les requêtes interactives. Cette limite ne s'applique pas aux requêtes en SQL standard.
Nombre maximal de ressources de fonction JavaScript définies par l'utilisateur par requête 50 Ressources Une tâche de requête peut contenir jusqu'à 50 ressources de fonction JavaScript définie par l'utilisateur, telles que des blobs de code intégrés ou des fichiers externes.
Taille maximale du blob de code intégré 32 Ko La taille d'un blob de code intégré dans une fonction définie par l'utilisateur peut atteindre 32 Ko.
Taille maximale de chaque ressource de code externe 1 Mo La taille maximale de chaque ressource de code JavaScript est de 1 Mo.

Les limites suivantes s'appliquent aux fonctions définies par l'utilisateur persistantes:

Limite Par défaut Remarques
Longueur maximale d'un nom de fonction définie par l'utilisateur 256 caractères Un nom de fonction définie par l'utilisateur peut comporter jusqu'à 256 caractères.
Nombre maximal d'arguments 256 Arguments Une fonction définie par l'utilisateur peut comporter jusqu'à 256 arguments.
Longueur maximale d'un nom d'argument 128 caractères Un nom d'argument de fonction définie par l'utilisateur peut comporter jusqu'à 128 caractères.
Profondeur maximale d'une chaîne de référence d'une fonction définie par l'utilisateur 16 Références Une chaîne de référence d'une fonction définie par l'utilisateur peut comprendre jusqu'à 16 références.
Profondeur maximale d'une sortie ou d'un argument de type STRUCT 15 Niveaux Une sortie ou un argument UDF de type STRUCT UDF peut comporter jusqu'à 15 niveaux de profondeur.
Nombre maximal de champs dans des arguments de type STRUCT ou en sortie par UDF 1 024 Champs Une fonction définie par l'utilisateur peut contenir jusqu'à 1 024 champs dans les arguments de type STRUCT et les résultats.
Nombre maximal de bibliothèques JavaScript dans une instruction CREATE FUNCTION 50 Bibliothèques Une instruction CREATE FUNCTION peut comporter jusqu'à 50 bibliothèques JavaScript.
Longueur maximale des chemins d'accès aux bibliothèques JavaScript incluses 5 000 caractères Le chemin d'accès à une bibliothèque JavaScript incluse dans une fonction définie par l'utilisateur peut comporter jusqu'à 5 000 caractères.
Fréquence maximale de mise à jour par fonction définie par l'utilisateur par intervalle de 10 secondes 5 mises à jour Votre projet peut mettre à jour une fonction définie par l'utilisateur jusqu'à cinq fois toutes les 10 secondes.

Vues

Les limites suivantes s'appliquent aux vues BigQuery.

Limite Par défaut Remarques
Nombre maximal de niveaux de vues imbriquées 16 Niveaux BigQuery accepte jusqu'à 16 niveaux de vues imbriquées. Si le nombre de niveaux est plus élevé que 16 niveaux, une erreur INVALID_INPUT est renvoyée.
Longueur maximale d'une requête en SQL standard utilisée pour définir une vue 256 000 caractères Le texte d'une requête SQL standard qui définit une vue peut comporter jusqu'à 256 000 caractères.
Nombre maximal de vues autorisées par ensemble de données 2 500 Vues autorisées La liste de contrôle d'accès d'un ensemble de données peut contenir jusqu'à 2 500 vues autorisées.

API BigQuery

Cette section décrit les quotas et les limites qui s'appliquent à toutes les requêtes API BigQuery, ainsi que les quotas et limites qui s'appliquent à des types spécifiques de requêtes API.

Toutes les API BigQuery

Le quota suivant s'applique à toutes les requêtes API BigQuery:

Quota Par défaut Remarques
Requêtes par jour Illimité Votre projet peut effectuer un nombre illimité de requêtes API BigQuery par jour.
Afficher le quota dans Cloud Console
Les limites suivantes s'appliquent à toutes les requêtes [API BigQuery](https://cloud.google.com/bigquery/docs/reference/rest) :
Limite Par défaut Remarques
Nombre maximal de requêtes API par seconde et par utilisateur 100 requêtes Si un utilisateur effectue plus de 100 demandes par seconde, cela peut entraîner une limitation. Cette limite ne s'applique pas aux insertions en flux continu.
Nombre maximal de requêtes API simultanées par utilisateur 300 requêtes Si un utilisateur effectue plus de 300 requêtes simultanées, cela peut entraîner une limitation. Cette limite ne s'applique pas aux insertions en flux continu.
Taille maximale de l'en-tête de requête 16 Kio Une requête API BigQuery ne peut pas dépasser 16 Kio, en incluant l'URL de la requête et tous les en-têtes. Cette limite ne s'applique pas au corps de la requête, comme dans une requête POST.

Requêtes jobs.get

La limite suivante s'applique aux requêtes API jobs.get:

Limite Par défaut Remarques
Nombre maximal de requêtes jobs.get par seconde 1 000 requêtes Votre projet peut envoyer jusqu'à 1 000 requêtes jobs.get par seconde.

Requêtes jobs.query

La limite suivante s'applique aux requêtes API jobs.query:

Limite Par défaut Remarques
Taille maximale des réponses jobs.query 10 Mo Par défaut, il n'existe aucun nombre maximal pour les lignes de données renvoyées par jobs.query par page de résultats. Cependant, vous êtes tenu de respecter la limite maximale de 10 Mo pour la taille des réponses. Pour modifier le nombre de lignes à renvoyer, utilisez le paramètre maxResults.

Requêtes projects.list

La limite suivante s'applique aux requêtes API projects.list:

Limite Par défaut Remarques
Nombre maximal de requêtes projects.list par seconde Deux requêtes Votre projet peut envoyer jusqu'à deux requêtes projects.list par seconde.

Requêtes tabledata.list

Le quota suivant s'applique aux requêtes tabledata.list. D'autres API, y compris jobs.getQueryResults, et extrayant les résultats de jobs.query et jobs.insert peut également consommer ce quota.

Quota Par défaut Remarques
Octets de liste de données de table par minute 3,6 Go Votre projet peut renvoyer au maximum 3,6 Go de données de ligne de table par minute. Ce quota s'applique au projet contenant la table en cours de lecture.
Afficher le quota dans Cloud Console

Les limites ci-dessous s'appliquent aux requêtes tabledata.list.

Limite Par défaut Remarques
Nombre maximal de requêtes tabledata.list par seconde 1 000 requêtes Votre projet peut envoyer jusqu'à 1 000 requêtes tabledata.list par seconde.
Nombre maximal de lignes renvoyées par requêtes tabledata.list par seconde 150 000 Lignes Votre projet peut renvoyer jusqu'à 150 000 lignes par seconde à l'aide des requêtes tabledata.list. La limite s'applique au projet contenant la table en cours de lecture.
Nombre maximal de lignes par réponse tabledata.list 100 000 Lignes Un appel tabledata.list peut renvoyer jusqu'à 100 000 lignes de table. Pour en savoir plus, consultez la section Parcourir des résultats à l'aide de l'API.

Requêtes tables.insert

La méthode tables.insert permet de créer une table vide dans un ensemble de données. La limite suivante s'applique aux requêtes tables.insert. Cette limite inclut les instructions SQL qui créent des tables, telles que CREATE TABLE, et les requêtesqui écrivent les résultats dans des tables de destination.

Limite Par défaut Remarques
Nombre maximal de requêtes tables.insert par seconde Dix requêtes Votre projet peut effectuer jusqu'à 10 requêtes tables.insert par seconde.

API BigQuery Connection

Les quotas suivants s'appliquent aux appels de l'API BigQuery Connection:

Quota Par défaut Remarques
Requêtes de lecture par minute 1 000 requêtes Votre projet peut envoyer jusqu'à 1 000 requêtes par minute aux méthodes de l'API BigQuery Connection qui lisent des données de connexion.
Afficher le quota dans Cloud Console
Requêtes d'écriture par minute 100 requêtes par minute Votre projet peut envoyer jusqu'à 100 requêtes par minute aux méthodes de l'API BigQuery Connection qui créent ou mettent à jour des connexions.
Afficher le quota dans Cloud Console

API BigQuery Reservation

Les quotas suivants s'appliquent à l'API BigQuery Reservation:

Quota Par défaut Remarques
Requêtes par minute et par région 100 requêtes Votre projet peut effectuer jusqu'à 100 appels vers les méthodes de l'API BigQuery Reservations par minute et par région.
Afficher les quotas dans Cloud Console
Nombre d'appels SearchAllAssignments par minute et par région 100 requêtes Votre projet peut envoyer jusqu'à 100 appels vers la méthode SearchAllAssignments par minute et par région.
Afficher les quotas dans Cloud Console
Requêtes pour SearchAllAssignments par minute, par région et par utilisateur Dix requêtes Chaque utilisateur peut envoyer jusqu'à 10 appels à la méthode SearchAllAssignments par minute et par région.
Afficher les quotas dans Cloud Console
(Dans les résultats de recherche Google Cloud Console, recherchez par utilisateur).
Nombre total d'emplacements par région (à l'exception des États-Unis et de l'UE) par région 0 Emplacements Nombre maximal d'emplacements BigQuery que vous pouvez acheter dans chaque région à l'aide de Google Cloud Console.
Afficher les quotas dans Cloud Console
Nombre total d'emplacements pour la région UE 1 000 Emplacements Nombre maximal d'emplacements BigQuery que vous pouvez acheter dans l'ensemble de la région UE à l'aide de Google Cloud Console.
Afficher les quotas dans Cloud Console
Nombre total d'emplacements pour la région États-Unis 4 000 Emplacements Nombre maximal d'emplacements BigQuery que vous pouvez acheter dans l'emplacement multirégional États-Unis à l'aide de Google Cloud Console.
Afficher les quotas dans Cloud Console

API IAM

Les quotas suivants s'appliquent lorsque vous utilisez la fonctionnalité Gestion de l'authentification et des accès dans BigQuery pour récupérer et définir des stratégies IAM, et pour tester des autorisations IAM.

Quota Par défaut Remarques
Requêtes IamPolicy par minute 3 000 requêtes Votre projet peut générer jusqu'à 3 000 requêtes IAM par seconde.
Afficher le quota dans Cloud Console
Requêtes IamPolicy par minute et par utilisateur 1 500 requêtes Chaque utilisateur peut générer jusqu'à 1 500 requêtes IAM par minute et par projet.
Afficher le quota dans Cloud Console

API Storage Read

Les quotas suivants s'appliquent aux requêtes de l'API BigQuery Storage Read:

Quota Par défaut Remarques
Requêtes de lecture du plan de données par minute et par utilisateur 5 000 requêtes Chaque utilisateur peut effectuer jusqu'à 5 000 appels ReadRows par minute et par projet.
Afficher le quota dans Cloud Console
Requêtes de lecture du plan de contrôle par minute et par utilisateur 5 000 requêtes Chaque utilisateur peut effectuer jusqu'à 5 000 appels d'opérations de métadonnées d'API Read Storage par minute et par projet. Les appels de métadonnées incluent les méthodes CreateReadSession et SplitReadStream.
Afficher le quota dans Cloud Console

La limite suivante s'applique aux requêtes API BigQuery Storage Read:

Limite Par défaut Remarques
Longueur maximale de ligne/filtre 1 Mo Lorsque vous utilisez l'appel CreateReadSession de l'API Storage Read, vous êtes limité à 1 Mo au maximum pour chaque ligne ou filtre.

API Storage Write

Les quotas suivants s'appliquent aux requêtes API Storage Write (Aperçu) :

Quota Par défaut Remarques
Requêtes CreateWriteStream par minute 100 requêtes Votre projet peut envoyer jusqu'à 100 appels à CreateWriteStream par minute. Si vous obtenez une erreur, car vous avez dépassé cette limite, relancez l'opération avec un intervalle exponentiel entre les tentatives. Essayez également d'espacer les appels à CreateWriteStream. Le flux par défaut n'est pas soumis à ce quota. Si vous n'avez pas besoin de dédupliquer les données avec le mode commit, envisagez d'utiliser le flux par défaut.
Afficher le quota dans Cloud Console
Requêtes FlushRows par minute 10 000 requêtes Votre projet peut envoyer jusqu'à 10 000 appels par minute à la méthode FlushRows.
Afficher le quota dans Cloud Console
Octets en attente 100 Go Votre projet peut écrire jusqu'à 100 Go en mode en attente avant de valider les flux.
Afficher le quota dans Cloud Console

La limite suivante s'applique aux requêtes API Storage Write (Aperçu) :

Limite Par défaut Remarques
Connexions simultanées 1 000 Connexions Votre projet peut compter jusqu'à 1 000 connexions simultanées.

Limiter l'utilisation des quotas

Pour savoir comment limiter l'utilisation d'une ressource particulière en spécifiant un quota inférieur à celui défini par défaut, consultez la section Limiter l'utilisation des ressources.

Résoudre les problèmes

Pour en savoir plus sur la résolution des erreurs liées aux quotas et aux limites, consultez la page Résoudre les erreurs de quota BigQuery.