Vue JOBS_BY_ORGANIZATION
La vue INFORMATION_SCHEMA.JOBS_BY_ORGANIZATION
contient les métadonnées en temps quasi réel sur toutes les tâches envoyées dans l'organisation associée au projet en cours.
Rôle requis
Pour obtenir l'autorisation dont vous avez besoin pour interroger la vue INFORMATION_SCHEMA.JOBS_BY_ORGANIZATION
, demandez à votre administrateur de vous attribuer le rôle IAM Lecteur de ressources BigQuery (roles/bigquery.resourceViewer
) sur votre organisation.
Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.
Ce rôle prédéfini contient l'autorisation bigquery.jobs.listAll
, qui est nécessaire pour interroger la vue INFORMATION_SCHEMA.JOBS_BY_ORGANIZATION
.
Vous pouvez également obtenir cette autorisation avec des rôles personnalisés ou d'autres rôles prédéfinis.
La table de schéma n'est disponible que pour les utilisateurs associés à des organisations Google Cloud définies.
Pour plus d'informations sur les autorisations BigQuery, consultez la page Contrôle des accès avec IAM.
Schéma
Les données sous-jacentes sont partitionnées par la colonne creation_time
et mises en cluster par project_id
et user_email
. La colonne query_info
contient des informations supplémentaires sur les jobs de requête.
La vue INFORMATION_SCHEMA.JOBS_BY_ORGANIZATION
présente le schéma suivant :
Nom de colonne | Type de données | Valeur |
---|---|---|
bi_engine_statistics |
RECORD |
Si le projet est configuré pour utiliser l'interface SQL de BI Engine, ce champ contient BiEngineStatistics.
Sinon, il est défini sur NULL .
|
cache_hit |
BOOLEAN |
Indique si les résultats de requête de cette tâche ont été mis en cache.
Si vous avez un job de requête multi-instruction, la valeur cache_hit pour votre requête parente est NULL .
|
creation_time |
TIMESTAMP |
(Colonne de partitionnement) Heure de création du job. Le partitionnement est basé sur l'heure UTC de cet horodatage. |
destination_table |
RECORD |
Table de destination des résultats (le cas échéant). |
end_time |
TIMESTAMP |
Heure de fin de ce job, en millisecondes depuis l'époque. Ce champ représente l'heure à laquelle le job passe à l'état DONE . |
error_result |
RECORD |
Détails des erreurs sous forme d'objets ErrorProto. |
job_creation_reason.code |
STRING |
Spécifie la raison générale pour laquelle une tâche a été créée. Les valeurs possibles sont les suivantes :
|
job_id |
STRING |
ID de la tâche si une tâche a été créée. Sinon, l'ID de requête d'une requête utilisant le mode de requête courte. Par exemple, bquxjob_1234 . |
job_stages |
RECORD |
Étapes de la requête pour le job.
Remarque : Les valeurs de cette colonne sont vides pour les requêtes lues dans des tables présentant des règles d'accès au niveau des lignes. Pour en savoir plus, consultez les Bonnes pratiques en matière de sécurité au niveau des lignes dans BigQuery. |
job_type |
STRING |
Type de la tâche. Il peut s'agir de QUERY , LOAD , EXTRACT , COPY ou NULL . Une valeur NULL indique un job interne, tel que l'évaluation d'une instruction de job de script ou l'actualisation d'une vue matérialisée.
|
labels |
RECORD |
Tableau de libellés appliqués au job en tant que paires clé/valeur. |
parent_job_id |
STRING |
ID de la tâche parente (le cas échéant). |
priority |
STRING |
Priorité de cette tâche. Les valeurs autorisées sont INTERACTIVE et BATCH . |
project_id |
STRING |
(Colonne de clustering) ID du projet. |
project_number |
INTEGER |
Numéro du projet. |
query |
STRING |
Texte de requête SQL. Seule la vue JOBS_BY_PROJECT contient la colonne de requête. |
referenced_tables |
RECORD |
Tableau de tables référencées par le job. Rempli uniquement pour les jobs de requête qui ne sont pas des succès de cache. |
reservation_id |
STRING |
Nom de la réservation principale attribuée à ce job, au format RESERVATION_ADMIN_PROJECT:RESERVATION_LOCATION.RESERVATION_NAME .Dans ce résultat :
|
edition |
STRING |
Édition associée à la réservation attribuée à ce job. Pour en savoir plus sur les éditions, consultez la page Présentation des éditions BigQuery. |
session_info |
RECORD |
Les détails de la session dans laquelle ce job a été exécuté, le cas échéant. |
start_time |
TIMESTAMP |
Heure de début de ce job, en millisecondes depuis l'époque. Ce champ représente l'heure à laquelle le job passe de l'état PENDING à RUNNING ou DONE . |
state |
STRING |
État de fonctionnement de la tâche. Les états valides sont les suivants : PENDING , RUNNING et DONE .
|
statement_type |
STRING |
Type d'instruction de requête. Par exemple, DELETE , INSERT , SCRIPT , SELECT ou UPDATE . Consultez la section QueryStatementType pour obtenir la liste des valeurs valides.
|
timeline |
RECORD |
Chronologie de la requête pour le job. Contient des instantanés de l'exécution des requêtes. |
total_bytes_billed |
INTEGER |
Si le projet est configuré pour utiliser la tarification à la demande, ce champ contient le nombre total d'octets facturés pour le job. Si le projet est configuré pour utiliser la tarification forfaitaire, le nombre d'octets ne vous est pas facturé, et ce champ est fourni à titre d'information seulement.
Remarque : Les valeurs de cette colonne sont vides pour les requêtes lues dans des tables présentant des règles d'accès au niveau des lignes. Pour en savoir plus, consultez les Bonnes pratiques en matière de sécurité au niveau des lignes dans BigQuery. |
total_bytes_processed |
INTEGER |
Nombre total d'octets traités par la tâche. Remarque : Les valeurs de cette colonne sont vides pour les requêtes lues dans des tables présentant des règles d'accès au niveau des lignes. Pour en savoir plus, consultez les Bonnes pratiques en matière de sécurité au niveau des lignes dans BigQuery. |
total_modified_partitions |
INTEGER |
Nombre total de partitions modifiées par le job. Ce champ est renseigné pour les jobs LOAD et QUERY .
|
total_slot_ms |
INTEGER |
Emplacement des millisecondes pour le job sur toute sa durée à l'état RUNNING , y compris les nouvelles tentatives. |
transaction_id |
STRING |
ID de la transaction dans laquelle ce job a été exécuté, le cas échéant. (Aperçu) |
user_email |
STRING |
(Colonne de mise en cluster) Adresse e-mail ou compte de service de l'utilisateur ayant exécuté le job. |
query_info.resource_warning |
STRING |
Message d'avertissement qui s'affiche si l'utilisation des ressources lors du traitement des requêtes dépasse le seuil interne du système. Le champ resource_warning peut être rempli pour tout job de requête réussi. resource_warning vous permet d'obtenir des points de données supplémentaires pour optimiser vos requêtes et configurer la surveillance des tendances de performances d'un ensemble de requêtes équivalent à l'aide de query_hashes .
|
query_info.query_hashes.normalized_literals |
STRING |
Contient les hachages de la requête. normalized_literals est un hachage hexadécimal STRING qui ignore les commentaires, les valeurs de paramètre, les fonctions définies par l'utilisateur et les littéraux.
La valeur de hachage diffère lorsque les vues sous-jacentes changent, ou si la requête fait référence implicitement à des colonnes, telles que SELECT * , et que le schéma de la table change.
Ce champ apparaît pour les requêtes GoogleSQL réussies qui ne sont pas des succès de cache. |
query_info.performance_insights |
RECORD |
Insights sur les performances du job. |
query_info.optimization_details |
STRUCT |
Les optimisations basées sur l'historique associées au job. |
transferred_bytes |
INTEGER |
Nombre total d'octets transférés pour les requêtes inter-cloud, telles que les tâches de transfert inter-cloud de BigQuery Omni. |
materialized_view_statistics |
RECORD |
Statistiques des vues matérialisées prises en compte dans un job de requête. (Aperçu) |
Conservation des données
Cette vue contient les tâches en cours d'exécution et l'historique des tâches des 180 derniers jours.
Champ d'application et syntaxe
Les requêtes exécutées sur cette vue doivent inclure un qualificatif de région. Le tableau suivant explique le champ d'application de la région pour cette vue :
Nom de la vue | Champ d'application de la ressource | Champ d'application de la région |
---|---|---|
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.JOBS_BY_ORGANIZATION |
Organisation contenant le projet spécifié | REGION |
Facultatif : PROJECT_ID
: ID de votre projet Google Cloud. Si non spécifié, le projet par défaut est utilisé.
REGION
: tout nom de région d'ensemble de données.
Par exemple, `region-us`
.
Exemple
Pour exécuter la requête sur un projet autre que celui par défaut, ajoutez l'ID du projet en respectant le format suivant :
`PROJECT_ID`.`region-REGION_NAME`.INFORMATION_SCHEMA.JOBS_BY_ORGANIZATION
PROJECT_ID
: ID du projetREGION_NAME
: région de votre projet
Par exemple, `myproject`.`region-us`.INFORMATION_SCHEMA.JOBS_BY_ORGANIZATION
.
Les 5 jobs ayant analysé le plus d'octets aujourd'hui
L'exemple suivant montre comment localiser les cinq tâches ayant analysé le plus d'octets au sein d'une organisation sur la journée en cours. Vous pouvez appliquer davantage de filtres sur statement_type
pour rechercher des informations supplémentaires, telles que des chargements, des exportations et des requêtes.
SELECT job_id, user_email, total_bytes_billed FROM `region-REGION_NAME`.INFORMATION_SCHEMA.JOBS_BY_ORGANIZATION WHERE EXTRACT(DATE FROM creation_time) = current_date() ORDER BY total_bytes_billed DESC LIMIT 5;
Le résultat ressemble à ce qui suit :
+--------------+--------------+---------------------------+ | job_id | user_email | total_bytes_billed | +--------------+--------------+---------------------------+ | bquxjob_1 | abc@xyz.com | 999999 | | bquxjob_2 | def@xyz.com | 888888 | | bquxjob_3 | ghi@xyz.com | 777777 | | bquxjob_4 | jkl@xyz.com | 666666 | | bquxjob_5 | mno@xyz.com | 555555 | +--------------+--------------+---------------------------+
Afficher les insights sur les performances des requêtes
L'exemple suivant renvoie tous les jobs de requête qui ont généré des insights sur les performances de votre organisation au cours des 30 derniers jours, ainsi qu'une URL renvoyant au graphique d'exécution de la requête dans la console Google Cloud.
SELECT `bigquery-public-data`.persistent_udfs.job_url( project_id || ':us.' || job_id) AS job_url, query_info.performance_insights FROM `region-REGION_NAME`.INFORMATION_SCHEMA.JOBS_BY_ORGANIZATION WHERE DATE(creation_time) >= CURRENT_DATE - 30 -- scan 30 days of query history AND job_type = 'QUERY' AND state = 'DONE' AND error_result IS NULL AND statement_type != 'SCRIPT' AND EXISTS ( -- Only include queries which had performance insights SELECT 1 FROM UNNEST( query_info.performance_insights.stage_performance_standalone_insights ) WHERE slot_contention OR insufficient_shuffle_quota UNION ALL SELECT 1 FROM UNNEST( query_info.performance_insights.stage_performance_change_insights ) WHERE input_data_change.records_read_diff_percentage IS NOT NULL );