Vue RESERVATIONS_TIMELINE
La vue INFORMATION_SCHEMA.RESERVATIONS_TIMELINE
affiche les métadonnées de réservation en temps quasi réel pour chaque projet d'administration de réservation et pour chaque minute. Pour comparer l'utilisation de l'emplacement à la capacité d'emplacement, vous pouvez combiner les informations de réservation avec la chronologie des tâches à l'aide de la vue de chronologie de réservation.
Schéma
Lorsque vous interrogez les vues INFORMATION_SCHEMA.RESERVATIONS_TIMELINE_BY_*
, les résultats de la requête contiennent une ligne pour chaque minute de chaque réservation BigQuery au cours des 180 derniers jours, et une ligne pour chaque minute avec des modifications de réservation pour toutes les occurrences datant de plus de 180 jours. Chaque période commence à un intervalle d'une minute et dure exactement une minute.
La vue INFORMATION_SCHEMA.RESERVATIONS_TIMELINE_BY_PROJECT
présente le schéma suivant :
Nom de la colonne | Type de données | Valeur |
---|---|---|
period_start |
TIMESTAMP |
Heure de début de cette période d'une minute. |
project_id |
STRING |
ID du projet d'administration de la réservation. |
project_number |
INTEGER |
Numéro du projet |
reservation_name |
STRING |
Nom de la réservation. |
ignore_idle_slots |
BOOL |
"False" si le partage d'emplacements est activé, "True" sinon. |
slots_assigned |
INTEGER |
Nombre d'emplacements attribués à cette réservation. |
slots_max_assigned |
INTEGER |
Capacité d'emplacements maximale pour cette réservation, y compris le partage d'emplacements. Si ignore_idle_slots est défini sur "True", ce champ est identique à slots_assigned . Sinon, il s'agit du nombre total d'emplacements dans tous les engagements de capacité du projet d'administration. |
autoscale |
STRUCT |
Informations sur la capacité d'autoscaling de la réservation. Les champs incluent les suivants :
|
reservation_id |
STRING |
Sert à effectuer la jointure avec la table jobs_timeline. La valeur est au format project_id:location.reservation_name. |
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 la portée des régions et des ressources 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.RESERVATIONS_TIMELINE[_BY_PROJECT] |
Niveau Projet | REGION |
- Facultatif :
PROJECT_ID
: ID de votre projet Google Cloud. Si non spécifié, le projet par défaut est utilisé.
REGION
: nom de la région de l'ensemble de données.
Par exemple, region-us
.
Exemples
Exemple : Afficher l'utilisation totale des emplacements par minute
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_TIMELINE_BY_ORGANIZATION
`myproject`.`region-us`.INFORMATION_SCHEMA.JOBS_TIMELINE_BY_ORGANIZATION
.
L'exemple suivant montre l'utilisation des emplacements par minute pour les projets attribués à YOUR_RESERVATION_ID
pour l'ensemble des tâches :
SELECT res.period_start, SUM(jobs.period_slot_ms) / 1000 / 60 AS period_slot_minutes, ANY_VALUE(res.slots_assigned) AS slot_assigned, ANY_VALUE(res.slots_max_assigned) AS slots_max_assigned FROM `region-us`.INFORMATION_SCHEMA.JOBS_TIMELINE_BY_ORGANIZATION jobs JOIN `region-us`.INFORMATION_SCHEMA.RESERVATIONS_TIMELINE res ON TIMESTAMP_TRUNC(jobs.period_start, MINUTE) = res.period_start AND jobs.reservation_id = res.reservation_id WHERE jobs.job_creation_time BETWEEN TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 DAY) AND CURRENT_TIMESTAMP() AND res.reservation_id = 'YOUR_RESERVATION_ID' AND (jobs.statement_type != "SCRIPT" OR jobs.statement_type IS NULL) -- Avoid duplicate byte counting in parent and children jobs. GROUP BY period_start ORDER BY period_start DESC;
Le résultat ressemble à ce qui suit :
+-----------------------+---------------------+---------------+-------------------+ | period_start | period_slot_minutes | slots_assigned| slots_max_assigned| +-----------------------+---------------------+---------------+-------------------+ |2021-06-08 21:33:00 UTC| 100.000 | 100 | 100 | |2021-06-08 21:32:00 UTC| 96.753 | 100 | 100 | |2021-06-08 21:31:00 UTC| 41.668 | 100 | 100 | +-----------------------+---------------------+---------------+-------------------+
Exemple : Utilisation des emplacements par réservation
L'exemple suivant montre l'utilisation des emplacements par minute pour chaque réservation au cours du dernier jour :
SELECT res.period_start, res.reservation_id, SUM(jobs.period_slot_ms) / 1000 / 60 AS period_slot_minutes, ANY_VALUE(res.slots_assigned) AS slots_assigned, ANY_VALUE(res.slots_max_assigned) AS slots_max_assigned, FROM `region-us`.INFORMATION_SCHEMA.JOBS_TIMELINE_BY_ORGANIZATION jobs JOIN `region-us`.INFORMATION_SCHEMA.RESERVATIONS_TIMELINE res ON TIMESTAMP_TRUNC(jobs.period_start, MINUTE) = res.period_start AND jobs.reservation_id = res.reservation_id WHERE jobs.job_creation_time BETWEEN TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 DAY) AND CURRENT_TIMESTAMP() AND (jobs.statement_type != "SCRIPT" OR jobs.statement_type IS NULL) -- Avoid duplicate byte counting in parent and children jobs. GROUP BY period_start, reservation_id ORDER BY period_start DESC, reservation_id;
Le résultat ressemble à ce qui suit :
+-----------------------+----------------+---------------------+---------------+--------------------+ | period_start | reservation_id | period_slot_minutes | slot_assigned | slots_max_assigned | +-----------------------+----------------+---------------------+---------------+--------------------+ |2021-06-08 21:33:00 UTC| prod01 | 100.000 | 100 | 100 | |2021-06-08 21:33:00 UTC| prod02 | 177.201 | 200 | 500 | |2021-06-08 21:32:00 UTC| prod01 | 96.753 | 100 | 100 | |2021-06-08 21:32:00 UTC| prod02 | 182.329 | 200 | 500 | +-----------------------+----------------+---------------------+---------------+--------------------+