Présentation de Reservations

BigQuery Reservations vous permet de basculer entre la tarification à la demande et la tarification forfaitaire. Avec la tarification forfaitaire, vous achetez une capacité dédiée au traitement de requêtes. Vous pouvez allouer cette capacité dans toute votre organisation, en réservant des pools de capacité pour différents projets ou différentes parties de votre organisation. Vous pouvez également combiner les deux modèles de facturation, en tirant parti des tarifs à la demande et forfaitaires.

Présentation

BigQuery propose deux modèles de tarification pour les analyses :

  • Tarifs à la demande : vous ne payez que pour les données analysées par vos requêtes. Le coût est basé sur le nombre d'octets traités.
  • Tarifs forfaitaires : vous vous procurez une capacité dédiée au traitement de requêtes.

Par défaut, BigQuery est facturé en fonction du modèle de tarification à la demande. BigQuery Reservations vous permet de passer à la tarification forfaitaire en souscrivant des engagements. Les engagements sont souscrits en unités d'emplacements BigQuery. Le coût de tous les octets traités est inclus dans le tarif forfaitaire.

Voici les avantages qu'offre BigQuery Reservations :

  • Prévisibilité. Les tarifs forfaitaires permettent de bénéficier de coûts identiques et prévisibles. Vous savez à l'avance ce que vous dépensez.

  • Flexibilité. Vous choisissez la capacité à acheter. Un tarif forfaitaire par seconde vous est facturé jusqu'à ce que vous supprimiez l'engagement de capacité. Vous pouvez combiner les deux modèles de facturation. Par exemple, vous pouvez exécuter certaines charges de travail avec une tarification à la demande et d'autres avec des tarifs forfaitaires.

    BigQuery propose des tarifs forfaitaires à prix réduit si vous souscrivez un engagement minimal mensuel ou annuel.

  • Gestion des charges de travail. Une fois que vous avez acheté des emplacements, vous pouvez les allouer à des charges de travail. De cette façon, une charge de travail dispose d'un pool dédié de ressources de calcul BigQuery disponibles pour utilisation. En parallèle, si une charge de travail n'utilise pas tous les emplacements qui lui sont alloués, les emplacements inutilisés sont partagés automatiquement entre vos autres charges de travail.

  • Achat centralisé. Vous pouvez acheter des emplacements et les allouer à l'ensemble de votre organisation. Vous n'avez pas besoin d'acheter des emplacements pour chaque projet utilisant BigQuery.

Engagements

Concepts de réservation.

Un engagement de capacité est un achat de capacité de calcul BigQuery pour une durée minimale. Les engagements sont mesurés en emplacements BigQuery, qui sont une unité de capacité de calcul. Un emplacement représente un processeur virtuel utilisé par BigQuery. En général, si vous achetez plus d'emplacements, vous pouvez exécuter plus de requêtes simultanées, et les requêtes complexes s'exécutent plus rapidement.

BigQuery propose plusieurs forfaits. Leurs principales différences sont le coût et la durée minimale de votre engagement. Pour en savoir plus sur la tarification actuelle, consultez la section Tarifs forfaitaires.

  • Engagement mensuel. Vous souscrivez un engagement d'une durée minimale de 30 jours. Passé ce délai, vous pouvez l'annuler à tout moment.

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

  • Emplacements Flex. Vous souscrivez un engagement de 60 secondes. Passé ce délai, vous pouvez l'annuler à tout moment. Les emplacements Flex sont un bon moyen de tester les performances de vos charges de travail avec une facturation forfaitaire, avant de souscrire un engagement à plus long terme. Ils sont également utiles pour gérer la demande cyclique ou saisonnière, ou pour les événements avec des pics de charge comme la période fiscale.

Quel que soit le forfait que vous choisissez, vos emplacements n'expirent pas à la fin de la période d'engagement. Vous conservez les emplacements, et ils vous sont facturés jusqu'à ce que vous les supprimiez. Vous pouvez également changer de type de forfait après la durée minimale.

L'attribution des emplacements dépend de la disponibilité en capacité. Lorsque vous tentez d'acheter des engagements d'emplacements, vous ne pouvez pas être sûr que vous les obtiendrez. Cependant, une fois que votre engagement est accepté, votre capacité est garantie jusqu'à ce que vous annuliez vos emplacements.

Pour en savoir plus sur ces forfaits, consultez la section Forfaits.

Réservations

Une fois que vous avez acheté des emplacements, vous pouvez les attribuer à des buckets différents, appelés réservations. Les réservations vous permettent d'attribuer les emplacements 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 séparée appelée test pour les tests. Ainsi, vos tâches de test ne se disputeront pas les ressources dont vos charges de travail de production ont besoin. Vous pouvez également créer des réservations pour différents départements dans votre organisation.

Une réservation appelée default est automatiquement créée lorsque vous achetez des emplacements. La réservation default n'a rien de spécial, elle est créée pour des raisons de commodité. Vous pouvez décider si vous avez besoin de réservations supplémentaires ou simplement utiliser la réservation par défaut.

Attributions

Pour utiliser les emplacements que vous achetez, vous devez attribuer des projets, des dossiers ou des organisations aux réservations. Chaque niveau de la hiérarchie des ressources hérite de l'attribution du niveau supérieur, à moins que vous ne la remplaciez. En d'autres termes, un projet hérite de l'attribution de son dossier parent, et un dossier hérite de l'attribution de son organisation. Pour plus d'informations sur la hiérarchie des ressources Google Cloud, consultez la page Hiérarchie des ressources.

Lorsqu'une tâche est démarrée à partir d'un projet attribué à une réservation, elle utilise les emplacements de cette réservation. Si un projet n'est pas attribué à une réservation (soit directement, soit en héritant de son dossier parent ou de son organisation), les tâches de ce projet utilisent la tarification à la demande.

Les attributions None représentent l'absence d'attribution. Les projets dont l'attribution est None utilisent la tarification à la demande. Le cas d'utilisation courant des attributions None consiste à attribuer une organisation à la réservation et à désactiver certains projets ou dossiers de cette réservation en les attribuant à None. 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 tâches de requête, y compris les requêtes SQL, LDD, LMD et BigQuery ML.

  • PIPELINE : utilisez cette réservation pour les tâches de chargement et d'exportation, et autres tâches de pipeline.

    Par défaut, les tâches de chargement et d'exportation sont gratuites et utilisent un pool d'emplacements partagé. BigQuery ne garantit pas la capacité disponible de ce pool partagé. Si vous chargez de grandes quantités de données, votre tâche peut attendre que des emplacements soient disponibles. Dans ce cas, vous pouvez acheter des emplacements dédiés et leur attribuer des tâches de pipeline. Nous vous recommandons de créer une réservation dédiée supplémentaire en désactivant le partage d'emplacements inactifs.

    Lorsque des tâches de chargement sont attribuées à une réservation, elles perdent l'accès au pool gratuit. Surveillez les performances pour vous assurer que les tâches disposent d'une capacité suffisante. Sinon, les performances risquent d'être inférieures à celles du pool gratuit.

  • ML_EXTERNAL : utilisez cette réservation pour les requêtes BigQuery ML, qui utilisent des services externes à BigQuery.

    Certaines requêtes BigQuery ML utilisent des services externes à BigQuery. Pour utiliser des emplacements réservés avec ces services externes, créez une attribution avec le type de tâche ML_EXTERNAL. Pour en savoir plus, consultez la section Attribuer des emplacements aux charges de travail BigQuery ML.

Planification des emplacements

Les emplacements sont répartis équitablement entre les projets, puis entre les tâches des projets.

Le programmeur BigQuery applique un partage équitable des emplacements entre les projets avec des requêtes en cours d'exécution au sein d'une réservation, puis entre les tâches d'un projet donné. Le programmeur assure une équité à terme. Certaines tâches peuvent obtenir une part disproportionnée des emplacements pendant un court laps de temps, mais il finira par corriger cette inégalité. L'objectif du programmeur est de trouver un juste milieu entre un comportement trop agressif avec l'éviction de tâches en cours d'exécution (ce qui entraînerait un gaspillage du temps d'utilisation des emplacements) et une attitude trop indulgente (où les tâches de longue durée obtiendraient une part disproportionnée du temps d'utilisation des emplacements).

Si une tâche importante a toujours besoin d'un nombre d'emplacements supérieur à celui qu'elle reçoit du programmeur, envisagez de créer une réservation supplémentaire avec un nombre garanti d'emplacements et d'attribuer la tâche à cette réservation. Pour en savoir plus, consultez la section Gérer les charges de travail à l'aide de Reservations.

Emplacements inactifs

Certains emplacements peuvent être inactifs à n'importe quel moment. Ceux-ci peuvent inclure :

  • Les emplacements qui ne sont attribués à aucune réservation
  • Les emplacements qui sont attribués à une réservation, mais qui ne sont pas utilisés actuellement

Par défaut, les requêtes exécutées dans une réservation utilisent automatiquement les emplacements inactifs des autres réservations. Cela signifie qu'une tâche peut toujours s'exécuter tant qu'elle dispose d'une capacité suffisante. La capacité d'inactivité est immédiatement préemptive dans la réservation attribuée initiale si nécessaire. Cela se produit automatiquement et en temps réel.

Pour désactiver cette fonctionnalité et forcer une réservation à n'utiliser que les emplacements qui lui sont provisionnés, définissez ignore_idle_slots sur true. Les réservations dont ignore_idle_slots est défini sur true ne reçoivent pas d'emplacements inactifs.

Tant que ignore_idle_slots est défini sur "false", une réservation peut avoir un nombre d'emplacements de 0 et avoir toujours accès aux emplacements inutilisés. Si vous n'utilisez que la réservation default, nous vous recommandons de la configurer ainsi.

Les attributions de type ML_EXTERNAL font exception au comportement décrit ci-dessus. Les emplacements utilisés par ces tâches ne sont pas préemptifs. En d'autres termes, ils ne sont pas disponibles pour les autres tâches exécutées dans la réservation. En outre, ces tâches n'utilisent pas les emplacements inactifs d'autres réservations.

Étape suivante