Referencia de tabla del sistema eventos de almacenamiento
Importante
Esta tabla del sistema está en versión preliminar pública. Para acceder a la tabla, el esquema debe estar habilitado en el catálogo system
. Para obtener más información, consulte Habilitación de esquemas de tabla del sistema.
En este artículo, aprenderá a usar la tabla del sistema de eventos de almacenamiento para supervisar y administrar los almacenes de SQL en las áreas de trabajo. Esta tabla registra una fila cada vez que se inicia, detiene, ejecuta y escala verticalmente un almacén. Puede usar las consultas de ejemplo de este artículo con alertas para mantener informado de los cambios en los almacenes.
Ruta de acceso de tabla: esta tabla del sistema se encuentra en system.compute.warehouse_events
.
Tipos de eventos de almacenamiento registrados
Esta tabla del sistema registra los siguientes tipos de eventos:
SCALED_UP
: se agregó un nuevo clúster al almacén.SCALED_DOWN
: se quitó un clúster del almacén.STOPPING
: el almacén está en proceso de detención.RUNNING
: el almacén se está ejecutando activamente.STARTING
: el almacén está en proceso de arranque.STOPPED
: el almacén ha dejado de funcionar completamente.
Esquema de eventos de almacenamiento
La tabla del sistema warehouse_events
usa el siguiente esquema:
Nombre de la columna | Tipo de datos | Descripción | Ejemplo |
---|---|---|---|
account_id |
cadena | Identificador de la cuenta de Azure Databricks. | 7af234db-66d7-4db3-bbf0-956098224879 |
workspace_id |
string | El identificador del área de trabajo donde se implementa el almacenamiento. | 123456789012345 |
warehouse_id |
string | El identificador del almacén de SQL al que está relacionado el evento. | 123456789012345 |
event_type |
string | Tipo de evento de almacenamiento. Los valores posibles son SCALED_UP , SCALED_DOWN , STOPPING , RUNNING , STARTING y STOPPED . |
SCALED_UP |
cluster_count |
integer | Número de clústeres que se están ejecutando activamente. | 2 |
event_time |
timestamp | Marca de tiempo de cuándo tuvo lugar el evento en UTC. | 2023-07-20T19:13:09.504Z |
Consultas de ejemplo
Las siguientes consultas de ejemplo son plantillas. Introduzca cualquier valor que tenga sentido para su organización. También puede agregar alertas a estas consultas para ayudarle a mantenerse informado sobre los cambios en los almacenes. Consulte Creación de una alerta.
Use las siguientes consultas de ejemplo para obtener información sobre el comportamiento del almacenamiento:
- ¿Qué almacenes se están ejecutando activamente y durante cuánto tiempo?
- Identificar almacenes que se escalan más tiempo de lo esperado
- Almacenes que arrancan por primera vez
- Investigar los cargos de facturación
- ¿Qué almacenes no se han usado en los últimos 30 días?
- Almacenes con más tiempo de actividad en un mes
- Almacenes que más tiempo dedicaron al escalado durante un mes
¿Qué almacenes se están ejecutando activamente y durante cuánto tiempo?
Esta consulta identifica qué almacenes están activos actualmente junto con su tiempo de ejecución en horas.
USE CATALOG `system`;
SELECT
we.warehouse_id,
we.event_time,
TIMESTAMPDIFF(MINUTE, we.event_time, CURRENT_TIMESTAMP()) / 60.0 AS running_hours,
we.cluster_count
FROM
compute.warehouse_events we
WHERE
we.event_type = 'RUNNING'
AND NOT EXISTS (
SELECT 1
FROM compute.warehouse_events we2
WHERE we2.warehouse_id = we.warehouse_id
AND we2.event_time > we.event_time
)
Oportunidad de alerta: como administrador del área de trabajo, es posible que desee recibir alertas si un almacenamiento se está ejecutando más de lo esperado. Por ejemplo, puede usar los resultados de la consulta para establecer una condición de alerta que se desencadene cuando las horas en ejecución superen un umbral determinado.
Identificar almacenes que se escalan más tiempo de lo esperado
Esta consulta identifica qué almacenes están activos actualmente junto con su tiempo de ejecución en horas.
use catalog `system`;
SELECT
we.warehouse_id,
we.event_time,
TIMESTAMPDIFF(MINUTE, we.event_time, CURRENT_TIMESTAMP()) / 60.0 AS upscaled_hours,
we.cluster_count
FROM
compute.warehouse_events we
WHERE
we.event_type = 'SCALED_UP'
AND we.cluster_count >= 2
AND NOT EXISTS (
SELECT 1
FROM compute.warehouse_events we2
WHERE we2.warehouse_id = we.warehouse_id
AND (
(we2.event_type = 'SCALED_DOWN') OR
(we2.event_type = 'SCALED_UP' AND we2.cluster_count < 2)
)
AND we2.event_time > we.event_time
)
Oportunidad de alerta: las alertas sobre esta condición pueden ayudarle a supervisar los recursos y el costo. Puede establecer una alerta para cuando las horas de escalado superen un determinado límite.
Almacenes que arrancan por primera vez
Esta consulta le informa sobre los nuevos almacenes que arrancan por primera vez.
use catalog `system`;
SELECT
we.warehouse_id,
we.event_time,
we.cluster_count
FROM
compute.warehouse_events we
WHERE
(we.event_type = 'STARTING' OR we.event_type = 'RUNNING')
AND NOT EXISTS (
SELECT 1
FROM compute.warehouse_events we2
WHERE we2.warehouse_id = we.warehouse_id
AND we2.event_time < we.event_time
)
Oportunidad de alerta: las alertas sobre nuevos almacenes pueden ayudar a su organización a realizar un seguimiento de la asignación de recursos. Por ejemplo, podría establecer una alerta que se desencadene cada vez que arranque un nuevo almacenamiento.
Investigar los cargos de facturación
Si desea comprender específicamente lo que hacía un almacén para generar cargos de facturación, esta consulta puede indicarle las fechas y horas exactas de escalado o reducción vertical del almacén, o bien en que se puso en marcha o se detuvo.
use catalog `system`;
SELECT
we.warehouse_id AS warehouse_id,
we.event_type AS event,
we.event_time AS event_time,
we.cluster_count AS cluster_count
FROM
compute.warehouse_events AS we
WHERE
we.event_type IN (
'STARTING', 'RUNNING', 'STOPPING', 'STOPPED',
'SCALING_UP', 'SCALED_UP', 'SCALING_DOWN', 'SCALED_DOWN'
)
AND MONTH(we.event_time) = 7
AND YEAR(we.event_time) = YEAR(CURRENT_DATE())
AND we.warehouse_id = '19c9d68652189278'
ORDER BY
event_time DESC
¿Qué almacenes no se han usado en los últimos 30 días?
Esta consulta le ayuda a identificar los recursos no utilizados, lo que proporciona una oportunidad para la optimización de costos.
use catalog `system`;
SELECT
we.warehouse_id,
we.event_time,
we.event_type,
we.cluster_count
FROM
compute.warehouse_events AS we
WHERE
we.warehouse_id IN (
SELECT DISTINCT
warehouse_id
FROM
compute.warehouse_events
WHERE
MONTH(event_time) = 6
AND YEAR(event_time) = YEAR(CURRENT_DATE())
)
AND we.warehouse_id NOT IN (
SELECT DISTINCT
warehouse_id
FROM
compute.warehouse_events
WHERE
MONTH(event_time) = 7
AND YEAR(event_time) = YEAR(CURRENT_DATE())
)
ORDER BY
event_time DESC
Oportunidad de alerta: recibir una alerta sobre recursos no utilizados podría ayudar a su organización a optimizar los costos. Por ejemplo, podría establecer una alerta que se desencadene cuando la consulta detecte un almacenamiento sin usar.
Almacenes con más tiempo de actividad en un mes
Esta consulta muestra qué almacenes se han usado más durante un mes específico. Esta consulta usa julio como ejemplo.
use catalog `system`;
SELECT
warehouse_id,
SUM(TIMESTAMPDIFF(MINUTE, start_time, end_time)) / 60.0 AS uptime_hours
FROM (
SELECT
starting.warehouse_id,
starting.event_time AS start_time,
(
SELECT
MIN(stopping.event_time)
FROM
compute.warehouse_events AS stopping
WHERE
stopping.warehouse_id = starting.warehouse_id
AND stopping.event_type = 'STOPPED'
AND stopping.event_time > starting.event_time
) AS end_time
FROM
compute.warehouse_events AS starting
WHERE
starting.event_type = 'STARTING'
AND MONTH(starting.event_time) = 7
AND YEAR(starting.event_time) = YEAR(CURRENT_DATE())
) AS warehouse_uptime
WHERE
end_time IS NOT NULL
GROUP BY
warehouse_id
ORDER BY
uptime_hours DESC
Oportunidad de alerta: es posible que desee realizar un seguimiento de los almacenes de uso elevado. Por ejemplo, podría establecer una alerta que se desencadene cuando las horas de tiempo de actividad de un almacén superen un umbral específico.
Almacenes que más tiempo dedicaron al escalado durante un mes
Esta consulta le informa sobre los almacenes que han invertido mucho tiempo en el estado de escalado vertical durante un mes. Esta consulta usa julio como ejemplo.
use catalog `system`;
SELECT
warehouse_id,
SUM(TIMESTAMPDIFF(MINUTE, upscaled_time, downscaled_time)) / 60.0 AS upscaled_hours
FROM (
SELECT
upscaled.warehouse_id,
upscaled.event_time AS upscaled_time,
(
SELECT
MIN(downscaled.event_time)
FROM
compute.warehouse_events AS downscaled
WHERE
downscaled.warehouse_id = upscaled.warehouse_id
AND (downscaled.event_type = 'SCALED_DOWN' OR downscaled.event_type = 'STOPPED')
AND downscaled.event_time > upscaled.event_time
) AS downscaled_time
FROM
compute.warehouse_events AS upscaled
WHERE
upscaled.event_type = 'SCALED_UP'
AND upscaled.cluster_count >= 2
AND MONTH(upscaled.event_time) = 7
AND YEAR(upscaled.event_time) = YEAR(CURRENT_DATE())
) AS warehouse_upscaled
WHERE
downscaled_time IS NOT NULL
GROUP BY
warehouse_id
ORDER BY
upscaled_hours DESC
Oportunidad de alerta: es posible que desee realizar un seguimiento de los almacenes de uso elevado. Por ejemplo, podría establecer una alerta que se desencadene cuando las horas de tiempo de actividad de un almacén superen un umbral específico.