Vue JOBS_TIMELINE_BY_FOLDER
La vue INFORMATION_SCHEMA.JOBS_TIMELINE_BY_FOLDER
contient les métadonnées BigQuery en temps quasi réel par tranche horaire pour tous les jobs soumis dans le dossier parent du projet actuel, y compris les jobs des sous-dossiers qu'il contient.
Cette vue contient les jobs en cours et les jobs terminés.
Autorisations requises
Pour interroger la vue INFORMATION_SCHEMA.JOBS_TIMELINE_BY_FOLDER
, vous devez disposer de l'autorisation Identity and Access Management (IAM) bigquery.jobs.listAll
pour le dossier parent. Chacun des rôles IAM prédéfinis suivants inclut l'autorisation requise:
- Administrateur de dossier
- BigQuery Admin
Pour plus d'informations sur les autorisations BigQuery, consultez la page Contrôle des accès avec IAM.
Schéma
Lorsque vous lancez une requête sur les vues INFORMATION_SCHEMA.JOBS_TIMELINE_BY_*
, les résultats de la requête contiennent une ligne pour chaque seconde d'exécution de chaque tâche BigQuery. Chaque période commence à un intervalle d'une seconde et dure exactement une seconde.
La vue INFORMATION_SCHEMA.JOBS_TIMELINE_BY_*
présente le schéma suivant :
Nom de la colonne | Type de données | Valeur |
---|---|---|
period_start |
TIMESTAMP |
Heure de début de la période. |
period_slot_ms |
INTEGER |
Emplacements de millisecondes consommés au cours de la période. |
project_id |
STRING |
(Colonne de mise en cluster) ID du projet. |
project_number |
INTEGER |
Numéro du projet |
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 `[1, 2, 3]`, le dossier `1` contient immédiatement le projet, le dossier `2` contient le `1` et le dossier `3` contient `2`. |
user_email |
STRING |
(Colonne de mise en cluster) Adresse e-mail ou compte de service de l'utilisateur ayant exécuté la tâche. |
job_id |
STRING |
ID de la tâche. Par exemple, bquxjob_1234 . |
job_type |
STRING |
Type de la tâche. Il peut s'agir de QUERY , LOAD , EXTRACT , COPY ou null . Le type de tâche null indique une tâche interne, telle que l'évaluation d'une instruction de tâche de script ou l'actualisation d'une vue matérialisée. |
statement_type |
STRING |
Type d'instruction de requête, si celui-ci est valide. Par exemple, SELECT , INSERT , UPDATE ou DELETE . |
priority |
STRING |
Priorité de cette tâche. Les valeurs autorisées sont INTERACTIVE et BATCH . |
parent_job_id |
STRING |
ID de la tâche parente (le cas échéant). |
job_creation_time |
TIMESTAMP |
(Colonne de partitionnement) Heure de création de la tâche. Le partitionnement est basé sur l'heure UTC de l'horodatage. |
job_start_time |
TIMESTAMP |
Heure de début de la tâche. |
job_end_time |
TIMESTAMP |
Heure de fin de la tâche. |
state |
STRING |
État d'exécution de la tâche à la fin de la période. Les états valides sont les suivants : PENDING , RUNNING et DONE . |
reservation_id |
STRING |
Nom de la réservation principale attribuée à la tâche à la fin de la période, le cas échéant. |
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. |
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. |
total_bytes_processed |
INTEGER |
Nombre total d'octets traités par la tâche. |
error_result |
RECORD |
Détails de l'erreur (le cas échéant) en tant que
ErrorProto.
. |
cache_hit |
BOOLEAN |
Indique si les résultats de requête de cette tâche ont été mis en cache. |
period_shuffle_ram_usage_ratio |
FLOAT |
Taux d'utilisation du brassage au cours de la période sélectionnée. |
period_estimated_runnable_units |
INTEGER |
Unités de travail pouvant être planifiées immédiatement dans cette période. Des emplacements supplémentaires pour ces unités de travail accélèrent votre requête, à condition qu'aucune autre requête de la réservation n'ait besoin d'emplacements supplémentaires. |
transaction_id |
STRING |
ID de la transaction dans laquelle ce job a été exécuté, le cas échéant. (Aperçu) |
Conservation des données
Cette vue contient les jobs en cours d'exécution et l'historique des jobs sur les 180 derniers jours.
Champ d'application et syntaxe
Les requêtes exécutées sur cette vue doivent inclure un qualificatif de région. Si vous ne spécifiez pas de qualificatif de région, les métadonnées sont extraites de toutes les régions. 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_TIMELINE_BY_FOLDER |
Niveau Projet | 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`
.
Exemples
Les exemples suivants montrent comment interroger la vue INFORMATION_SCHEMA.JOBS_TIMELINE_BY_FOLDER
.
Obtenir le nombre de jobs uniques
La requête suivante affiche le nombre de jobs uniques exécutés par minute dans le dossier du projet désigné :
SELECT TIMESTAMP_TRUNC(period_start, MINUTE) AS per_start, COUNT(DISTINCT job_id) AS unique_jobs FROM `region-us`.INFORMATION_SCHEMA.JOBS_TIMELINE_BY_FOLDER, UNNEST(folder_numbers) f WHERE my_folder_number = f GROUP BY per_start ORDER BY per_start DESC;
Le résultat ressemble à ce qui suit :
+---------------------------+---------------------------------+ | per_start | unique_jobs | +---------------------------+---------------------------------+ | 2019-10-10 00:04:00 UTC | 5 | | 2019-10-10 00:03:00 UTC | 2 | | 2019-10-10 00:02:00 UTC | 3 | | 2019-10-10 00:01:00 UTC | 4 | | 2019-10-10 00:00:00 UTC | 4 | +---------------------------+---------------------------------+
Calculer la durée d'utilisation des emplacements
La requête suivante affiche le temps d'utilisation des minutes par minute dans le dossier du projet désigné :
SELECT TIMESTAMP_TRUNC(period_start, MINUTE) AS per_start, SUM(period_slot_ms) AS slot_ms FROM `region-us`.INFORMATION_SCHEMA.JOBS_TIMELINE_BY_FOLDER, UNNEST(folder_numbers) f WHERE my_folder_number = f AND reservation_id = "my reservation id" AND statement_type != "SCRIPT" GROUP BY per_start ORDER BY per_start DESC;
Le résultat ressemble à ce qui suit :
+---------------------------+---------------------------------+ | per_start | slot_ms | +---------------------------+---------------------------------+ | 2019-10-10 00:04:00 UTC | 500 | | 2019-10-10 00:03:00 UTC | 1000 | | 2019-10-10 00:02:00 UTC | 3000 | | 2019-10-10 00:01:00 UTC | 4000 | | 2019-10-10 00:00:00 UTC | 4000 | +---------------------------+---------------------------------+