Vue RESERVATIONS
La vue INFORMATION_SCHEMA.RESERVATIONS
contient une liste en quasi-temps réel de toutes les réservations en cours dans le projet d'administration. Chaque ligne représente une seule réservation en cours. Une réservation en cours est une réservation qui n'a pas été supprimée. Pour en savoir plus sur la réservation, consultez la section Présentation des réservations.
Autorisation requise
Pour interroger la vue INFORMATION_SCHEMA.RESERVATIONS
, 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:
roles/bigquery.resourceAdmin
roles/bigquery.resourceEditor
roles/bigquery.resourceViewer
roles/bigquery.user
roles/bigquery.admin
Pour plus d'informations sur les autorisations BigQuery, consultez la page Contrôle des accès avec IAM.
Schéma
La vue INFORMATION_SCHEMA.RESERVATIONS
présente le schéma suivant :
Nom de la colonne | Type de données | Valeur |
---|---|---|
ddl |
STRING |
Instruction LDD utilisée pour créer la réservation. |
project_id |
STRING |
ID du projet d'administration. |
project_number |
INTEGER |
Numéro du projet d'administration. |
reservation_name |
STRING |
Nom de réservation fourni par l'utilisateur. |
ignore_idle_slots |
BOOL |
Si la valeur est définie sur "false", toute requête utilisant cette réservation peut exploiter des emplacements inactifs provenant d'autres engagements de capacité. |
slot_capacity |
INTEGER |
Référence de la réservation. |
target_job_concurrency |
INTEGER |
Nombre cible de requêtes pouvant être exécutées simultanément, qui est limité par les ressources disponibles. Si ce nombre est égal à zéro, la valeur est calculée automatiquement en fonction des ressources disponibles. |
autoscale |
STRUCT |
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. |
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.RESERVATIONS[_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
: tout nom de région d'ensemble de données.
Par exemple, `region-us`
.
Effectuer une jointure entre les vues de réservations et les vues de tâches
Les vues de tâches contiennent la colonne reservation_id
. Si votre tâche a été exécutée dans un projet auquel une réservation est attribuée, reservation_id
doit respecter le format suivant : reservation-admin-project:reservation-location.reservation-name
.
Pour effectuer une jointure entre les vues de réservation et les vues de tâche, vous pouvez procéder entre la colonne reservation_id
des vues de tâche et les colonnes de vues de réservation project_id
et reservation_name
. L'exemple suivant montre comment utiliser la clause JOIN
entre les vues de réservation et de tâche.
Exemple
L'exemple suivant montre l'utilisation des emplacements, la capacité d'emplacements et la réservation attribuée pour un projet avec une attribution de réservation, au cours de l'heure précédente. L'utilisation des emplacements est indiquée en unités d'emplacements de millisecondes par seconde.
WITH job_data AS ( SELECT job.period_start, job.reservation_id, job.period_slot_ms, job.job_id, job.job_type FROM `my-project.region-us`.INFORMATION_SCHEMA.JOBS_TIMELINE AS job WHERE job.period_start > TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 HOUR)) SELECT reservation.reservation_name AS reservation_name, job.period_start, reservation.slot_capacity, job.period_slot_ms, job.job_id, job.job_type FROM job_data AS job INNER JOIN `reservation-admin-project.region-us`.INFORMATION_SCHEMA.RESERVATIONS AS reservation ON (job.reservation_id = CONCAT(reservation.project_id, ":", "US", ".", reservation.reservation_name));
Le résultat ressemble à ce qui suit :
+------------------+---------------------+---------------+----------------+------------------+----------+
| reservation_name | period_start | slot_capacity | period_slot_ms | job_id | job_type |
+------------------+---------------------+---------------+----------------+------------------+----------+
| my_reservation | 2021-04-30 17:30:54 | 100 | 11131 | bquxjob_66707... | QUERY |
| my_reservation | 2021-04-30 17:30:55 | 100 | 49978 | bquxjob_66707... | QUERY |
| my_reservation | 2021-04-30 17:30:56 | 100 | 9038 | bquxjob_66707... | QUERY |
| my_reservation | 2021-04-30 17:30:57 | 100 | 17237 | bquxjob_66707... | QUERY |
Cette requête utilise la vue RESERVATIONS
pour obtenir des informations sur une réservation. Si les réservations ont été modifiées au cours de l'heure précédente, la colonne reservation_slot_capacity
peut ne pas être exacte.
La requête joint RESERVATIONS
à JOBS_TIMELINE
pour associer les tranches horaires de la tâche aux informations de réservation.