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
etus-south1
me-central1
,me-central2
etme-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
Dans la console Google Cloud, accédez à la page BigQuery.
Pour ouvrir l'onglet des recommandations, cliquez sur > Afficher toutes les recommandations.
RecommandationsCet onglet répertorie toutes les recommandations disponibles pour votre projet.
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 colonneexample_column
pour économiser une quantité approximative d'octets et d'emplacements.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 projetFORMAT_TYPE
: format de sortie gcloud CLI compatible (par exemple, JSON)
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 en savoir plus sur les autres champs dans la réponse de l'outil de recommandation, consultez la section Ressource REST :
projects.locations.recommendersrecommendation
. - Pour en savoir plus sur l'utilisation de l'API Recommender, consultez la section Utiliser l'API - Recommandations.
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 projetFORMAT_TYPE
: format de sortie gcloud CLI compatible (par exemple, JSON)
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 |
- Pour en savoir plus sur les autres champs dans la réponse des insights, consultez la section Ressource REST :
projects.locations.insightTypes.insights
. - Pour en savoir plus sur l'utilisation des insights, consultez la section Utiliser l'API - Insights.
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 validePROJECT_NAME
: nom du projet contenant votre table BigQuery
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 en savoir plus sur les autres champs dans la réponse de l'outil de recommandation, consultez la section Ressource REST :
projects.locations.recommendersrecommendation
. - Pour en savoir plus sur l'utilisation de l'API Recommender, consultez la section Utiliser l'API - Recommandations.
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 validePROJECT_NAME
: nom du projet contenant votre table BigQuery
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 |
- Pour en savoir plus sur les autres champs dans la réponse des insights, consultez la section Ressource REST :
projects.locations.insightTypes.insights
. - Pour en savoir plus sur l'utilisation des insights, consultez la section Utiliser l'API - Insights.
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.