Referência da tabela do sistema de eventos de armazém
Importante
Esta tabela do sistema está em Public Preview. Para acessar a tabela, o esquema deve ser habilitado em seu catálogo de system
. Para obter mais informações, consulte Habilitar esquemas de tabela do sistema.
Neste artigo, aprende como utilizar a tabela de eventos do sistema dos armazéns para monitorizar e gerir os armazéns SQL nos seus espaços de trabalho. Esta tabela registra uma linha para cada vez que um depósito é iniciado, parado, executado e dimensionado para cima e para baixo. Você pode usar as consultas de exemplo neste artigo com alertas para mantê-lo informado sobre alterações em seus armazéns.
Caminho da tabela: Esta tabela do sistema está localizada em system.compute.warehouse_events
.
Tipos de eventos de armazém registrados
Esta tabela do sistema regista os seguintes tipos de eventos:
-
SCALED_UP
: Um novo cluster foi adicionado ao armazém. -
SCALED_DOWN
: Um cluster foi removido do armazém. -
STOPPING
: O armazém está em processo de paragem. -
RUNNING
: O armazém está em execução ativa. -
STARTING
: O armazém está em processo de arranque. -
STOPPED
: O armazém parou completamente de funcionar.
Esquema de eventos de logística
A tabela do sistema warehouse_events
usa o seguinte esquema:
Nome da coluna | Tipo de dados | Description | Exemplo |
---|---|---|---|
account_id |
string | A ID da conta do Azure Databricks. | 7af234db-66d7-4db3-bbf0-956098224879 |
workspace_id |
string | A ID do espaço de trabalho onde o depósito está implantado. | 123456789012345 |
warehouse_id |
string | A ID do SQL warehouse ao qual o evento está relacionado. | 123456789012345 |
event_type |
string | O tipo de evento de depósito. Os valores possíveis são SCALED_UP , SCALED_DOWN , STOPPING , RUNNING , STARTING e STOPPED . |
SCALED_UP |
cluster_count |
integer | O número de clusters que estão em execução ativa. | 2 |
event_time |
carimbo de data/hora | Carimbo de data/hora de quando o evento ocorreu em UTC. | 2023-07-20T19:13:09.504Z |
Consultas de amostra
As consultas de exemplo a seguir são modelos. Insira os valores que façam sentido para a sua organização. Você também pode adicionar alertas a essas consultas para ajudá-lo a se manter informado sobre as alterações em seus armazéns. Consulte Criar um alerta.
Use as seguintes consultas de exemplo para obter informações sobre o comportamento do depósito:
- Quais armazéns estão funcionando ativamente e por quanto tempo?
- Identificar armazéns que são escalonados por mais tempo do que o esperado
- Armazéns que começam pela primeira vez
- Investigar cobranças de faturamento
- Que armazéns não foram utilizados nos últimos 30 dias?
- Armazéns com maior tempo de atividade em um mês
- Armazéns que passaram mais tempo escalonados durante um mês
Quais armazéns estão funcionando ativamente e por quanto tempo?
Essa consulta identifica quais armazéns estão ativos no momento, juntamente com seu tempo de execução em 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
)
Oportunidade de alerta: como administrador de um espaço de trabalho, você pode querer ser alertado se um depósito estiver funcionando mais do que o esperado. Por exemplo, você pode usar os resultados da consulta para definir uma condição de alerta para disparar quando as horas de execução excederem um determinado limite.
Identificar armazéns que são escalonados por mais tempo do que o esperado
Essa consulta identifica quais armazéns estão ativos no momento, juntamente com seu tempo de execução em 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
)
Oportunidade de alerta: Alertar sobre essa condição pode ajudá-lo a monitorar recursos e custos. Você pode definir um alerta para quando as horas escalonadas excederem um determinado limite.
Armazéns que começam pela primeira vez
Esta consulta informa sobre novos armazéns que estão começando pela primeira 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
)
Oportunidade de alerta: alertar sobre novos armazéns pode ajudar sua organização a rastrear a alocação de recursos. Por exemplo, você pode definir um alerta que é acionado sempre que um novo depósito é iniciado.
Investigar cobranças de faturamento
Se quiser entender especificamente o que um armazém estava a fazer para gerar cobranças, esta consulta pode indicar as datas e horas exatas em que o armazém aumentou ou diminuiu, ou começou e parou.
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
Que armazéns não foram utilizados nos últimos 30 dias?
Esta consulta ajuda-o a identificar recursos não utilizados, proporcionando uma oportunidade de otimização de custos.
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
Oportunidade de alerta: Receber um alerta sobre recursos não utilizados pode ajudar sua organização a otimizar custos. Por exemplo, você pode definir um alerta que é acionado quando a consulta deteta um depósito não utilizado.
Armazéns com maior tempo de atividade em um mês
Esta consulta mostra quais armazéns foram mais usados durante um mês específico. Esta consulta usa julho como exemplo.
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
Oportunidade de alerta: talvez você queira acompanhar os armazéns de alta utilização. Por exemplo, você pode definir um alerta que é acionado quando as horas de tempo de atividade de um depósito excedem um limite específico.
Armazéns que passaram mais tempo escalonados durante um mês
Esta consulta informa sobre armazéns que passaram um tempo significativo no estado escalonado durante um mês. Esta consulta usa julho como exemplo.
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
Oportunidade de alerta: talvez você queira acompanhar os armazéns de alta utilização. Por exemplo, você pode definir um alerta que é acionado quando as horas de tempo de atividade de um depósito excedem um limite específico.