Comprendre les réservations

Cette page explique comment gérer vos charges de travail BigQuery à l'aide de réservations d'emplacements.

Réservations d'emplacements

Dans BigQuery, les emplacements sont alloués dans des pools appelés réservations. Les réservations vous permettent de gérer la capacité et d'isoler les charges de travail d'une manière adaptée à votre organisation. Par exemple, vous pouvez créer une réservation appelée prod pour les charges de travail de production, et une réservation distincte nommée test pour les tests, afin que les jobs de test ne soient pas en concurrence pour les ressources avec les jobs de production. Vous pouvez également créer des réservations pour différents services de votre organisation afin de répartir les coûts de calcul.

Les réservations permettent également aux administrateurs de configurer la capacité d'emplacements en fonction des charges de travail qui leur sont attribuées. Par exemple, si vous avez des charges de travail de production urgentes, créez une réservation avec un nombre suffisant d'emplacements de base.

Une fois alloués, les emplacements de référence restent constamment disponibles pour votre réservation, bien que l'augmentation de cette référence dépende de la capacité actuelle du système. En revanche, lorsque vous utilisez des réservations avec autoscaling, BigQuery ne réserve pas à l'avance la capacité entre votre valeur de référence et la taille maximale de la réservation. Au lieu de cela, BigQuery augmente et diminue automatiquement cette capacité en fonction de votre demande et de la disponibilité du système. Les réservations avec autoscaling sont facturées à la seconde, avec une durée minimale d'une minute par défaut. Vous pouvez activer le scaling fluide BigQuery au niveau de la réservation pour une facturation à la seconde sans durée minimale. En outre, les emplacements inactifs peuvent être partagés entre les réservations.

Attributions de réservation

Pour utiliser les emplacements alloués dans une réservation, vous devez l'attribuer à un ou plusieurs projets, dossiers ou organisations. Lorsqu'un job est exécuté dans un projet, elle utilise les emplacements de la réservation qui lui est attribuée. Les ressources peuvent hériter des attributions de leur parent dans la hiérarchie des ressourcesGoogle Cloud . Si un projet n'est pas attribué à une réservation, il hérite de l'attribution du dossier ou de l'organisation parent, le cas échéant.

Les projets utilisent la réservation la plus spécifique unique dans la hiérarchie des ressources à laquelle ils sont attribués. Une attribution de dossier remplace une attribution d'organisation, et une attribution de projet remplace une attribution de dossier.

Si un projet n'est associé à aucune réservation (héritée ou non), la tâche utilise la tarification à la demande. Pour en savoir plus sur l'organisation des ressources BigQuery, consultez Présentation de la hiérarchie des ressources.

Des ressources peuvent être attribuées à None pour représenter l'absence d'attribution. Les projets dont l'attribution est None utilisent toujours la tarification à la demande. Un cas d'utilisation courant des attributions None consiste à attribuer une organisation à une réservation, puis à utiliser None pour désactiver certains projets ou dossiers de cette réservation. Pour en savoir plus, consultez la section Définir l'attribution None pour un projet.

Lorsque vous créez une attribution, vous spécifiez son type de tâche :

  • QUERY : utilisez cette réservation pour les jobs de requête non continues, y compris les requêtes SQL, LDD, LMD et BigQuery ML (modèles intégrés).

  • AUTOMATIC_MATERIALIZED_VIEW_REFRESH : utilisez cette réservation pour les jobs d'actualisation automatique des vues matérialisées.

  • BACKGROUND_CHANGE_DATA_CAPTURE : utilisez cette réservation lorsque vous choisissez d'utiliser votre propre réservation pour exécuter vos jobs en arrière-plan d'ingestion CDC BigQuery. Les réservations BACKGROUND_CHANGE_DATA_CAPTURE ne sont pas disponibles dans l'édition Standard.

  • BACKGROUND_COLUMN_METADATA_INDEX : utilisez cette réservation lorsque vous choisissez d'utiliser votre propre réservation pour exécuter vos jobs en arrière-plan de mise en cache des métadonnées BigLake. Utilisez également cette réservation lorsque vous répliquez des bases de données sources vers BigQuery avec les opérations d'application en arrière-plan de Datastream. Les réservations BACKGROUND_COLUMN_METADATA_INDEX ne sont pas disponibles dans l'édition Standard.

  • BACKGROUND_SEARCH_INDEX_REFRESH : utilisez cette réservation lorsque vous choisissez d'utiliser votre propre réservation pour exécuter vos jobs en arrière-plan de gestion des index de recherche BigQuery. Les réservations BACKGROUND_SEARCH_INDEX_REFRESH ne sont pas disponibles dans l'édition Standard.

  • BACKGROUND : utilisez cette réservation lorsque vous choisissez d'utiliser votre propre réservation pour répliquer des bases de données sources vers BigQuery avec les opérations d'application en arrière-plan de Datastream. Cette réservation sera également utilisée pour les jobs décrits par BACKGROUND_CHANGE_DATA_CAPTURE, BACKGROUND_COLUMN_METADATA_INDEX et BACKGROUND_SEARCH_INDEX_REFRESH en tant que solution de secours si une réservation plus spécifique pour ces types de jobs n'existe pas. Les réservations BACKGROUND ne sont pas disponibles dans l'édition Standard.

  • CONTINUOUS : utilisez cette réservation pour les jobs de requête continue.

  • ML_EXTERNAL : utilisez cette réservation pour les requêtes BigQuery ML CREATE MODEL qui utilisent des services externes à BigQuery. Pour en savoir plus, consultez Attribuer des emplacements aux charges de travail BigQuery ML. Les réservations ML_EXTERNAL ne sont pas disponibles dans l'édition Standard.

  • PIPELINE : utilisez cette réservation pour les jobs de chargement et d'extraction.

    Par défaut, les jobs de chargement et d'extraction sont sans frais et utilisent un pool d'emplacements partagé. BigQuery ne garantit pas la disponibilité de capacité pour ce pool partagé ni le débit indiqué. Si vous chargez de grandes quantités de données, votre tâche risque de devoir attendre que des emplacements soient disponibles.

    Lorsque des jobs de chargement et d'extraction sont attribués à une réservation, ils perdent l'accès au pool sans frais. Vous devez surveiller l'utilisation des ressources et les jobs pour vous assurer que vos réservations disposent d'une capacité suffisante pour répondre aux durées de job requises.

Vous ne pouvez pas allouer d'emplacements individuels à des attributions spécifiques. Le programmeur BigQuery gère l'allocation d'emplacements pour les jobs à l'aide d'une réservation. Pour en savoir plus sur l'utilisation des emplacements, consultez Planification équitable dans BigQuery.

Attribuer des réservations de manière flexible

BigQuery vous permet de spécifier la réservation sur laquelle une requête doit s'exécuter au moment de l'exécution. Cela vous permet de mieux contrôler l'allocation des ressources et d'éviter de créer des projets inutiles. Vous pouvez spécifier une réservation au moment de l'exécution à l'aide de la CLI, de l'UI, de SQL ou de l'API, en remplaçant l'attribution de réservation par défaut pour votre projet, dossier ou organisation. La réservation attribuée doit se trouver dans la même région que la requête que vous exécutez. Ces attributions sont compatibles avec toutes les éditions.

Vous devez disposer d'un accès à la réservation pour pouvoir l'utiliser lorsque vous exécutez votre requête.

Si l'édition de la réservation attribuée par défaut est Enterprise Plus, elle ne peut être remplacée que par une réservation Enterprise Plus.

Pour attribuer des réservations de manière flexible, exécutez une requête interactive et spécifiez la réservation.

Combiner des réservations avec la facturation à la demande

Vous pouvez utiliser la facturation basée sur la capacité dans une région et la facturation à la demande dans une autre région. Par défaut, la facturation à la demande est appliquée à tous les projets. Si vous choisissez la facturation basée sur la capacité pour un projet, un dossier ou une organisation dans une région, vous devez l'attribuer à une réservation. Par exemple, vous achetez un engagement d'emplacement dans la zone multirégionale US et attribuez votre organisation à la réservation par défaut. Votre facturation sera basée sur la capacité dans la zone multirégionale US, mais à la demande dans les autres régions.

Vous pouvez combiner la facturation basée sur la capacité et à la demande au sein d'une même région en attribuant explicitement des projets à une réservation. Tout projet non attribué à une réservation est facturé à la demande. Vous pouvez également attribuer explicitement un projet pour utiliser la facturation à la demande en attribuant l'ID de réservation none. Cette opération est utile si vous attribuez un dossier ou une organisation à une réservation, mais souhaitez que certains projets de ce dossier ou de cette organisation utilisent la facturation à la demande. Pour en savoir plus, consultez Définir l'attribution "none" pour un projet.

Les projets facturés à la demande utilisent une capacité distincte de la capacité engagée. Ces projets n'affectent pas la disponibilité de la capacité allouée par l'engagement. Si vous interrogez des données dans la mémoire tampon de flux, les jobs à la demande ne sont pas facturés pour les octets traités à partir de la mémoire tampon de flux, mais les jobs exécutés dans une réservation utilisent des emplacements pour traiter ces octets.

Spécifier un projet d'administration

Lorsque vous créez des engagements et des réservations, ils sont associés à un projet Google Cloud . Ce projet gère les ressources BigQuery Reservations et constitue la principale source de facturation pour ces ressources. Il ne doit pas nécessairement être identique à celui qui contient vos jobs ou ensembles de données BigQuery.

Il est recommandé de créer un projet dédié aux ressources de réservation. Ce projet est appelé projet d'administration, car il centralise la facturation et la gestion de vos engagements. Attribuez un nom descriptif à ce projet, tel que bq-COMPANY_NAME-admin. Créez ensuite un ou plusieurs projets distincts pour stocker vos tâches BigQuery.

Seuls les projets appartenant à la même ressource Organisation que le projet d'administration peuvent être attribués à une réservation. Si le projet d'administration ne fait pas partie d'une organisation, seul ce projet peut utiliser les emplacements.

Les emplacements sur engagement sont facturés au projet d'administration. Les projets qui utilisent les emplacements sont facturés pour le stockage, mais pas pour les emplacements eux-mêmes. Vous pouvez acheter plusieurs types de forfaits (par exemple, annuel et sur trois ans) et placer les emplacements dans le même projet d'administration.

Il est recommandé de limiter le nombre de projets d'administration. Cela aide à simplifier la gestion de la facturation et l'allocation des emplacements. Un projet d'administration pour l'ensemble des réservations de votre organisation est recommandé lorsque cela est possible. Les organisations complexes peuvent avoir besoin de projets d'administration supplémentaires pour répondre aux exigences de gestion ou de facturation.

Utiliser plusieurs projets d'administration

Dans certains cas, vous pouvez créer plusieurs projets d'administration :

  • Pour séparer les coûts de plusieurs réservations et engagements en différentes unités organisationnelles.
  • Pour mapper un ou plusieurs engagements d'emplacements sur différents ensembles de réservations.

La capacité d'emplacements inactifs n'est pas partagée entre les réservations dans différents projets d'administration.

Sur la page Gestion des charges de travail de la console BigQuery Google Cloud , vous ne pouvez afficher les réservations et les engagements que pour le projet d'administration sélectionné.

Plafonds de projet et règles de planification

Pour demander de l'aide ou envoyer des commentaires concernant cette fonctionnalité, contactez bigquery-wlm-feedback@google.com.

Les limites de projet (également appelées "règles de planification") vous permettent de personnaliser le comportement de planification équitable par défaut en définissant des limites d'utilisation et de simultanéité pour les projets utilisant une réservation. Ces limites empêchent les projets de consommer un nombre excessif d'emplacements, même s'ils sont éligibles à une capacité supérieure dans le cadre de la planification équitable.

Vous pouvez définir des limites de projet comme limites par défaut au niveau de la réservation. Elles s'appliquent à tout projet utilisant cette réservation, sauf si elles sont remplacées. Vous pouvez également configurer des limites de projet en tant que remplacements spécifiques au projet pour des projets individuels.

Les types de plafonds de projet suivants sont acceptés :

  • Nombre maximal d'emplacements : limite la consommation d'emplacements des requêtes exécutées pour le projet cessionnaire dans la réservation. La valeur minimale autorisée est de 100. Il ne s'agit pas d'une limite stricte, mais d'un plafond approximatif.
  • Simultanéité maximale : limite le nombre de requêtes simultanées autorisées pour le projet cessionnaire dans la réservation.

    La limite de simultanéité n'est appliquée qu'au moment de l'admission de la requête et n'entraîne pas l'annulation des requêtes en cours d'exécution. Si vous réduisez la limite de simultanéité en dessous du nombre actuel de requêtes en cours d'exécution, les nouvelles requêtes sont mises en file d'attente jusqu'à ce qu'un nombre suffisant de requêtes en cours d'exécution soient terminées.

La modification de ces paramètres est soumise aux limites suivantes :

  • L'application des modifications peut prendre jusqu'à une minute.
  • La modification d'un remplacement du nombre maximal d'emplacements par projet nécessite le démarrage d'une nouvelle requête avant de prendre effet.

Pour en savoir plus sur la configuration de ces règles, consultez Gérer les attributions de charges de travail et Gérer les réservations de charges de travail.

Dimensionner les réservations d'emplacements

BigQuery est conçu pour évoluer linéairement avec des ressources accrues. En fonction de la charge de travail, la capacité incrémentielle peut vous apporter des performances supplémentaires. Cependant, l'ajout de capacité augmente également vos coûts. Par conséquent, le choix du nombre optimal d'emplacements à acheter dépend de vos exigences en termes de performances, de débit et d'utilisation.

Lorsque vous ajoutez des emplacements de référence ou augmentez les limites d'autoscaling, le programmeur BigQuery attribue davantage d'emplacements aux requêtes individuelles afin de maximiser le parallélisme. Bien que cela réduise l'environnement d'exécution des requêtes, la surcharge des nœuds de calcul simultanés peut entraîner une augmentation du temps d'emplacement total (total_slot_ms) consommé par une requête.

Vous pouvez tester les emplacements de référence et d'autoscaling pour déterminer la meilleure configuration d'emplacements. Par exemple, vous pouvez tester votre charge de travail avec 500 emplacements de référence, puis 1 000, puis 1 500 et 2 000, et observer l'impact sur les performances.

Si la région dans laquelle les performances sont testées dispose d'emplacements inactifs, une réservation peut atteindre les performances attendues avec moins d'emplacements que prévu. Cela se produit, car la réservation a utilisé les emplacements inactifs pour répondre aux exigences d'emplacement de la charge de travail. Si la disponibilité des emplacements inactifs diminue en raison de modifications de la charge de travail dans d'autres réservations, les performances de votre charge de travail peuvent se dégrader. Par conséquent, pour les charges de travail limitées dans le temps au niveau de la production, assurez-vous que la réservation est autonome en termes de capacité d'emplacements. Cela empêche les modifications apportées aux emplacements inactifs d'affecter directement les performances des jobs.

Après avoir alloué des emplacements et exécuté vos charges de travail pendant au moins sept jours, vous pouvez utiliser l'estimateur d'emplacements pour analyser les performances et modéliser l'effet de l'ajout ou de la réduction d'emplacements.

Cela vous permet également d'examiner les emplacements qu'utilisent actuellement vos projets, ainsi que le prix mensuel que vous souhaitez payer. Les charges de travail à la demande ont actuellement une limite approximative de 2 000 emplacements. Cependant, nous vous conseillons de vérifier le nombre d'emplacements réellement utilisés par vos projets à l'aide de vues INFORMATION_SCHEMA.JOBS*, de Cloud Logging, de l'API Jobs ou des journaux d'audit BigQuery. Pour en savoir plus, consultez Surveiller les réservations.

Chronologie d'utilisation des emplacements.

Gérer les charges de travail à l'aide de réservations

Pour répartir la capacité entre les charges de travail, les équipes ou les services, vous pouvez créer des réservations supplémentaires et attribuer des projets à ces réservations à l'aide de BigQuery Reservations. Chaque réservation correspond à un pool isolé de ressources, qui présente l'avantage de tirer parti de la capacité inutilisée dans une région donnée sur l'ensemble de votre organisation.

Par exemple, imaginons que vous ayez une capacité totale engagée de 1 000 emplacements et trois types de charges de travail : data science, ELT et informatique décisionnelle.

  • Vous pouvez créer une réservation ds avec 500 emplacements et attribuer tous les projets Google Cloud pertinents à la réservation ds.
  • Vous pouvez créer une réservation elt avec 300 emplacements et attribuer les projets que vous utilisez pour les charges de travail ELT à la réservation elt.
  • Vous pouvez créer une réservation bi avec 200 emplacements et attribuer les projets associés à vos outils de BI à la réservation bi.

Supprimer des engagements.

Au lieu de partitionner votre capacité entre les types de charges de travail, vous pouvez choisir de créer des réservations pour des équipes ou des services spécifiques. L'autoscaling vous permet d'isoler les charges de travail sur de nombreuses réservations, ce qui offre une gestion plus flexible et plus précise des charges de travail.

Gérer des réservations dans différentes régions

Les réservations sont des ressources régionales. Les emplacements achetés et les réservations créées dans une région ne peuvent pas être utilisés dans une autre région. Les projets, dossiers et organisations peuvent être attribués à des réservations dans une région et s'exécuter à la demande dans une autre. Pour gérer les réservations dans une autre région, vous devez modifier la région sur la page Gestion des charges de travail de BigQuery :

  1. Dans la console BigQuery, cliquez sur Réservations.
  2. Cliquez sur l'outil de sélection Location (Emplacement), puis sélectionnez la région dans laquelle vous souhaitez gérer les réservations.Sélectionner une autre région.
  3. Une fois la région sélectionnée, vous pouvez acheter des emplacements, créer des réservations et attribuer un projet à une réservation.

Gérer les réservations dans des organisations complexes

Les réservations sont des ressources appliquées au niveau de l'organisation. Lorsque vous créez des réservations, vous pouvez attribuer de la capacité à n'importe quel projet de la même organisation Google Cloud. La plupart des utilisateurs de BigQuery utilisent un seul projet d'administration pour leurs réservations et leurs engagements. Ce projet d'administration est associé à un compte de facturation Cloud, qui est facturé en fonction de la capacité.

Toutefois, si votre organisation est complexe et comporte plusieurs divisions qui gèrent leurs propres factures, vous pouvez utiliser plusieurs projets d'administration. Notez que les emplacements inactifs ne peuvent être partagés qu'entre les réservations créées dans le même projet d'administration. Vous devez connaître les quotas et limites applicables aux réservations et aux projets d'administration.

Si vous utilisez plusieurs organisations Google Cloud , vous devez créer au moins un projet d'administration pour chaque organisation, puis gérer les réservations et les engagements de chaque organisation dans le projet d'administration associé. Vous ne pouvez pas partager de capacité entre plusieurs organisations.

Gérer le contrôle amélioré des réservations

Les réservations dans BigQuery offrent un meilleur contrôle sur la façon dont elles sont utilisées et fournissent des fonctionnalités de sécurité supplémentaires. Vous pouvez définir des stratégies qui spécifient quels utilisateurs ou groupes peuvent accéder à des réservations spécifiques et les utiliser. Cela permet de s'assurer que les données et les charges de travail sensibles sont isolées et protégées. En tant qu'administrateur de réservations, vous pouvez contrôler précisément quels utilisateurs ou comptes de service (principaux) sont autorisés à utiliser des réservations spécifiques. Pour ce faire, vous devez utiliser des conditions IAM appliquées au projet d'administration (le projet dans lequel les réservations sont gérées).

Par exemple, vous pouvez créer une condition IAM qui accorde l'autorisation reservations.use à un groupe d'utilisateurs spécifique pour toutes les réservations dont le nom commence par un certain préfixe. Cela vous permet de gérer l'accès à des ensembles de réservations associées.

Les utilisateurs doivent disposer de l'autorisation reservations.use pour remplacer la réservation par défaut de leur job ou forcer l'exécution du job à la demande lorsqu'une attribution de réservation existe déjà pour le projet. Les rôles roles/bigquery.resourceAdmin et roles/bigquery.resourceEditor fournissent cette autorisation. Vous pouvez accorder l'accès à des utilisateurs individuels, à des groupes ou à des comptes de service. Vous pouvez également définir des stratégies basées sur des attributs de réservation tels que le nom, car les conditions IAM sont compatibles avec le contrôle des accès basé sur les attributs.

Pour accorder des conditions IAM sur les réservations, consultez Contrôler l'accès aux réservations.

Engagements d'emplacements

Un engagement d'emplacements est un achat d'emplacements pour une période donnée. Vous pouvez acheter des emplacements par incréments de 50 emplacements, dans la limite de votre quota d'emplacements régional. Les engagements de capacité sont facultatifs, mais peuvent vous permettre de réaliser des économies pour les charges de travail stables. Les engagements d'emplacements sont utilisés pour couvrir les emplacements de base de vos réservations. Toute capacité d'emplacement inutilisée est ensuite partagée en tant qu'emplacements inactifs entre d'autres réservations. Les engagements d'emplacements ne s'appliquent pas aux emplacements avec autoscaling. Pour vous assurer de bénéficier du tarif réduit pour vos emplacements engagés, vérifiez que vos engagements d'emplacements sont suffisants pour couvrir vos emplacements de référence. Vous pouvez créer autant d'engagements que vous le souhaitez. Vous êtes facturé à partir du moment où votre engagement est accepté. Pour obtenir des informations sur la tarification actuelle, consultez la section Tarifs en fonction de l'engagement de capacité.

  • Engagement annuel. Vous souscrivez un engagement de 365 jours. Passé ce délai, vous pouvez choisir de le renouveler ou de passer à un type d'engagement différent.

  • Engagement sur trois ans. Vous souscrivez un engagement de trois ans. Passé ce délai,vous pouvez choisir de le renouveler ou de passer à un type d'engagement différent.

À la fin de la période d'engagement, votre engagement sera renouvelé en fonction de l'option de renouvellement sélectionnée.

Le forfait annuel ou de trois ans vous est facturé chaque mois. Cependant, votre engagement financier s'applique à la période d'engagement entière et ne peut pas être annulé chaque mois. Votre utilisation est mise à jour quotidiennement dans le rapport de facturation, que vous pouvez consulter à tout moment.

Les engagements d'emplacements dépendent de la disponibilité de capacité. Lorsque vous tentez d'acheter des engagements d'emplacements, vous ne pouvez pas être sûr que vous les obtiendrez. Cependant, une fois votre engagement accepté, la capacité est disponible jusqu'à expiration de l'engagement.

Si vous achetez des engagements d'emplacements avant de créer une réservation, une réservation nommée default est créée automatiquement pour plus de commodité. La réservation default n'a pas de comportement spécial. Vous pouvez créer des réservations supplémentaires si nécessaire ou utiliser la réservation par défaut.

Nous vous recommandons d'attribuer une valeur de référence non nulle à vos réservations pour obtenir les performances et la capacité initiale les plus prévisibles. Bien que vous puissiez configurer une réservation avec zéro emplacement de référence et définir une capacité maximale pour utiliser les fonctionnalités d'autoscaling, l'efficacité de cette approche dépend entièrement de l'activation correcte de l'autoscaling et de l'acquisition active d'emplacements. Si l'autoscaling ne fonctionne pas efficacement pour une telle réservation sans référence, il dépend uniquement de la capacité d'emplacements inactifs disponible, ce qui n'offre aucune garantie de performances et peut entraîner des vitesses de requête imprévisibles ou dégradées.

Engagements de renouvellement

Vous sélectionnez une option de renouvellement lorsque vous souscrivez un engagement. Vous pouvez modifier l'option de renouvellement d'un engagement à tout moment jusqu'à son expiration. Les options de renouvellement suivantes sont disponibles :

  • Aucun : Une fois l'engagement terminé, il est supprimé. Les réservations ne sont pas affectées.
  • Annuel : Une fois l'engagement terminé, il est renouvelé pour un an.
  • Sur trois ans À la fin de la période, votre engagement est renouvelé pour trois ans.

Pour en savoir plus sur l'achat et le renouvellement des engagements, consultez la section Créer un engagement de capacité.

Par exemple, si vous avez souscrit un engagement annuel à 18h le 5 octobre 2019, les frais commencent à vous être facturés à cet instant. Vous pouvez supprimer ou renouveler l'engagement après 18h00 le 4 octobre 2020, sachant que 2020 est une année bissextile. Vous pouvez modifier les options de renouvellement avant le 4 octobre 2020 à 18:00 comme suit :

  • Si vous choisissez de passer à un engagement annuel, votre engagement est renouvelé pour une année supplémentaire le 4 octobre 2020 à 18h00.
  • Si vous choisissez de renouveler votre engagement sur trois ans, il est renouvelé pour une période de trois ans le 4 octobre 2020 à 18h00.

Remarque : Le processus de renouvellement peut prendre environ une heure après l'expiration de l'engagement. Par exemple, si un engagement expire le 4 octobre 2020 à 18h00, l'enregistrement de l'engagement renouvelé apparaît dans le système entre 18h00 et 19h00 le 4 octobre 2020. Aucuns frais à la demande ne sont appliqués pendant cette période de mise à jour des données, car l'heure de début effective de l'engagement créé est 18h00.

Expiration des engagements

Vous ne pouvez pas supprimer un engagement une fois que vous l'avez créé. Pour supprimer un engagement annuel ou de trois ans, définissez son option de renouvellement sur NONE. Une fois l'engagement expiré, il est automatiquement supprimé. Pour en savoir plus sur l'expiration des engagements, consultez la section Expiration des engagements.

Si vous avez souscrit un engagement par accident ou commis une erreur lors de sa configuration, contactez Cloud Customer Care pour obtenir de l'aide.

Limites de réservation

  • Les réservations d'une organisation ne peuvent pas être partagées avec d'autres organisations.
  • Vous devez utiliser des réservations distinctes et des projets d'administration distincts pour chaque organisation.
  • Chaque organisation peut avoir jusqu'à dix projets d'administration avec des réservations actives dans un seul emplacement.
  • La capacité d'inactivité ne peut pas être partagée entre des organisations ou entre différents projets d'administration au sein d'une même organisation.
  • La capacité inactive ne peut pas être partagée entre différentes régions.
  • Les engagements et les réservations sont des ressources régionales. Les engagements souscrits dans une région ou un emplacement multirégional ne peuvent pas être utilisés pour des réservations dans d'autres régions ou emplacements multirégionaux, même dans le cas d'une région spécifique qui serait colocalisée avec l'emplacement multirégional. Par exemple, vous ne pouvez pas utiliser un engagement souscrit dans l'emplacement multirégional EU pour une réservation dans la région europe-west4.
  • Les engagements et les réservations ne peuvent pas être déplacés d'une région ou d'un emplacement multirégional vers une autre région ou un autre emplacement multirégional.
  • Les engagements acquis dans un projet d'administration ne peuvent pas être transférés vers un autre projet d'administration.
  • Les engagements acquis avec une édition ne peuvent pas être utilisés avec des réservations d'une autre édition.
  • Les emplacements inactifs ne sont pas partagés entre les réservations d'éditions différentes.
  • Les emplacements avec autoscaling ne peuvent pas être partagés, car ils réduisent la capacité lorsqu'ils ne sont plus nécessaires.

Prévisibilité des réservations

Pour utiliser la prévisibilité des réservations, vous devez d'abord activer l'équité des réservations.

La prévisibilité des réservations vous permet de définir le nombre maximal absolu d'emplacements consommés sur une réservation. BigQuery propose des emplacements de référence, des emplacements inactifs et des emplacements d'autoscaling comme ressources de capacité potentielles. Lorsque vous créez une réservation avec une taille maximale, confirmez le nombre d'emplacements de référence et la configuration appropriée de l'autoscaling et des emplacements inactifs en fonction de vos charges de travail passées.

Pour activer la prévisibilité des réservations, vous devez définir la valeur du nombre maximal d'emplacements et du mode de scaling sur la réservation. Le nombre maximal d'emplacements doit être un nombre positif et supérieur au nombre d'emplacements de référence attribués à la réservation. Pour en savoir plus sur la prévisibilité des réservations, consultez Créer une réservation avec des emplacements dédiés. Vous ne pouvez pas configurer la valeur de autoscale_max_slots lorsque vous définissez la valeur maximale d'emplacements sur la réservation.

La valeur de ignore_idle_slots doit correspondre au mode de scaling. Si le mode de scaling est ALL_SLOTS ou IDLE_SLOTS_ONLY, ignore_idle_slots doit être défini sur "false". Si le mode de scaling est AUTOSCALE_ONLY, ignore_idle_slots doit être défini sur "true".

Vous pouvez configurer vos réservations pour qu'elles ne consomment que les combinaisons de ressources de capacité suivantes, jusqu'au maximum défini :

  • Emplacements de référence + emplacements inactifs : la capacité d'emplacements de la réservation est supérieure à zéro et le mode de scaling est IDLE_SLOTS_ONLY. La réservation consomme le nombre configuré d'emplacements de référence et d'emplacements inactifs disponibles, jusqu'au nombre maximal d'emplacements. La réservation peut ne pas atteindre le maximum s'il n'y a pas suffisamment d'emplacements inactifs disponibles.

  • Emplacements de référence + emplacements inactifs + emplacements avec autoscaling : la capacité d'emplacements de la réservation est supérieure à zéro et le mode de scaling est ALL_SLOTS. La réservation consomme d'abord le nombre configuré d'emplacements de référence, puis tous les emplacements inactifs disponibles, puis les emplacements d'autoscaling.

  • Emplacements de référence + emplacements d'autoscaling : la capacité d'emplacements de la réservation est supérieure à zéro et le mode de scaling est AUTOSCALE_ONLY. La réservation consomme d'abord les emplacements de référence configurés, puis les emplacements d'autoscaling.

  • Emplacements inactifs + emplacements d'autoscaling : la capacité d'emplacements de la réservation est de zéro et le mode de scaling est ALL_SLOTS. La réservation consomme d'abord tous les emplacements inactifs disponibles, puis les emplacements d'autoscaling.

  • Emplacements inactifs : la capacité des emplacements de réservation est de zéro et le mode de scaling est IDLE_SLOTS_ONLY. La réservation utilise tous les emplacements inactifs disponibles jusqu'au maximum configuré. Il est possible que la réservation n'atteigne pas le maximum s'il n'y a pas suffisamment d'emplacements inactifs disponibles.

Le schéma suivant présente les différentes options de configuration disponibles :

Options de configuration de réservation prévisibles.

Dans le diagramme, les cinq options de configuration montrent comment BigQuery consomme des emplacements jusqu'au maximum que vous avez configuré. Les trois premières options contiennent des emplacements de base, tandis que les autres n'en ont pas.

Limites

La prévisibilité des réservations est soumise aux limites suivantes :

  • La prévisibilité des réservations n'est disponible qu'avec les éditions Enterprise et Enterprise Plus, sauf si vous choisissez l'option AUTOSCALE_ONLY.

  • La prévisibilité des réservations est optimisée au mieux. L'utilisation globale peut toujours dépasser le maximum configuré.

Étapes suivantes

Groupes de réservations

Pour utiliser des groupes de réservations, vous devez d'abord activer l'équité des réservations.

Les groupes de réservations vous permettent de gérer les propriétés de plusieurs réservations, de la même manière que les ensembles de données organisent les tables.

Les réservations d'un même groupe de réservation partagent d'abord leurs emplacements inactifs entre elles avant de les mettre à la disposition de l'organisation :

Groupes de réservations.

Partage des emplacements inactifs avec des groupes de réservations

Les emplacements inactifs sont répartis de manière égale entre les réservations non groupées et les groupes de réservations, puis de manière égale au sein des groupes de réservations.

Dans l'exemple suivant, il y a trois réservations et 1 200 emplacements inactifs. Sans groupe de réservations, chaque réservation dispose d'une part équitable de 400 emplacements inactifs. Lorsque les réservations 1 et 2 sont regroupées, la distribution des emplacements inactifs change. Les emplacements inactifs sont d'abord répartis équitablement entre le groupe de réservations et la réservation 3 (600 emplacements inactifs pour chacun). Les 600 emplacements inactifs du groupe de réservations sont ensuite répartis équitablement entre les réservations 1 et 2.

Partage des emplacements inactifs des groupes de réservations.

Limites

Les groupes de réservations sont soumis aux limites suivantes :

  • Les réservations partageant un groupe de réservations doivent appartenir au même projet et à la même région.

  • L'équité basée sur les réservations doit être activée sur le projet.

  • Les réservations d'un groupe doivent avoir la même édition.

  • Vous ne pouvez pas combiner des réservations avec et sans configurations de reprise après sinistre gérée dans le même groupe. La reprise après sinistre doit être configurée pour toutes les réservations du groupe, ou désactivée pour toutes.

  • Si la reprise après sinistre est activée pour les réservations d'un groupe, toutes les réservations doivent utiliser la même paire de régions pour leurs emplacements principal et secondaire.

Pour en savoir plus sur l'utilisation des groupes de réservation, consultez Prioriser les emplacements inactifs avec des groupes de réservation.

Résoudre les problèmes liés aux réservations

Utilisez les informations suivantes pour résoudre les problèmes courants liés aux réservations, tels que les erreurs lors de l'ajout d'emplacements, les raisons pour lesquelles une réservation n'est pas utilisée pour un job BigQuery ou les réservations non reconnues.

Impossible d'ajouter d'autres emplacements à la taille de la réservation

Si vous rencontrez des erreurs telles que Failed to allocate slots for reservation in the current system state ou Failed to update reservation: Failed to allocate slots for reservation lorsque vous essayez d'ajouter des emplacements à votre réservation, il s'agit généralement d'un problème temporaire. Pour résoudre le problème, procédez comme suit :

  • Réessayez avec un nombre d'emplacements inférieur.
  • Si la tentative avec un nombre d'emplacements inférieur échoue, attendez 15 minutes et réessayez.

Si, après plusieurs tentatives et un délai d'attente de 30 minutes, vous recevez toujours la même erreur, contactez Cloud Customer Care.

Le quota est insuffisant pour traiter cette requête

Si le message d'erreur indique There is insufficient quota to complete this request, la requête dépasse la limite de quota définie pour le projet.

Pour résoudre cette erreur, effectuez l'une des opérations suivantes :

  • Ajoutez un nombre d'emplacements inférieur à la réservation afin que la requête ne dépasse pas la limite de quota.
  • Demandez une augmentation de quota dans la région correspondante. Pour en savoir plus, consultez Demander une augmentation de quota.

Réservation non utilisée par BigQuery pour exécuter un job

Dans plusieurs scénarios, un job peut s'exécuter en utilisant la tarification à la demande ou un pool d'emplacements partagés sans frais au lieu d'utiliser la réservation que vous avez créée.

La requête et la réservation se trouvent dans des régions différentes

Les réservations sont des ressources régionales. Une requête s'exécute au même emplacement que les tables référencées dans la requête.

Si l'emplacement d'une table ne correspond pas à l'emplacement de la réservation, la requête n'utilise pas la réservation et s'exécute à l'aide de la tarification à la demande (ou du pool d'emplacements partagés sans frais pour les jobs de chargement et d'exportation par lot éligibles).

Interroger des tables BigQuery Omni

Lorsque vous interrogez une table BigQuery Omni, veillez à créer la réservation dans la même région que la table, et non dans une région colocalisée. Si vous créez la réservation dans la région BigQuery colocalisée, la requête s'exécute à l'aide de la tarification à la demande.

La réservation a été créée, mais le projet ne lui a pas été attribué

Pour utiliser les emplacements d'une réservation, vous devez créer une attribution qui attribue le projet, le dossier ou l'organisation à la réservation spécifique. Assurez-vous que le projet dispose d'une attribution correspondante pour la réservation.

Incompatibilité de type de mission

Veillez à sélectionner le bon type de mission lors de la création d'une attribution. Sinon, les missions n'utiliseront pas la réservation.

Par exemple, si vous sélectionnez PIPELINE comme type de job, tous les jobs de requête s'exécutent avec une tarification à la demande. Remplacez le type d'attribution par QUERY pour que les jobs de requête s'exécutent à l'aide de la réservation.

Requêtes à plusieurs instructions

Si vous exécutez des requêtes à plusieurs instructions, l'objet de job parent n'est pas associé à une réservation, même si les jobs enfants s'exécutent dans le cadre d'une réservation.

Pour vérifier si le job a réellement utilisé une réservation, vérifiez les métadonnées du job enfant.

Récupérer les résultats mis en cache

Lorsqu'un job de requête récupère des résultats mis en cache, le champ de réservation est vide, car BigQuery n'effectue aucun calcul et récupère les résultats directement à partir de la table temporaire.

Opérations de modification de ligne de capture des données modifiées

Si vous disposez de tables de capture de données modifiées (CDC), BigQuery applique les modifications de ligne en attente dans l'intervalle max_staleness en tant que jobs d'arrière-plan qui utilisent le type d'attribution BACKGROUND. S'il n'y a pas d'attribution BACKGROUND, ces jobs utilisent la tarification à la demande. Envisagez de créer une attribution BACKGROUND pour le projet afin d'éviter des coûts à la demande inattendus. Vous pouvez identifier ces jobs grâce à la sous-chaîne queueworker_cdc_background_merge_coalesce dans l'identifiant du job.

Types de modèles BigQuery ML qui utilisent des services externes

Si aucune attribution de réservation avec un type de mission ML_EXTERNAL n'est trouvée dans le projet, les jobs de création de modèles externes s'exécutent à l'aide de la tarification à la demande. L'attribution du type de job QUERY s'applique aux modèles BigQuery ML standards et aux modèles de factorisation matricielle (qui nécessitent une réservation d'édition Enterprise ou Enterprise Plus), tandis que les modèles externes nécessitent une attribution ML_EXTERNAL. Pour en savoir plus, consultez Attribuer des emplacements aux charges de travail BigQuery.

Réservations non reconnues identifiées dans le projet

BigQuery possède des réservations qui représentent un pool d'emplacements partagés sans frais pour certaines opérations dans BigQuery.

default-pipeline

Par défaut, le chargement ou l'exportation de données par lots dans BigQuery utilise un pool d'emplacements partagés sans frais. Lorsque vous inspectez ces jobs de chargement ou d'extraction, le champ de réservation affiche default-pipeline.

L'utilisation du pool d'emplacements partagés n'entraîne aucuns frais. Si vous souhaitez des performances constantes et prévisibles, envisagez d'acheter une réservation PIPELINE.