Acheter et gérer des engagements d'emplacements
L'API BigQuery Reservation vous permet d'acheter des emplacements dédiés (nommés engagements), de créer des pools d'emplacements (nommés réservations), puis d'attribuer des projets, des dossiers et des organisations à ces réservations.
Un engagement de capacité est un achat de capacité de calcul BigQuery pour une durée minimale. L'achat d'un engagement de capacité est facultatif lors de la création d'une réservation avec une édition, mais peut vous permettre de réaliser des économies.
Les engagements sont une ressource régionale. Les engagements acquis dans une région ou un ensemble multirégional ne peuvent pas être utilisés dans une autre région ou un autre ensemble multirégional. Les engagements ne peuvent pas être déplacés d'une région à une autre ou d'une région à une autre.
Activer l'API Reservations
L'API BigQuery Reservations est distincte de l'API BigQuery existante et doit être activée indépendamment. Pour plus d'informations, consultez la section Activer et désactiver des API.
- Le nom de l'API est "API BigQuery Reservations".
- Le point de terminaison de l'API BigQuery Reservations est
bigqueryreservation.googleapis.com
.
Acheter des emplacements
Pour réserver de la capacité pendant une durée minimum, vous pouvez souscrire un engagement de capacité. Vous bénéficiez ainsi d'une remise et réduisez les coûts. Pour en savoir plus sur les coûts spécifiques, consultez la page Tarifs de BigQuery.
Autorisations requises
Pour créer un engagement de capacité, vous avez besoin de l'autorisation Identity and Access Management (IAM) suivante :
bigquery.capacityCommitments.create
sur le projet d'administration qui gère la propriété des engagements.
Tous les rôles IAM prédéfinis ci-dessous incluent cette autorisation :
BigQuery Admin
BigQuery Resource Admin
Pour en savoir plus sur les rôles IAM dans BigQuery, consultez la page Rôles prédéfinis et autorisations.
Créer un engagement de capacité
Les engagements sont une ressource régionale. Les engagements acquis dans une région ou un ensemble multirégional ne peuvent pas être utilisés dans une autre région ou un autre ensemble multirégional. Les engagements ne peuvent pas être déplacés d'une région à une autre ou d'une région à un ensemble multirégional.
Console
Dans la console Google Cloud, accédez à la page "BigQuery".
Dans le panneau de navigation, accédez à la section Gestion de la capacité.
Cliquez sur Créer un engagement.
Sous Configurer :
- Sélectionnez le lieu.
- Dans la section Modèle de capacité, choisissez le modèle de capacité.
- Si vous sélectionnez l'option Autoscaling (Édition) :
- Dans la liste Édition, sélectionnez l'édition. Les engagements de capacité ne sont disponibles qu'avec les éditions Enterprise et Enterprise Plus. L'autoscaling n'est disponible que dans une édition. Pour en savoir plus sur les éditions, consultez la page Présentation des éditions BigQuery.
- Sélectionnez la durée d'engagement, qui spécifie votre forfait d'engagement.
Si vous souscrivez un engagement annuel, sélectionnez le forfait de renouvellement que vous souhaitez prendre en compte lorsque l'engagement expire :
- Renouveler chaque année. Lorsque l'engagement annuel expire, il est renouvelé pour un an supplémentaire en tant qu'engagement annuel.
Pour en savoir plus, consultez la section Engagements.
Saisissez le nombre d'emplacements que vous souhaitez acheter.
Cliquez sur Suivant.
Examinez l'estimation du coût de votre achat.
Sous Confirmer et envoyer, procédez comme suit :
- Saisissez CONFIRM (confirmer) pour confirmer l'achat.
- Cliquez sur Acheter pour acheter les emplacements.
Pour afficher l'engagement, cliquez sur Afficher les engagements d'emplacements. Une fois la capacité provisionnée, l'état de l'engagement de capacité demandé s'affiche en vert.
La première fois que vous achetez une capacité, une réservation default
est créée.
SQL
Pour créer un engagement de capacité, utilisez l'instruction LDD CREATE CAPACITY
.
Dans la console Google Cloud, accédez à la page BigQuery.
Dans l'éditeur de requête, saisissez l'instruction suivante :
CREATE CAPACITY `ADMIN_PROJECT_ID.region-LOCATION.COMMITMENT_ID` OPTIONS ( slot_count = NUMBER_OF_SLOTS, edition = EDITION, plan = 'PLAN_TYPE');
Remplacez les éléments suivants :
ADMIN_PROJECT_ID
: ID du projet d'administration qui gérera la propriété de cet engagement.LOCATION
: emplacement de l'engagement.COMMITMENT_ID
: ID de l'engagementIl doit être unique au projet et à l'emplacement. Il doit commencer et se terminer par une lettre minuscule ou un chiffre, et ne contenir que des lettres minuscules, des chiffres et des tirets.
NUMBER_OF_SLOTS
: nombre d'emplacements à acheter.EDITION
: édition associée à l'engagement de capacité. Vous ne pouvez créer un engagement de capacité qu'avec les éditions Enterprise ou Enterprise Plus. Pour en savoir plus sur les éditions, consultez la page Présentation des éditions BigQuery.PLAN_TYPE
: type de forfait, tel queANNUAL
ouTHREE_YEAR
.
Cliquez sur
Exécuter.
Pour en savoir plus sur l'exécution des requêtes, consultez Exécuter une requête interactive.
bq
Utilisez la commande bq mk
avec l'option --capacity_commitment
pour acheter des emplacements.
bq mk \ --project_id=ADMIN_PROJECT_ID \ --location=LOCATION \ --capacity_commitment=true \ --edition=EDITION \ --plan=PLAN_TYPE \ --renewal_plan=RENEWAL_PLAN_TYPE \ --slots=NUMBER_OF_SLOTS
Remplacez les éléments suivants :
ADMIN_PROJECT_ID
: ID du projet d'administration qui gérera la propriété de cet engagement.LOCATION
: emplacement de l'engagement.EDITION
: édition associée à l'engagement de capacité. Vous ne pouvez créer un engagement de capacité qu'avec les éditions Enterprise ou Enterprise Plus. Pour en savoir plus sur les éditions, consultez la page Présentation des éditions BigQuery.PLAN_TYPE
: type de forfait, tel queANNUAL
ouTHREE_YEAR
.RENEWAL_PLAN_TYPE
: type de forfait de renouvellement, tel queNONE
,ANNUAL
ouTHREE_YEAR
.NUMBER_OF_SLOTS
: nombre d'emplacements à acheter.
Afficher les engagements de capacité
Autorisations requises
Pour afficher les engagements, vous devez disposer de l'autorisation Identity and Access Management (IAM) suivante :
bigquery.capacityCommitments.list
sur le projet d'administration qui gère la propriété des engagements.
Tous les rôles IAM prédéfinis ci-dessous incluent cette autorisation :
BigQuery Admin
BigQuery Resource Admin
BigQuery Resource Editor
BigQuery Resource Viewer
BigQuery User
Pour en savoir plus sur les rôles IAM dans BigQuery, consultez la page Rôles prédéfinis et autorisations.
Afficher les engagements de capacité par projet
Pour afficher vos engagements de capacité par projet, procédez comme suit :
Console
Dans la console Google Cloud, accédez à la page "BigQuery".
Dans le panneau de navigation, accédez à la section Gestion de la capacité.
Cliquez sur l'onglet Slot commitments (Engagements d'emplacement). Vos engagements de capacité sont répertoriés dans la table sous Commitments (Engagements).
SQL
Pour afficher les engagements d'un projet d'administration, interrogez la vue INFORMATION_SCHEMA.CAPACITY_COMMITMENTS_BY_PROJECT
.
Dans Google Cloud Console, accédez à la page BigQuery.
Dans l'éditeur de requête, saisissez l'instruction suivante :
SELECT capacity_commitment_id FROM `region-LOCATION`.INFORMATION_SCHEMA.CAPACITY_COMMITMENTS_BY_PROJECT WHERE project_id = 'ADMIN_PROJECT_ID' AND slot_count = 100;
Remplacez les éléments suivants :
LOCATION
: emplacement des engagementsADMIN_PROJECT_ID
: ID du projet d'administration propriétaire des engagements
Cliquez sur
Exécuter.
Pour en savoir plus sur l'exécution des requêtes, consultez Exécuter une requête interactive.
bq
Utilisez la commande bq ls
avec l'option --capacity_commitment
pour répertorier les engagements pour un projet d'administration.
bq ls \ --capacity_commitment=true \ --location=LOCATION \ --project_id=ADMIN_PROJECT_ID
Remplacez les éléments suivants :
LOCATION
: emplacement des engagementsADMIN_PROJECT_ID
: ID du projet d'administration propriétaire des engagements
Modifier les engagements de capacité
Vous pouvez apporter les mises à jour suivantes à un engagement de capacité :
- Mettre à jour l'option de renouvellement de l'engagement
- Convertir un engagement en un forfait d'engagement de plus longue durée.
- Diviser un engagement en deux engagements.
- Fusionner deux engagements en un seul engagement.
Autorisations requises
Pour mettre à jour les engagements de capacité, vous avez besoin de l'autorisation Identity and Access Management (IAM) suivante :
bigquery.capacityCommitments.update
sur le projet d'administration qui gère la propriété des engagements.
Tous les rôles IAM prédéfinis ci-dessous incluent cette autorisation :
BigQuery Admin
BigQuery Resource Admin
Pour en savoir plus sur les rôles IAM dans BigQuery, consultez la page Rôles prédéfinis et autorisations.
Renouveler un engagement
Les engagements annuels possèdent un forfait de renouvellement que vous spécifiez lorsque vous créez ou souscrivez un engagement annuel. Vous pouvez modifier votre forfait de renouvellement de l'engagement annuel à tout moment avant la date de fin de l'engagement.
Console
Vous pouvez modifier votre forfait de renouvellement pour un engagement annuel comme suit :
Dans Google Cloud Console, accédez à la page "BigQuery".
Dans le panneau de navigation, accédez à la section Gestion de la capacité.
Cliquez sur l'onglet Slot commitments (Engagements d'emplacement).
Recherchez l'engagement que vous souhaitez modifier.
Cliquez sur
Actions, puis sélectionnez l'option Modifier l'option de renouvellement.Sélectionnez le nouveau mode de renouvellement.
bq
Pour modifier le choix de forfait de renouvellement pour un engagement annuel, utilisez la commande bq update
avec l'option --capacity_commitment
et l'option --renewal_plan
.
bq update \ --project_id=ADMIN_PROJECT_ID \ --location=LOCATION \ --renewal_plan=PLAN_TYPE \ --capacity_commitment=true \ COMMITMENT_ID
Remplacez les éléments suivants :
ADMIN_PROJECT_ID
: ID du projet d'administration qui gérera la propriété de cet engagement.LOCATION
: emplacement de l'engagement.PLAN_TYPE
: type de forfait, tel queANNUAL
ouTHREE_YEAR
.COMMITMENT_ID
: ID de l'engagementPour obtenir l'ID, consultez la section Afficher les engagements achetés.
Convertir un engagement en une durée plus longue
Vous pouvez à tout moment convertir votre engagement en un engagement de plus longue durée.
Dès que vous mettez à jour votre engagement, le tarif associé au nouveau type d'engagement vous est facturé et la date de fin de l'engagement est réinitialisée.
Pour convertir un engagement, exécutez la commande bq update
avec l'option --plan
.
bq update \ --project_id=ADMIN_PROJECT_ID \ --location=LOCATION \ --plan=PLAN_TYPE \ --renewal_plan=RENEWAL_PLAN \ --capacity_commitment=true \ COMMITMENT_ID
Remplacez les éléments suivants :
ADMIN_PROJECT_ID
: ID du projetLOCATION
: emplacement de l'engagement.PLAN_TYPE
: type de forfait, tel queANNUAL
ouTHREE_YEAR
.RENEWAL_PLAN
: forfait de renouvellementCela ne s'applique que si la valeur de
PLAN_TYPE
estANNUAL
.COMMITMENT_ID
: ID de l'engagementPour obtenir l'ID, consultez la section Afficher les engagements achetés.
Diviser un engagement
Vous pouvez diviser votre engagement en deux engagements. Cela peut être utile si vous souhaitez renouveler une partie d'un engagement. Par exemple, si vous avez un engagement annuel de 1 000 emplacements, vous pouvez répartir 300 emplacements dans un nouvel engagement, ce qui laisse 700 emplacements dans l'engagement d'origine. Vous pouvez ensuite renouveler 700 emplacements au tarif annuel, puis convertir 300 emplacements en engagement sur trois ans.
Lorsque vous divisez un engagement, le nouvel engagement a le même forfait et la même date de fin que l'engagement d'origine.
Console
Dans la console Google Cloud, accédez à la page "BigQuery".
Dans le panneau de navigation, accédez à la section Gestion de la capacité.
Cliquez sur l'onglet Slot commitments (Engagements d'emplacement).
Sélectionnez l'engagement que vous souhaitez scinder.
Cliquez sur Diviser.
Sur la page Engagement divisé, utilisez le curseur Configurer la division pour sélectionner le nombre d'emplacements dans chaque division, par incréments de 100 emplacements.
Cliquez sur Diviser pour diviser l'engagement. Le nouvel engagement est répertorié dans l'onglet Slot commitments (Engagements d'emplacement).
bq
Pour fractionner des engagements, utilisez la commande bq update
.
bq update \ --project_id=ADMIN_PROJECT_ID \ --location=LOCATION \ --split \ --slots=SLOTS_TO_SPLIT \ --capacity_commitment=true \ COMMITMENT_ID
Remplacez les éléments suivants :
ADMIN_PROJECT_ID
: ID du projetLOCATION
: emplacement de l'engagement.SLOTS_TO_SPLIT
: nombre d'emplacements de l'engagement d'origine à répartir dans le nouvel engagement.COMMITMENT_ID
: ID de l'engagementPour obtenir l'ID, consultez la section Afficher les engagements achetés.
Fusionner deux engagements
Vous pouvez fusionner plusieurs engagements en un seul engagement. Les engagements de fusion doivent tous être du même type (ANNUAL
ou THREE_YEAR
). La date de fin de l'engagement combiné correspond à la date de fin maximale des périodes d'engagement d'origine. Si l'un des engagements présente une date de fin antérieure, il est prolongé à la date ultérieure et un montant au prorata vous est facturé pour ces emplacements.
Console
Dans la console Google Cloud, accédez à la page "BigQuery".
Dans le panneau de navigation, accédez à la section Gestion de la capacité.
Cliquez sur l'onglet Slot commitments (Engagements d'emplacement).
Sélectionnez les engagements à fusionner.
Cliquez sur Fusionner.
Sur la page Fusionner les engagements, vérifiez les détails de la fusion et cliquez sur Fusionner. Le nouvel engagement fusionné est répertorié dans l'onglet Slot commitments (Engagements d'emplacement).
bq
Pour fusionner deux engagements en un seul, utilisez la commande bq update
:
bq update \ --project_id=ADMIN_PROJECT_ID \ --location=LOCATION \ --merge=true \ --capacity_commitment=true \ COMMITMENT1,COMMITMENT2
Remplacez les éléments suivants :
ADMIN_PROJECT_ID
: ID du projetLOCATION
: emplacement des engagementsCOMMITMENT1
: premier engagement à fusionnerCOMMITMENT2
: deuxième engagement à fusionner
Expiration des engagements
Les engagements expirent à la fin de leur durée. Vous ne pouvez pas supprimer un engagement tant qu'il est actif. Si l'option de renouvellement est définie sur NONE
, l'engagement est automatiquement supprimé. Sinon, il est renouvelé avec un engagement annuel ou de trois ans, selon l'option de renouvellement. Pour remplacer l'option de renouvellement par NONE
, suivez la procédure décrite dans la section Renouveler un engagement.
Les emplacements de base sont toujours facturés. Si un engagement de capacité expire, vous devrez peut-être ajuster manuellement la quantité d'emplacements de base dans vos réservations afin d'éviter des frais inutiles. Par exemple, supposons que vous disposez d'un engagement d'un an avec 100 emplacements et une réservation avec 100 emplacements de base. L'engagement expire et n'offre pas d'option de renouvellement. Une fois l'engagement expiré, vous payez 100 emplacements de base au tarif à l'utilisation.
Contrôler la création d'engagements de capacité
Vous pouvez utiliser des stratégies de refus IAM pour mieux contrôler qui peut créer des engagements de capacité.
Il est possible de créer des stratégies de refus pour un ensemble d'utilisateurs, ou pour l'intégralité des utilisateurs, et ces stratégies peuvent être configurées avec des exceptions et des conditions.
Par exemple, la stratégie suivante refuse à tous les utilisateurs l'autorisation de créer des engagements de capacité, à l'exception du compte principal "lucian@example.com" :
{
"deniedPrincipals": [
"principalSet://goog/public:all"
],
"deniedPermissions": [
"bigquery.googleapis.com/capacityCommitments.create"
],
"exceptionPrincipals": [
"principal://goog/subject/lucian@example.com"
]
}
Cette stratégie peut ensuite être associée à une organisation pour contrôler qui peut créer les engagements.
Notez que ces stratégies sont prioritaires sur les rôles IAM. Par conséquent, même un utilisateur doté du rôle bigquery.admin
ne pourrait pas créer d'engagement, à moins que la stratégie ne soit supprimée ou modifiée.
Pour en savoir plus, consultez la section Refuser l'accès aux ressources.
Résoudre les problèmes liés aux engagements de capacité
Cette section décrit les étapes de dépannage qui vous aideront si vous rencontrez des problèmes lors de l'utilisation de BigQuery Reservations.
Les emplacements achetés sont en attente
Les emplacements sont soumis à la capacité disponible. Lorsque vous achetez des engagements d'emplacements et que BigQuery les alloue, la colonne État affiche une coche. Si BigQuery ne peut pas allouer immédiatement les emplacements demandés, la colonne État reste en attente. Vous devrez peut-être attendre quelques heures avant que les emplacements soient disponibles. Si vous avez besoin d'accéder plus rapidement aux emplacements, essayez les solutions suivantes :
- Supprimez l'engagement en attente.
- Souscrivez un nouvel engagement pour un plus petit nombre d'emplacements. Selon la capacité, l'engagement le plus petit peut devenir immédiatement actif.
- Achetez les emplacements restants en tant qu'engagement distinct. Les emplacements peuvent apparaître comme étant en attente dans la colonne État, mais ils deviennent généralement actifs en quelques heures.
- Facultatif : Lorsque les deux engagements sont disponibles, vous pouvez les fusionner en un seul engagement, à condition que vous ayez souscrit le même forfait pour les deux.
Si un engagement d'emplacements échoue ou prend beaucoup de temps, envisagez d'utiliser temporairement la tarification à la demande. Avec cette solution, vous devrez peut-être exécuter des requêtes critiques sur un autre projet qui n'est attribué à aucune réservation, ou supprimer complètement l'attribution du projet.