Souscrire et gérer d'anciens 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.

Activer l'API.

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 :

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

  1. Dans la console Google Cloud, accédez à la page "BigQuery".

    Accéder à BigQuery

  2. Dans le panneau de navigation, accédez à la section Gestion de la capacité.

  3. Cliquez sur Créer un engagement.

  4. Sous Configurer :

    1. Sélectionnez le lieu.
    2. Dans la section Modèle de capacité, choisissez le modèle de capacité.
    3. Sélectionnez la durée d'engagement, qui spécifie votre forfait d'engagement.
    4. Si vous souscrivez un engagement annuel, sélectionnez le forfait de renouvellement que vous souhaitez prendre en compte lorsque l'engagement expire :

      1. Ne pas renouveler et passer à l'option d'engagement mensuel (Par défaut). Lorsque l'engagement annuel expire, il est converti en engagement mensuel.
      2. Renouveler chaque année. Lorsque l'engagement annuel expire, il est renouvelé pour un an supplémentaire en tant qu'engagement annuel.
      3. Ne pas renouveler et passer à l'option d'emplacements Flex. Lorsque l'engagement annuel expire, il est converti en engagement d'emplacements Flex.

      Pour en savoir plus, consultez la section Engagements.

    5. Saisissez le nombre d'emplacements que vous souhaitez acheter.

    6. Cliquez sur Suivant.

  5. Examinez l'estimation du coût de votre achat.

  6. Sous Confirmer et envoyer, procédez comme suit :

    1. Saisissez CONFIRM (confirmer) pour confirmer l'achat.
    2. Cliquez sur Acheter pour acheter les emplacements.
  7. 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.

  1. Dans la console Google Cloud, accédez à la page BigQuery.

    Accéder à BigQuery

  2. 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,
      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'engagement

      Il 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.
    • PLAN_TYPE : type de forfait, tel que FLEX, MONTHLY ou ANNUAL

  3. 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 \
    --plan=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.
  • PLAN_TYPE : type de forfait, tel que FLEX, MONTHLY ou ANNUAL.
  • 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 :

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

  1. Dans la console Google Cloud, accédez à la page "BigQuery".

    Accéder à BigQuery

  2. Dans le panneau de navigation, accédez à la section Gestion de la capacité.

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

  1. Dans la console Google Cloud, accédez à la page BigQuery.

    Accéder à BigQuery

  2. 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 :

  3. 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 :

Modifier les engagements de capacité

Vous pouvez apporter les mises à jour suivantes à un engagement de capacité :

  • Renouveler un engagement existant.
  • 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 :

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 :

  1. Dans Google Cloud Console, accédez à la page "BigQuery".

    Accéder à BigQuery

  2. Dans le panneau de navigation, accédez à la section Gestion de la capacité.

  3. Cliquez sur l'onglet Slot commitments (Engagements d'emplacement).

  4. Recherchez l'engagement que vous souhaitez modifier.

  5. Cliquez sur Actions, puis sélectionnez l'option Modifier l'option de renouvellement.

  6. 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 :

Convertir un engagement en une durée plus longue

Vous pouvez à tout moment convertir votre engagement en un engagement de plus longue durée :

  • Vous pouvez convertir votre engagement d'emplacements Flex en engagement mensuel ou annuel.
  • Vous pouvez convertir votre engagement mensuel en engagement annuel.

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 projet
  • LOCATION : emplacement de l'engagement.
  • PLAN_TYPE : type de forfait, tel que FLEX, MONTHLY ou ANNUAL.
  • RENEWAL_PLAN : forfait de renouvellement

    Cela ne s'applique que si la valeur de PLAN_TYPE est ANNUAL. Si PLAN_TYPE est défini sur MONTHLY, omettez cette option.

  • COMMITMENT_ID : ID de l'engagement

    Pour 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 emplacements Flex après la date de fin.

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

  1. Dans la console Google Cloud, accédez à la page "BigQuery".

    Accéder à BigQuery

  2. Dans le panneau de navigation, accédez à la section Gestion de la capacité.

  3. Cliquez sur l'onglet Slot commitments (Engagements d'emplacement).

  4. Sélectionnez l'engagement que vous souhaitez scinder.

  5. Cliquez sur Diviser.

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

  7. 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 projet
  • LOCATION : 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'engagement

    Pour 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 (FLEX, MONTHLY, 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

  1. Dans la console Google Cloud, accédez à la page "BigQuery".

    Accéder à BigQuery

  2. Dans le panneau de navigation, accédez à la section Gestion de la capacité.

  3. Cliquez sur l'onglet Slot commitments (Engagements d'emplacement).

  4. Sélectionnez les engagements à fusionner.

  5. Cliquez sur Fusionner.

  6. 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 projet
  • LOCATION : emplacement des engagements
  • COMMITMENT1 : premier engagement à fusionner
  • COMMITMENT2 : deuxième engagement à fusionner

Supprimer un engagement

Vous pouvez supprimer un engagement de capacité si sa date de fin est antérieure au moment actuel. La date de fin de l'engagement est affichée dans la console Google Cloud. Avant de supprimer un engagement, assurez-vous qu'il y a suffisamment d'emplacements non alloués. Si ce n'est pas le cas, vous devez réduire le nombre d'emplacements dans une réservation ou supprimer entièrement les réservations.

Autorisations requises

Pour supprimer les engagements de capacité, vous avez besoin de l'autorisation IAM (Identity and Access Management) suivante :

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.

Supprimer un engagement de capacité

Console

Pour supprimer un engagement de capacité, procédez comme suit :

  1. Dans Google Cloud Console, accédez à la page "BigQuery".

    Accéder à BigQuery

  2. Dans le panneau de navigation, accédez à la section Gestion de la capacité.

  3. Cliquez sur l'onglet Slot commitments (Engagements d'emplacement).

  4. Dans la liste déroulante Emplacement, sélectionnez l'emplacement approprié.

  5. Recherchez l'engagement que vous souhaitez supprimer.

  6. Développez l'option Actions.

  7. Cliquez sur Supprimer.

  8. Saisissez REMOVE (SUPPRIMER), puis cliquez sur Continuer.

SQL

Pour supprimer un engagement de capacité, utilisez l'instruction LDD DROP CAPACITY.

  1. Dans la console Google Cloud, accédez à la page BigQuery.

    Accéder à BigQuery

  2. Dans l'éditeur de requête, saisissez l'instruction suivante :

    DROP CAPACITY
      `ADMIN_PROJECT_ID.region-LOCATION.COMMITMENT_ID`;

    Remplacez les éléments suivants :

  3. Cliquez sur Exécuter.

Pour en savoir plus sur l'exécution des requêtes, consultez Exécuter une requête interactive.

bq

Pour supprimer un engagement de capacité, exécutez la commande bq rm avec l'option --capacity_commitment :

bq rm \
    --project_id=ADMIN_PROJECT_ID \
    --location=LOCATION \
    --capacity_commitment=true \
    COMMITMENT_ID

Remplacez les éléments suivants :

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 :

  1. Supprimez l'engagement en attente.
  2. Souscrivez un nouvel engagement pour un plus petit nombre d'emplacements. Selon la capacité, l'engagement le plus petit peut devenir immédiatement actif.
  3. 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.
  4. 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.