Pular para o conteúdo principal

Referência da tabela do sistema de eventos de armazém

info

Visualização

Essa tabela do sistema está em Pré-visualização Pública. Para acessar a tabela, o esquema deve estar habilitado em seu catálogo system. Para obter mais informações, consulte Habilitar esquemas de tabelas do sistema.

Neste artigo, você aprenderá a usar a tabela do sistema de eventos do warehouse para monitorar e gerenciar os SQL warehouses em seus workspaces. Essa tabela registra uma linha para cada vez que um warehouse é iniciado, parado, executado e aumentado ou diminuído. Você pode usar os exemplos de consultas neste artigo com alertas para se manter informado sobre alterações em seus warehouses.

Caminho da tabela : Essa tabela do sistema está localizada em system.compute.warehouse_events.

tipos de eventos do depósito de registros

Esta tabela do sistema registra os seguintes tipos de eventos:

  • SCALED_UP: Um novo cluster foi adicionado ao warehouse.
  • SCALED_DOWN: Um cluster foi removido do warehouse.
  • STOPPING: O warehouse em processo de parada.
  • RUNNING: O warehouse está em execução ativa.
  • STARTING: O warehouse está em processo de inicialização.
  • STOPPED: O warehouse parou de funcionar completamente.

Esquema de eventos de armazém

A tabela do sistema warehouse_events usa o seguinte esquema:

Nome da coluna

Tipo de dados

Descrição

Exemplo

account_id

string

A ID da conta da Databricks.

7af234db-66d7-4db3-bbf0-956098224879

workspace_id

string

A ID do workspace onde o warehouse 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 warehouse. Os valores possíveis são SCALED_UP, SCALED_DOWN, STOPPING, RUNNING, STARTING e STOPPED.

SCALED_UP

cluster_count

inteiro

O número de clusters que estão em execução ativa.

2

event_time

carimbo de data/hora

Data e hora de quando o evento ocorreu em UTC.

2023-07-20T19:13:09.504Z

Exemplos de consultas

Os exemplos de consultas a seguir são padrão. Insira quaisquer valores que façam sentido para sua organização. O senhor também pode adicionar alertas a essas consultas para ajudá-lo a se manter informado sobre as alterações nos armazéns. Consulte Criar um alerta.

Use os exemplos de consultas a seguir para obter entendimento sobre o comportamento do warehouse:

Quais armazéns estão funcionando ativamente e por quanto tempo?

Essa consulta identifica quais warehouses estão ativos no momento, juntamente com seu tempo de execução em horas.

SQL
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 workspaces, você pode querer ser alertado se um warehouse estiver funcionando por mais tempo do que o esperado. Por exemplo, você pode usar os resultados da consulta para definir uma condição de alerta a ser acionada quando as horas de funcionamento excederem um determinado limite.

Identifique armazéns que são ampliados por mais tempo do que o esperado

Essa consulta identifica quais warehouses estão ativos no momento, juntamente com seu tempo de execução em horas.

SQL
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 : o alerta sobre essa condição pode ajudar você a monitorar recursos e custos. Você pode definir um alerta para quando as horas aumentadas excederem um determinado limite.

Armazéns que começam pela primeira vez

Essa consulta informa sobre novos warehouses que estão sendo iniciados pela primeira vez.

SQL
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 : o alerta sobre novos warehouses pode ajudar sua organização a acompanhar a alocação de recursos. Por exemplo, você pode definir um alerta que é acionado sempre que um novo warehouse é iniciado.

Investigue as cobranças de cobrança

Se você quiser entender especificamente o que um warehouse estava fazendo para gerar cobranças de faturamento, essa consulta pode informar as datas e horários exatos em que o warehouse aumentou ou diminuiu, ou iniciou e parou.

SQL
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

Quais armazéns não foram usados nos últimos 30 dias?

Essa consulta ajuda você a identificar recursos não utilizados, oferecendo uma oportunidade de otimização de custos.

SQL
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 os custos. Por exemplo, você pode definir um alerta que é acionado quando a consulta detecta um warehouse não utilizado.

Armazéns com o maior tempo de atividade em um mês

Essa consulta mostra quais warehouses foram mais utilizados durante um determinado mês. Essa consulta usa o mês de julho como exemplo.

SQL
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 warehouses de alta utilização. Por exemplo, você pode definir um alerta que é acionado quando as horas de disponibilidade de um warehouse excedem um limite específico.

Armazéns que passaram a maior parte do tempo foram ampliados durante um mês

Essa consulta informa sobre warehouses que passaram um tempo significativo no estado aumentado durante um mês. Essa consulta usa o mês de julho como exemplo.

SQL
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 warehouses de alta utilização. Por exemplo, você pode definir um alerta que é acionado quando as horas de disponibilidade de um warehouse excedem um limite específico.