Vista RESERVATIONS_TIMELINE

En la vista INFORMATION_SCHEMA.RESERVATIONS_TIMELINE, se muestran fragmentos de metadatos de las reservas casi en tiempo real de cada proyecto del administrador de reservas para cada minuto. Para comparar el uso de ranuras con la capacidad de las ranuras, puedes combinar la información de la reserva con el cronograma de trabajos mediante la vista de cronograma de reservas.

Esquema

Cuando consultas las vistas INFORMATION_SCHEMA.RESERVATIONS_TIMELINE_BY_*, los resultados de la consulta contienen una fila por cada minuto de cada reserva de BigQuery en los últimos 180 días y una fila por cada minuto con cambios de reserva para cualquier ocurrencia de más de 180 días. Cada período comienza en un intervalo de un minuto y dura un minuto exacto.

La vista INFORMATION_SCHEMA.RESERVATIONS_TIMELINE_BY_PROJECT tiene el siguiente esquema:

Nombre de la columna Tipo de datos Valor
autoscale STRUCT

Información sobre la capacidad de ajuste de escala automático de la reserva. Los campos incluyen lo siguiente:

  • current_slots es la cantidad de ranuras que se agregaron a la reserva mediante el ajuste de escala automático.
  • max_slots es la cantidad máxima de ranuras que se pueden agregar a la reserva mediante el ajuste de escala automático.
edition STRING Es la edición asociada a esta reserva. Para obtener más información sobre las ediciones, consulta Introducción a las ediciones de BigQuery.
ignore_idle_slots BOOL Falso si el uso compartido de ranuras está habilitado; de lo contrario, es verdadero.
period_start TIMESTAMP Es la hora de inicio de este período de un minuto.
project_id STRING Es el ID del proyecto de administrador de reservas.
project_number INTEGER Es el número del proyecto.
reservation_id STRING Para unirse con la tabla jobs_timeline. Tiene el formato project_id:location.reservation_name.
reservation_name STRING Es el nombre de la reserva.
slots_assigned INTEGER La cantidad de ranuras asignadas a esta reserva.
slots_max_assigned INTEGER La capacidad máxima de la ranura para esta reserva, incluido el uso compartido de ranuras. Si ignore_idle_slots es verdadero, es igual a slots_assigned; de lo contrario, es la cantidad total de ranuras en todos los compromisos de capacidad del proyecto de administración.

Permiso y sintaxis

Las consultas realizadas a esta vista deben incluir un calificador de región. Si no especificas un calificador regional, los metadatos se recuperan de todas las regiones. En la siguiente tabla, se explica el alcance de la región y los recursos para esta vista:

Nombre de la vista Permiso del recurso Permiso de la región
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.RESERVATIONS_TIMELINE[_BY_PROJECT] Nivel de proyecto REGION
Reemplaza lo siguiente:

  • Opcional: PROJECT_ID: el ID del proyecto de Google Cloud. Si no se especifica, se usa el proyecto predeterminado.

  • REGION: Cualquier nombre de región del conjunto de datos. Por ejemplo, `region-us`.

  • Ejemplos

    Ejemplo: Consulta el uso total de ranuras por minuto

    Para ejecutar la consulta en un proyecto que no sea el predeterminado, agrega el ID del proyecto con el siguiente formato:

    `PROJECT_ID`.`region-REGION_NAME`.INFORMATION_SCHEMA.JOBS_TIMELINE_BY_ORGANIZATION
    . Por ejemplo, `myproject`.`region-us`.INFORMATION_SCHEMA.JOBS_TIMELINE_BY_ORGANIZATION.

    En el siguiente ejemplo, se muestra el uso de ranuras por minuto de proyectos asignados a YOUR_RESERVATION_ID en todos los trabajos:

    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;

    El resultado es similar al siguiente:

    +-----------------------+---------------------+---------------+-------------------+
    |     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        |
    +-----------------------+---------------------+---------------+-------------------+
    

    Ejemplo: Uso de ranuras por reserva

    En el siguiente ejemplo, se muestra el uso de ranuras por minuto para cada reserva en el último día:

    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;

    El resultado es similar al siguiente:

    +-----------------------+----------------+---------------------+---------------+--------------------+
    |     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         |
    +-----------------------+----------------+---------------------+---------------+--------------------+