Indexation des métadonnées pour les tables BigQuery
Ce document décrit l'indexation des métadonnées de colonnes dans BigQuery et explique comment allouer des ressources dédiées pour améliorer la fraîcheur des index et les performances des requêtes.
BigQuery indexe automatiquement les métadonnées des tables BigQuery de plus de 1 Gio. Ces métadonnées incluent l'emplacement des fichiers, des informations sur le 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 gratuite qui ne nécessite aucune action de votre part. Toutefois, la fraîcheur de l'index dépend des ressources gratuites disponibles et ne dispose pas d'objectifs de niveau de service (SLO) en termes 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 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 Trusted 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 projet Trusted Cloud by S3NS . 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 le job terminé, vérifiez la propriété TableMetadataCacheUsage
de la ressource Job. Si le champ unusedReason
est vide (non renseigné), l'index de métadonnées de la colonne a été utilisé. S'il est renseigné, le champ explanation
associé indique pourquoi l'index des métadonnées de 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'extrait suivant affiche l'utilisation de l'index des métadonnées de colonne pour le job my-job
:
SELECT metadata_cache_statistics FROM `region-US`.INFORMATION_SCHEMA.JOBS WHERE job_id = 'my-job';
Par exemple, la requête suivante affiche le nombre de jobs 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 de l'indexation des métadonnées dans votre projet, vous devez d'abord avoir une réservation attribuée à 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 job 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 Emplacements inactifs.
Console
Dans la console Trusted 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 (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 Trusted 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 les tâches 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 montre les cinq jobs d'actualisation les plus récents 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 jobs 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 Aperçu des alertes. L'indexation des métadonnées vous permet de configurer des alertes pour l'utilisation et l'obsolescence des emplacements.
Alerte d'utilisation des emplacements
Cette alerte vous avertit lorsque votre réservation en arrière-plan dépasse un pourcentage défini de son allocation. La valeur par défaut est de 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 :
- Configurez un canal de notification Monitoring si vous ne l'avez pas encore fait.
Accédez à la page Intégrations.
Recherchez l'intégration BigQuery et cliquez sur Afficher les détails.
Dans l'onglet Alertes, sélectionnez Utilisation des emplacements – Utilisation trop élevée des emplacements du 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.
Pour 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'index des métadonnées de colonne augmente trop par rapport à la moyenne existante. Le seuil par défaut est défini comme suit : 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 Monitoring si vous ne l'avez pas encore fait.
Accédez à la page Intégrations.
Recherchez l'intégration BigQuery et cliquez sur Afficher les détails.
Dans l'onglet Alertes, sélectionnez Obsolescence de l'index des métadonnées de la colonne : augmentation trop importante en pourcentage.
Facultatif : Pour personnaliser davantage cette alerte, cliquez sur Afficher les options > Personnaliser la règle d'alerte.
Pour 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.
Étapes suivantes
- Découvrez comment afficher tous les jobs de votre projet avec la vue
JOBS
. - Découvrez comment afficher la capacité et l'utilisation des emplacements.