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 afin d'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 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 Clouddé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 BI Engine, alors 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. |
folder_numbers |
REPEATED INTEGER |
ID numérique des dossiers contenant le projet, en commençant par le dossier qui contient immédiatement le projet, suivi du dossier contenant le dossier enfant, et ainsi de suite.
Par exemple, si folder_numbers est défini sur [1, 2, 3], le dossier 1 contient immédiatement le projet, le dossier 2 contient 1 et le dossier 3 contient 2. Cette colonne n'est renseignée que dans JOBS_BY_FOLDER.
|
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 du job si un job a été créé. Sinon, l'ID de requête d'une requête utilisant le mode de création de job facultative. 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 en arrière-plan.
|
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. |
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. |
total_services_sku_slot_ms |
INTEGER |
Nombre total de millisecondes d'emplacement pour le job exécuté sur des services externes et facturé sur le SKU des services. Ce champ n'est renseigné que pour les jobs qui ont des coûts de service externes. Il correspond au total de l'utilisation pour les coûts dont la méthode de facturation est "SERVICES_SKU". |
transaction_id |
STRING |
ID de la transaction dans laquelle ce job a été exécuté, le cas échéant. |
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 la valeur de hachage 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 du hachage sera différente lorsque les vues sous-jacentes changeront 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. Seule la vue JOBS_BY_PROJECT contient cette colonne.
|
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. (Preview) |
metadata_cache_statistics |
RECORD |
Statistiques sur l'utilisation de l'index de colonne de métadonnées pour les tables référencées dans un job de requête. |
search_statistics |
RECORD |
Statistiques pour une requête de recherche. |
query_dialect |
STRING |
Ce champ sera disponible en mai 2025.
Dialecte de requête utilisé pour le job. Les valeurs valides sont les suivantes :
Ce champ n'est renseigné que pour les jobs de requête. La sélection par défaut du dialecte de requête peut être contrôlée par les paramètres de configuration. |
continuous |
BOOLEAN |
Indique si le job est une requête continue. |
continuous_query_info.output_watermark |
TIMESTAMP |
Représente le point jusqu'auquel la requête continue a traité les données avec succès. |
vector_search_statistics |
RECORD |
Statistiques pour une requête de recherche vectorielle. |
Conservation des données
Cette vue contient les jobs en cours d'exécution et l'historique des jobs 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 |
-
PROJECT_ID(facultatif) : 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`.
Examples
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.
Trouver les cinq 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 | +--------------+--------------+---------------------------+
Agréger l'utilisation des feuilles connectées par utilisateur au niveau de l'organisation
La requête suivante fournit un récapitulatif des principaux utilisateurs de feuilles connectées de votre organisation au cours des 30 derniers jours, classés en fonction du total des données facturées. La requête agrège le nombre total de requêtes, le nombre total d'octets facturés et le nombre total de millisecondes d'emplacement pour chaque utilisateur. Ces informations sont utiles pour comprendre l'adoption et identifier les principaux consommateurs de ressources.
SELECT
user_email,
COUNT(*) AS total_queries,
SUM(total_bytes_billed) AS total_bytes_billed,
SUM(total_slot_ms) AS total_slot_ms
FROM
`region-REGION_NAME.INFORMATION_SCHEMA.JOBS_BY_ORGANIZATION`
WHERE
-- Filter for jobs created in the last 30 days
creation_time >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 30 DAY)
-- Filter for jobs originating from Connected Sheets
AND job_id LIKE 'sheets_dataconnector%'
-- Filter for completed jobs
AND state = 'DONE'
AND (statement_type IS NULL OR statement_type <> 'SCRIPT')
GROUP BY
1
ORDER BY
total_bytes_billed DESC;
Remplacez REGION_NAME par la région de votre projet.
Exemple :region-us
Le résultat doit ressembler à ce qui suit :
+---------------------+---------------+--------------------+-----------------+ | user_email | total_queries | total_bytes_billed | total_slot_ms | +---------------------+---------------+--------------------+-----------------+ | alice@example.com | 152 | 12000000000 | 3500000 | | bob@example.com | 45 | 8500000000 | 2100000 | | charles@example.com | 210 | 1100000000 | 1800000 | +---------------------+---------------+--------------------+-----------------+
Rechercher les journaux de jobs des requêtes de feuilles connectées au niveau de l'organisation
La requête suivante fournit un journal détaillé de chaque requête individuelle exécutée par les feuilles connectées. Ces informations sont utiles pour l'audit et l'identification de requêtes spécifiques à coût élevé.
SELECT
job_id,
creation_time,
user_email,
project_id,
total_bytes_billed,
total_slot_ms,
query
FROM
`region-REGION_NAME.INFORMATION_SCHEMA.JOBS_BY_ORGANIZATION`
WHERE
creation_time >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 30 DAY)
AND job_id LIKE 'sheets_dataconnector%'
AND state = 'DONE'
AND (statement_type IS NULL OR statement_type <> 'SCRIPT')
ORDER BY
creation_time DESC;
Remplacez REGION_NAME par la région de votre projet.
Exemple :region-us
Le résultat doit ressembler à ce qui suit :
+---------------------------------+---------------------------------+-----------------+------------+--------------------+---------------+--------------------------------+ | job_id | creation_time | user_email | project_id | total_bytes_billed | total_slot_ms | query | +---------------------------------+---------------------------------+-----------------+------------+--------------------+---------------+--------------------------------+ | sheets_dataconnector_bquxjob_1 | 2025-11-06 00:26:53.077000 UTC | abc@example.com | my_project | 12000000000 | 3500000 | SELECT ... FROM dataset.table1 | | sheets_dataconnector_bquxjob_2 | 2025-11-06 00:24:04.294000 UTC | xyz@example.com | my_project | 8500000000 | 2100000 | SELECT ... FROM dataset.table2 | | sheets_dataconnector_bquxjob_3 | 2025-11-03 23:17:25.975000 UTC | bob@example.com | my_project | 1100000000 | 1800000 | SELECT ... FROM dataset.table3 | +---------------------------------+---------------------------------+-----------------+------------+--------------------+---------------+--------------------------------+