Pular para o conteúdo principal

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

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

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, NOW()) / 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 depósitos pode ajudar sua organização a acompanhar a alocação de recursos. Por exemplo, o senhor pode definir um alerta que é acionado toda vez que um novo depósito começa.

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, o senhor pode definir um alerta que é acionado quando a consulta detecta um depósito 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 : O senhor pode querer acompanhar os armazéns de alta utilização. Por exemplo, o senhor pode definir um alerta que é acionado quando as horas de atividade de um depósito ultrapassam 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 : O senhor pode querer acompanhar os armazéns de alta utilização. Por exemplo, o senhor pode definir um alerta que é acionado quando as horas de atividade de um depósito ultrapassam um limite específico.