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 :

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

    Accéder à BigQuery

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

  1. Créez une réservation BACKGROND.
  2. Attribuez votre projet à la réservation.

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

  1. Dans la console Trusted Cloud , accédez à la page Gestion de la capacité.

    Accéder à la gestion de la capacité

  2. Cliquez sur Actions de réservation > Créer une attribution.

  3. Sélectionnez votre projet de réservation.

  4. Définissez le champ Job Type (Type de tâche) sur Background (Arrière-plan).

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

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

    Accéder à BigQuery

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

    CREATE ASSIGNMENT
    ADMIN_PROJECT_ID.region-LOCATION.RESERVATION_NAME.ASSIGNMENT_ID
    OPTIONS (
      assignee = 'projects/PROJECT_ID',
      job_type = 'BACKGROUND');
    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.
    • 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.
  3. 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 :

  1. Configurez un canal de notification Monitoring si vous ne l'avez pas encore fait.
  2. Accédez à la page Intégrations.

    Accéder à la page "Intégrations"

  3. Recherchez l'intégration BigQuery et cliquez sur Afficher les détails.

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

  5. Facultatif : Pour personnaliser davantage cette alerte, cliquez sur Afficher les options > Personnaliser la règle d'alerte.

  6. Pour Configurer les notifications, sélectionnez votre canal de notification.

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

  1. Configurez un canal de notification Monitoring si vous ne l'avez pas encore fait.
  2. Accédez à la page Intégrations.

    Accéder à la page "Intégrations"

  3. Recherchez l'intégration BigQuery et cliquez sur Afficher les détails.

  4. Dans l'onglet Alertes, sélectionnez Obsolescence de l'index des métadonnées de la colonne : augmentation trop importante en pourcentage.

  5. Facultatif : Pour personnaliser davantage cette alerte, cliquez sur Afficher les options > Personnaliser la règle d'alerte.

  6. Pour Configurer les notifications, sélectionnez votre canal de notification.

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