Indexation des métadonnées pour les tables BigQuery
Ce document décrit l'indexation des métadonnées de colonne dans BigQuery et explique comment allouer des ressources dédiées pour améliorer la fraîcheur de l'index et les performances des requêtes.
BigQuery indexe automatiquement les métadonnées des tables BigQuery de plus de 1 Go. Ces métadonnées incluent l'emplacement du fichier, des informations de partitionnement et des attributs au niveau des colonnes, que BigQuery utilise pour optimiser et accélérer vos requêtes.
Par défaut, l'indexation des métadonnées dans BigQuery est une opération en arrière-plan sans frais et ne nécessite aucune action de votre part. Toutefois, la fraîcheur de l'index dépend des ressources libres disponibles et n'a pas d'objectifs de niveau de service (SLO) de performances. Si la fraîcheur de l'index est essentielle pour votre cas d'utilisation, nous vous recommandons de configurer une réservation BACKGROUND
.
Afficher l'heure d'actualisation de l'index de métadonnées
Pour afficher la dernière date et heure d'actualisation de l'index de métadonnées d'une table, interrogez la colonne LAST_METADATA_INDEX_REFRESH_TIME
de la vue INFORMATION_SCHEMA.TABLE_STORAGE
.
Pour ce faire, procédez comme suit:
Dans la console Google Cloud , accédez à la page BigQuery.
Dans l'éditeur de requête, saisissez l'instruction suivante :
SELECT project_id, project_number, table_name, last_metadata_index_refresh_time FROM [
PROJECT_ID
.]region-REGION
.INFORMATION_SCHEMA.TABLE_STORAGE;Remplacez les éléments suivants :
PROJECT_ID
: ID de votre Google Cloud projet. Si non spécifié, le projet par défaut est utilisé.REGION
: région où se trouve le projet (par exemple,region-us
).
Cliquez sur
Exécuter.
Afficher l'utilisation de l'index de métadonnées de colonne
Pour savoir si l'index de métadonnées de colonne a été utilisé une fois une tâche terminée, vérifiez la propriété TableMetadataCacheUsage
de la ressource Job. Si le champ unusedReason
est vide (non renseigné), l'indice des métadonnées de la colonne a été utilisé. S'il est renseigné, le champ explanation
associé indique pourquoi l'index de métadonnées de la colonne n'a pas été utilisé.
Vous pouvez également afficher l'utilisation de l'index des métadonnées de colonne avec le champ metadata_cache_statistics
dans la vue INFORMATION_SCHEMA.JOBS
.
Par exemple, l'exemple suivant affiche l'utilisation de l'index des métadonnées de colonne pour la tâche my-job
:
SELECT metadata_cache_statistics FROM `region-US`.INFORMATION_SCHEMA.JOBS WHERE job_id = 'my-job';
Par exemple, l'exemple suivant affiche le nombre de tâches qui ont utilisé l'index des métadonnées de colonne pour la table my-table
:
SELECT COUNT(*) FROM `region-US`.INFORMATION_SCHEMA.JOBS, UNNEST(metadata_cache_statistics.table_metadata_cache_usage) AS stats WHERE stats.table_reference.table_id='my-table' AND stats.table_reference.dataset_id='my-dataset' AND stats.table_reference.project_id='my-project' AND stats.unusedReason IS NULL;
Configurer des ressources d'indexation dédiées
Pour configurer des ressources pour les mises à jour d'indexation des métadonnées dans votre projet, vous devez d'abord attribuer une réservation à votre projet. Pour ce faire, procédez comme suit:
Après avoir configuré votre réservation, sélectionnez l'une des méthodes suivantes pour attribuer des emplacements à votre tâche d'indexation des métadonnées. Par défaut, les emplacements que vous allouez de cette manière sont partagés avec d'autres tâches s'ils sont inactifs. Pour en savoir plus, consultez la section Emplacements inactifs.
Console
Dans la console Google Cloud , accédez à la page Gestion de la capacité.
Cliquez sur > Créer une attribution.
Actions de réservationSélectionnez votre projet de réservation.
Définissez le champ Job Type (Type de tâche) sur Background (En arrière-plan).
Cliquez sur Créer.
bq
Utilisez la commande bq mk
.
bq mk \ --project_id=ADMIN_PROJECT_ID \ --location=LOCATION \ --reservation_assignment \ --reservation_id=RESERVATION_NAME \ --assignee_id=PROJECT_ID \ --job_type=BACKGROUND \ --assignee_type=PROJECT
Remplacez les éléments suivants :
ADMIN_PROJECT_ID
: ID du projet d'administration propriétaire de la ressource de réservation.LOCATION
: emplacement de la réservation.RESERVATION_NAME
: nom de la réservation.PROJECT_ID
: ID du projet à attribuer à cette réservation.
SQL
Pour attribuer une réservation à un projet, utilisez l'instruction LDD CREATE ASSIGNMENT
.
Dans la console Google Cloud , accédez à la page BigQuery.
Dans l'éditeur de requête, saisissez l'instruction suivante :
Remplacez les éléments suivants :CREATE ASSIGNMENT ADMIN_PROJECT_ID.region-LOCATION.RESERVATION_NAME.ASSIGNMENT_ID OPTIONS ( assignee = 'projects/PROJECT_ID', job_type = 'BACKGROUND');
ADMIN_PROJECT_ID
: ID du projet d'administration propriétaire de la ressource de réservation.LOCATION
: emplacement de la réservation.RESERVATION_NAME
: nom de la réservation.ASSIGNMENT_ID
: ID de l'attribution. L'ID doit être unique au projet et à l'emplacement. Il doit commencer et se terminer par une lettre minuscule ou un chiffre, et ne doit contenir que des lettres minuscules, des chiffres et des tirets.PROJECT_ID
: ID du projet contenant les tables. Ce projet est attribué à la réservation.
Cliquez sur
Exécuter.
Afficher les informations sur la tâche d'indexation
Une fois que vous avez configuré vos tâches d'indexation dédiées, vous pouvez afficher des informations à leur sujet avec la vue JOBS
.
L'exemple SQL suivant affiche les cinq tâches d'actualisation les plus récentes dans PROJECT_NAME.
SELECT * FROM region-us.INFORMATION_SCHEMA.JOBS WHERE project_id = 'PROJECT_NAME' AND SEARCH(job_id, '`metadata_cache_refresh`') ORDER BY creation_time DESC LIMIT 5;
Remplacez PROJECT_NAME
par le nom du projet contenant vos tâches d'indexation des métadonnées.
Configurer des alertes d'indexation des métadonnées
Le processus d'alerte Cloud Monitoring vous avertit lorsque les performances de BigQuery ne répondent pas aux critères définis. Pour en savoir plus, consultez la section Présentation des alertes. Avec l'indexation des métadonnées, vous pouvez configurer des alertes pour l'utilisation et l'obsolescence des emplacements.
Alerte d'utilisation des emplacements
Cette alerte vous informe lorsque votre réservation en arrière-plan dépasse un pourcentage défini de son allocation. La valeur par défaut est 95%. Vous pouvez configurer cette alerte pour une réservation spécifique ou pour chaque réservation en arrière-plan. Lorsque cette alerte se déclenche, nous vous recommandons d'augmenter la taille de votre réservation.
Pour configurer cette alerte pour chaque réservation en arrière-plan, procédez comme suit:
- Configurez un canal de notification de surveillance si ce n'est pas déjà fait.
Accédez à la page Intégrations.
Recherchez l'intégration BigQuery, puis cliquez sur Afficher les détails.
Dans l'onglet Alertes, sélectionnez Utilisation des emplacements : utilisation trop élevée des emplacements de cache de métadonnées en arrière-plan.
Facultatif: Pour personnaliser davantage cette alerte, cliquez sur Afficher les options > Personnaliser la règle d'alerte.
Sous Configurer les notifications, sélectionnez votre canal de notification.
Cliquez sur Créer.
Alerte d'obsolescence
Cette alerte vous avertit lorsque l'obsolescence moyenne de l'indice des métadonnées de colonne augmente trop par rapport à la moyenne existante. Le seuil par défaut est atteint si la moyenne sur quatre heures est plus du double de la moyenne précédente pendant plus de 30 minutes. Lorsque cette alerte se déclenche, nous vous recommandons d'augmenter la taille de votre réservation ou de créer une réservation en arrière-plan si vous n'en avez pas.
Pour configurer cette alerte, procédez comme suit:
- Configurez un canal de notification de surveillance, si ce n'est pas déjà fait.
Accédez à la page Intégrations.
Recherchez l'intégration BigQuery, puis cliquez sur Afficher les détails.
Dans l'onglet Alertes, sélectionnez Obsolescence de l'index des métadonnées de colonne : trop d'augmentation en pourcentage.
Facultatif: Pour personnaliser davantage cette alerte, cliquez sur Afficher les options > Personnaliser la règle d'alerte.
Sous Configurer les notifications, sélectionnez votre canal de notification.
Cliquez sur Créer.
Limites
Les améliorations des performances des requêtes de métadonnées ne s'appliquent qu'aux instructions SELECT
, INSERT
et CREATE TABLE AS SELECT
. Les instructions du langage de manipulation de données (LMD) ne bénéficieront pas de l'indexation des métadonnées.
Étape suivante
- Découvrez comment afficher toutes les tâches de votre projet avec la vue
JOBS
. - Découvrez comment afficher la capacité et l'utilisation des emplacements.