Résoudre les problèmes avec le schéma d'informations

En tant qu'administrateur BigQuery ou analyste de données, la gestion des charges de travail d'entreprise nécessite un moyen fiable et évolutif de diagnostiquer les goulots d'étranglement des performances, les échecs de requêtes, les limites de capacité et la croissance du stockage. Les vues du schéma d'informations BigQuery servent de base d'observabilité, fournissant des métadonnées historiques et en temps quasi réel accessibles via des requêtes GoogleSQL standards.

Ce document décrit les principes de base de la résolution des problèmes BigQuery à l'aide du schéma d'informations, fournit une présentation structurée de la boîte à outils de dépannage administratif et vous redirige vers des vues spécifiques de la bibliothèque BigQuery.

Résolution des problèmes liés au schéma d'informations par tâche

Le tableau suivant récapitule les vues utiles du schéma d'informations, classées par tâche et cas d'utilisation de diagnostic :

Tâche Cas d'utilisation Vues du schéma d'informations
Performances et erreurs des requêtes
  • Identifier les requêtes les plus coûteuses et celles qui consomment le plus d'emplacements
  • Agréger les motifs d'échec et les raisons d'erreur des tâches
  • Analyser les durées d'exécution par étape et les octets déversés
Capacité et contention des charges de travail
  • Détecter la contention des emplacements, la limitation et les temps d'attente dans la file d'attente
  • Surveiller la saturation de la mémoire de shuffle en mémoire
  • Auditer l'utilisation des emplacements de référence et d'autoscaling des réservations
  • Vérifier les attributions de réservations aux projets et aux dossiers
Coûts de stockage et architecture des données
  • Identifier les tables dont le stockage physique ou logique est incontrôlable
  • Détecter le gonflement du stockage préventif et de la fonctionnalité temporelle
  • Diagnostiquer le déséquilibre des partitions et les tables approchant les limites de partition
  • Découvrir les tables expirées ou supprimées dans les fenêtres de fonctionnalité temporelle
Contrôle des accès et gouvernance
  • Auditer les attributions explicites de rôles Identity and Access Management (IAM) sur les tables et les ensembles de données
  • Résoudre les erreurs d'accès refusé pour les utilisateurs et les comptes de service
  • Suivre le partage d'ensembles de données entre projets et l'utilisation analytique
Pipelines d'ingestion de données
  • Surveiller le débit d'ingestion et les erreurs de l'API Storage Write
  • Diagnostiquer la latence et les limites de débit des insertions en flux continu
  • Identifier les flux en échec par type de flux et code d'erreur
Machine learning et recherche vectorielle
  • Suivre la durée de l'entraînement du modèle et la consommation de ressources
  • Auditer l'état de création de l'index vectoriel et le pourcentage de couverture
  • Résoudre les problèmes liés aux builds de procédures stockées et de fonctions Python définies par l'utilisateur
Insights sur l'optimisation des charges de travail
  • Examiner les recommandations de partitionnement et de clustering automatisés
  • Identifier les tables candidates pour les vues matérialisées

Principes de résolution des problèmes avec le schéma d'informations

Lorsque vous diagnostiquez des problèmes liés à la charge de travail ou à l'environnement dans BigQuery, appliquez les principes de base suivants :

  • Définissez la portée par région, ensemble de données et projet. La gestion des charges de travail et les ressources de calcul BigQuery s'exécutent dans des limites régionales. Tenez compte des points suivants :

    • Spécifiez toujours le qualificatif régional correct (par exemple, region-REGION.INFORMATION_SCHEMA.JOBS_BY_PROJECT) ou le qualificatif d'ensemble de données.

    • Choisissez le niveau de hiérarchie approprié (BY_PROJECT, BY_USER, BY_FOLDER ou BY_ORGANIZATION) selon que vous examinez un problème lié à un seul utilisateur, une charge de travail spécifique à un projet ou un problème à l'échelle du locataire.

  • Corrélez la demande de calcul avec la capacité. Les performances lentes des requêtes sont souvent le résultat d'une contention des emplacements plutôt que d'un SQL inefficace. Comparez les requêtes de ressources de tâches (period_estimated_runnable_units) aux emplacements de réservation alloués (period_slot_ms) sur des fenêtres temporelles identiques pour distinguer les opportunités d'ajustement des requêtes et les problèmes causés par une capacité insuffisante.

  • Tenez compte de la granularité de la télémétrie et des limites de conservation. Différentes vues du schéma d'informations fonctionnent sur des intervalles d'actualisation et des fenêtres de conservation des données distincts. Les métadonnées des tâches dans la vue JOBS sont disponibles pendant 180 jours, tandis que les métriques de chronologie haute résolution dans les JOBS_TIMELINE et RESERVATIONS_TIMELINE vues sont conservées pendant des périodes plus courtes (généralement de 14 à 30 jours). Pour l'audit à long terme et l'analyse des tendances, vous devez exporter la télémétrie vers des tables partitionnées.

  • Évitez la distorsion des métriques dans les requêtes multi-instructions. Les scripts multi-instructions (SQL procédural contenant DECLARE, IF, ou WHILE) génèrent une tâche parente avec statement_type = 'SCRIPT' et des tâches enfants individuelles pour chaque instruction. Lorsque vous agrégez des métriques telles que total_slot_ms ou total_bytes_billed, filtrez statement_type = 'SCRIPT' pour éviter le double comptage.

  • Filtrez sur les colonnes de partition. Pour minimiser le temps d'exécution des requêtes et éviter les coûts d'analyse inutiles sur l'analyse à la demande, incluez toujours des filtres temporels restrictifs sur les colonnes de partition telles que creation_time, job_start_time ou period_start.

Étape suivante

  • Pour en savoir plus sur la syntaxe du schéma d'informations et obtenir la liste des vues disponibles, consultez la page Présentation d'INFORMATION_SCHEMA.
  • Pour savoir comment afficher les détails d'une tâche, lister les tâches actives et annuler les tâches en cours d'exécution, consultez la page Gérer les tâches.