Afficher les recommandations de partition et de cluster

Ce document décrit le fonctionnement de l'outil de recommandation de partition et de cluster, ainsi que les méthodes pour afficher vos recommandations et insights.

L'outil de recommandation de partitionnement et de clustering génère des recommandations de partition ou de cluster pour optimiser vos tables BigQuery. L'outil de recommandation analyse les workflows sur vos tables BigQuery et propose des recommandations pour mieux optimiser vos workflows et coûts de requêtes à l'aide du partitionnement ou du clustering de tables.

Pour en savoir plus sur l'outil de recommandation, consultez la page Présentation de l'outil de recommandation.

Fonctionnement de l'outil de recommandation

Pour générer une recommandation, l'outil de recommandation de partitionnement et de clustering utilise les données d'exécution de charge de travail du projet au cours des 30 derniers jours pour analyser chaque table BigQuery afin d'identifier les configurations de partitionnement et de clustering non optimales. L'outil de recommandation utilise également le machine learning pour prédire dans quelle mesure l'exécution de la charge de travail pourrait être optimisée avec différentes configurations de partitionnement ou de clustering. Si l'outil de recommandation constate que le partitionnement ou le clustering d'une table permet de réaliser des économies significatives, il génère une recommandation. L'outil de recommandation de partitionnement et de clustering génère les types de recommandations suivants :

Type de table existant Sous-type de recommandation Exemple de recommandation
Non partitionnée, hors cluster Partition "Économisez environ 64 heures d'utilisation des emplacement par mois en partitionnant la colonne_C par JOUR".
Non partitionnée, hors cluster Cluster "Économisez environ 64 heures d'utilisation des emplacement par mois en regroupant les lignes en fonction de la colonne_C"
Partitionnée, hors cluster Cluster "Économisez environ 64 heures d'utilisation des emplacement par mois en regroupant les lignes en fonction de la colonne_C"

Chaque recommandation comprend trois parties :

  • L'orientation vers le partitionnement ou la mise en cluster d'une table spécifique
  • La colonne spécifique d'une table à partitionner ou à mettre en cluster
  • L'estimation des économies mensuelles réalisées grâce à l'application de la recommandation

Pour calculer les économies de charges de travail potentielles, l'outil de recommandation suppose que les données d'historique de charge de travail d'exécution des 30 derniers jours représentent la charge de travail future.

L'API de l'outil de recommandation renvoie également des informations sur les charges de travail de table sous la forme d'insights. Les insights sont des résultats qui vous aident à comprendre la charge de travail de votre projet, en fournissant plus de contexte sur la façon dont une recommandation de partitionnement ou de clustering peut améliorer les coûts des charges de travail.

Limites

L'outil de recommandation de partitionnement et de clustering exclut les requêtes en ancien SQL dans son analyse.

L'outil de recommandation de partitionnement et de clustering n'accepte pas les ressources stockées dans les régions suivantes :

  • europe-central2, europe-west8, europe-west9, europe-west12, europe-north1, europe-southwest1
  • us-east1, us-east5 et us-south1
  • me-central1, me-central2 et me-west1
  • australia-southeast2
  • southamerica-west1

Avant de commencer

Pour pouvoir afficher les recommandations de partition et de cluster, vous devez activer l'API Recommender.

Autorisations requises

Pour obtenir les autorisations nécessaires pour accéder aux recommandations de partition et de cluster, demandez à votre administrateur de vous accorder le rôle IAM Lecteur de l'outil de recommandation de partitionnement ou de clustering BigQuery (roles/recommender.bigqueryPartitionClusterViewer). Pour en savoir plus sur l'attribution de rôles, consultez la section Gérer les accès.

Ce rôle prédéfini contient les autorisations requises pour accéder aux recommandations de partition et de cluster. Pour afficher les autorisations exactes requises, développez la section Autorisations requises :

Autorisations requises

Vous devez disposer des autorisations suivantes pour accéder aux recommandations de partition et de cluster :

  • recommender.bigqueryPartitionClusterRecommendations.get
  • recommender.bigqueryPartitionClusterRecommendations.list

Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.

Pour plus d'informations sur les rôles et les autorisations IAM dans BigQuery, consultez la page Présentation d'IAM.

Afficher les recommandations

Cette section explique comment afficher les recommandations et les insights de partitions et de clusters à l'aide de la console Google Cloud, de Google Cloud CLI ou de l'API Recommender.

Sélectionnez l'une des options suivantes :

Console

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

    Accéder à BigQuery

  2. Pour ouvrir l'onglet des recommandations, cliquez sur Recommandations > Afficher toutes les recommandations.

    Cliquez sur "Recommandations" pour afficher toutes les recommandations.

    Cet onglet répertorie toutes les recommandations disponibles pour votre projet.

  3. Dans le panneau Optimiser le coût des charges de travail BigQuery, cliquez sur Tout afficher.

    La table des recommandations de coûts répertorie toutes les recommandations générées pour le projet en cours. Par exemple, la capture d'écran suivante montre que l'outil de recommandation a analysé la table example_table, puis qu'il a recommandé de mettre en cluster la colonne example_column pour économiser une quantité approximative d'octets et d'emplacements.

    Table de recommandations avec des recommandations de partitionnement et de clustering.

  4. Pour afficher plus d'informations sur la recommandation et sur la table, cliquez sur une recommandation.

gcloud

Pour afficher les recommandations de partition ou de cluster pour un projet spécifique, utilisez la commande gcloud recommender recommendations list :

gcloud recommender recommendations list \
    --project=PROJECT_NAME \
    --location=REGION_NAME \
    --recommender=google.bigquery.table.PartitionClusterRecommender \
    --format=FORMAT_TYPE \

Remplacez les éléments suivants :

  • PROJECT_NAME : nom du projet contenant votre table BigQuery.
  • REGION_NAME : région dans laquelle se trouve votre projet
  • FORMAT_TYPE : format de sortie gcloud CLI compatible (par exemple, JSON)
Le tableau suivant décrit les champs importants de la réponse de l'API Recommender :

Propriété Pertinent pour le sous-type Description
recommenderSubtype Partition ou cluster Indique le type de recommandation.
content.overview.partitionColumn Partition Nom de colonne de partitionnement recommandé.
content.overview.partitionTimeUnit Partition Unité de temps de partitionnement recommandée. Par exemple, DAY signifie que la recommandation consiste à avoir des partitions quotidiennes sur la colonne recommandée.
content.overview.clusterColumns Cluster Noms de colonnes de clustering recommandés.

Pour afficher les insights de tables à l'aide de gcloud CLI, exécutez la commande gcloud recommender insights list :

gcloud recommender insights list \
    --project=PROJECT_NAME \
    --location=REGION_NAME \
    --insight-type=google.bigquery.table.StatsInsight \
    --format=FORMAT_TYPE \

Remplacez les éléments suivants :

  • PROJECT_NAME : nom du projet contenant votre table BigQuery.
  • REGION_NAME : région dans laquelle se trouve votre projet
  • FORMAT_TYPE : format de sortie gcloud CLI compatible (par exemple, JSON)
Le tableau suivant décrit les champs importants de la réponse de l'API Insights :

Propriété Pertinent pour le sous-type Description
content.existingPartitionColumn Cluster Colonne de partitionnement existante, le cas échéant
content.tableSizeTb Tout Taille de la table en téraoctets
content.bytesReadMonthly Tout Octets lus depuis la table par mois
content.slotMsConsumedMonthly Tout Millisecondes d'emplacement consommées par la charge de travail exécutée sur la table par mois
content.queryJobsCountMonthly Tout Nombre de jobs exécutés sur la table par mois

API REST

Pour afficher les recommandations de partition ou de cluster pour un projet spécifique, utilisez l'API REST. Avec chaque commande, vous devez fournir un jeton d'authentification, que vous pouvez obtenir à l'aide de gcloud CLI. Pour en savoir plus sur l'obtention d'un jeton d'authentification, consultez la section Méthodes d'obtention d'un jeton d'ID.

Vous pouvez utiliser la requête curl list pour afficher toutes les recommandations pour un projet spécifique :

curl
    -H "Authorization: Bearer $GCLOUD_AUTH_TOKEN"
    -H "x-goog-user-project: PROJECT_NAME" https://recommender.googleapis.com/v1/projects/my-project/locations/us/recommenders/google.bigquery.table.PartitionClusterRecommender/recommendations

Remplacez les éléments suivants :

  • GCLOUD_AUTH_TOKEN : nom d'un jeton d'accès gcloud CLI valide
  • PROJECT_NAME : nom du projet contenant votre table BigQuery
Le tableau suivant décrit les champs importants de la réponse de l'API Recommender :

Propriété Pertinent pour le sous-type Description
recommenderSubtype Partition ou cluster Indique le type de recommandation.
content.overview.partitionColumn Partition Nom de colonne de partitionnement recommandé.
content.overview.partitionTimeUnit Partition Unité de temps de partitionnement recommandée. Par exemple, DAY signifie que la recommandation consiste à avoir des partitions quotidiennes sur la colonne recommandée.
content.overview.clusterColumns Cluster Noms de colonnes de clustering recommandés.

Pour afficher les insights de tables à l'aide de l'API REST, exécutez la commande suivante:

curl
-H "Authorization: Bearer $GCLOUD_AUTH_TOKEN"
-H "x-goog-user-project: PROJECT_NAME" https://recommender.googleapis.com/v1/projects/my-project/locations/us/insightTypes/google.bigquery.table.StatsInsight/insights

Remplacez les éléments suivants :

  • GCLOUD_AUTH_TOKEN : nom d'un jeton d'accès gcloud CLI valide
  • PROJECT_NAME : nom du projet contenant votre table BigQuery
Le tableau suivant décrit les champs importants de la réponse de l'API Insights :

Propriété Pertinent pour le sous-type Description
content.existingPartitionColumn Cluster Colonne de partitionnement existante, le cas échéant
content.tableSizeTb Tout Taille de la table en téraoctets
content.bytesReadMonthly Tout Octets lus depuis la table par mois
content.slotMsConsumedMonthly Tout Millisecondes d'emplacement consommées par la charge de travail exécutée sur la table par mois
content.queryJobsCountMonthly Tout Nombre de jobs exécutés sur la table par mois

Dépannage

Problème : aucune recommandation n'apparaît pour une table spécifique.

Les recommandations de partitionnement et de clustering peuvent ne pas s'afficher dans les cas suivants :

  • La taille de la table est inférieure à 10 Go.
  • La table a un coût d'écriture élevé provenant des opérations LMD (langage de manipulation de données).
  • La table n'a pas été lue au cours des 30 derniers jours.
  • Les économies mensuelles estimées sont trop faibles (moins d'une heure d'économies par emplacement).
  • La table est déjà en cluster.

Tarifs

L'affichage des recommandations n'entraîne aucuns frais et n'a aucune incidence négative sur les performances de la charge de travail.

Étapes suivantes