Vue RESERVATIONS_TIMELINE
La vue INFORMATION_SCHEMA.RESERVATIONS_TIMELINE
affiche les tranches horaires des métadonnées de réservation pour chaque projet d'administration de réservation, pour chaque minute en temps réel. De plus, le tableau per_second_details
affiche les détails de l'autoscaling pour chaque seconde.
Autorisation requise
Pour interroger la vue INFORMATION_SCHEMA.RESERVATION_TIMELINE
, vous devez disposer de l'autorisation IAM (Identity and Access Management) bigquery.reservations.list
pour le projet.
Chacun des rôles IAM prédéfinis suivants inclut l'autorisation requise:
- Administrateur de ressources BigQuery (
roles/bigquery.resourceAdmin
) - Éditeur de ressources BigQuery (
roles/bigquery.resourceEditor
) - Lecteur de ressources BigQuery (
roles/bigquery.resourceViewer
) - Utilisateur BigQuery (
roles/bigquery.user
) - Administrateur BigQuery (
roles/bigquery.admin
)
Pour en savoir plus sur les autorisations BigQuery, consultez Rôles et autorisations IAM BigQuery.
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 |
---|---|---|
autoscale |
STRUCT |
Contient des informations sur la capacité d'autoscaling de la réservation. Les champs incluent les suivants :
|
edition |
STRING |
Édition associée à cette réservation. Pour en savoir plus sur les éditions, consultez la page Présentation des éditions BigQuery. |
ignore_idle_slots |
BOOL |
"False" si le partage d'emplacements est activé, "True" sinon. |
labels |
RECORD |
Tableau des libellés associés à la réservation. |
period_start |
TIMESTAMP |
Heure de début de cette période d'une minute. |
per_second_details |
STRUCT |
Contient des informations sur la capacité et l'utilisation des réservations à chaque seconde. Les champs incluent les suivants :
S'il y a des modifications d'autoscaling ou de réservation pendant cette minute, le tableau est rempli de 60 lignes. Toutefois, pour les réservations sans autoscaling qui restent inchangées pendant cette minute, le tableau est vide, car il répéterait sinon le même nombre 60 fois. |
project_id |
STRING |
ID du projet d'administration de la réservation. |
project_number |
INTEGER |
Numéro du projet |
reservation_id |
STRING |
Sert à effectuer la jointure avec la table jobs_timeline. La valeur est au format project_id:location.reservation_name. |
reservation_name |
STRING |
Nom de la réservation. |
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. |
max_slots |
INTEGER |
Nombre maximal d'emplacements que cette réservation peut utiliser, y compris les emplacements de référence (slot_capacity ), les emplacements inactifs (si ignore_idle_slots est défini sur "false") et les emplacements avec autoscaling. Ce champ est spécifié par les utilisateurs pour utiliser la fonctionnalité de prévisibilité des réservations. |
scaling_mode |
STRING |
Mode de scaling de la réservation, qui détermine comment la réservation évolue de la référence à max_slots . Ce champ est spécifié par les utilisateurs pour utiliser la fonctionnalité de prévisibilité des réservations. |
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 |
-
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`
.
Exemples
Exemple : Afficher l'utilisation totale des emplacements par seconde
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 seconde pour les projets attribués à YOUR_RESERVATION_ID
pour l'ensemble des tâches :
SELECT s.start_time AS period_start, SUM(jobs.period_slot_ms) / 1000 AS period_slot_seconds, ANY_VALUE(s.slots_assigned) AS estimated_slots_assigned, ANY_VALUE(s.slots_max_assigned) AS estimated_slots_max_assigned FROM `region-us`.INFORMATION_SCHEMA.JOBS_TIMELINE_BY_ORGANIZATION jobs JOIN `region-us`.INFORMATION_SCHEMA.RESERVATIONS_TIMELINE res ON jobs.reservation_id = res.reservation_id JOIN res.per_second_details s ON jobs.period_start = s.start_time WHERE jobs.job_creation_time BETWEEN TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 DAY) AND CURRENT_TIMESTAMP() AND res.period_start 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_seconds | estimated_slots_assigned | estimated_slots_max_assigned | +-----------------------+---------------------+--------------------------+------------------------------+ |2021-06-08 21:33:59 UTC| 100.000 | 100 | 100 | |2021-06-08 21:33:58 UTC| 96.753 | 100 | 100 | |2021-06-08 21:33:57 UTC| 41.668 | 100 | 100 | +-----------------------+---------------------+--------------------------+------------------------------+
Exemple : Utilisation des emplacements par réservation
L'exemple suivant montre l'utilisation des emplacements par seconde pour chaque réservation au cours du dernier jour :
SELECT s.start_time AS period_start, res.reservation_id, SUM(jobs.period_slot_ms) / 1000 AS period_slot_seconds, ANY_VALUE(res.slots_assigned) AS estimated_slots_assigned, ANY_VALUE(res.slots_max_assigned) AS estimated_slots_max_assigned, FROM `region-us`.INFORMATION_SCHEMA.JOBS_TIMELINE_BY_ORGANIZATION jobs JOIN `region-us`.INFORMATION_SCHEMA.RESERVATIONS_TIMELINE res ON jobs.reservation_id = res.reservation_id JOIN res.per_second_details s ON jobs.period_start = s.start_time WHERE jobs.job_creation_time BETWEEN TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 DAY) AND CURRENT_TIMESTAMP() AND res.period_start 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_seconds | estimated_slots_assigned | estimated_slots_max_assigned | +-----------------------+----------------+---------------------+--------------------------+------------------------------+ |2021-06-08 21:33:59 UTC| prod01 | 100.000 | 100 | 100 | |2021-06-08 21:33:58 UTC| prod02 | 177.201 | 200 | 500 | |2021-06-08 21:32:57 UTC| prod01 | 96.753 | 100 | 100 | |2021-06-08 21:32:56 UTC| prod02 | 182.329 | 200 | 500 | +-----------------------+----------------+---------------------+--------------------------+------------------------------+