Informazioni di riferimento sulla tabella di sistema degli eventi del warehouse
Importante
Questa tabella di sistema è disponibile in anteprima pubblica. Per accedere alla tabella, è necessario abilitare lo schema nel catalogo system
. Per altre informazioni, vedere Abilitare gli schemi di tabella di sistema.
Questo articolo illustra come usare la tabella di sistema degli eventi del warehouse per monitorare e gestire i warehouse SQL nelle aree di lavoro. Questa tabella registra una riga per ogni avvio, arresto, esecuzione e aumento delle prestazioni di un magazzino. È possibile usare le query di esempio in questo articolo con avvisi per tenere informati le modifiche apportate ai warehouse.
Percorso tabella: questa tabella di sistema si trova in system.compute.warehouse_events
.
Tipi di evento del warehouse registrati
Questa tabella di sistema registra i tipi di eventi seguenti:
-
SCALED_UP
: è stato aggiunto un nuovo cluster al warehouse. -
SCALED_DOWN
: un cluster è stato rimosso dal magazzino. -
STOPPING
: il magazzino è in corso di arresto. -
RUNNING
: il magazzino è in esecuzione attivamente. -
STARTING
: il magazzino è in fase di avvio. -
STOPPED
: il magazzino ha interrotto completamente l'esecuzione.
Schema degli eventi del warehouse
La warehouse_events
tabella di sistema usa lo schema seguente:
Nome colonna | Tipo di dati | Descrizione | Esempio |
---|---|---|---|
account_id |
string | ID dell’account di Azure Databricks. | 7af234db-66d7-4db3-bbf0-956098224879 |
workspace_id |
string | ID dell'area di lavoro in cui viene distribuito il magazzino. | 123456789012345 |
warehouse_id |
string | L'ID del warehouse SQL a cui è correlato l'evento. | 123456789012345 |
event_type |
string | Tipo di evento warehouse. I valori consentiti sono SCALED_UP , SCALED_DOWN , STOPPING , RUNNING , STARTING e STOPPED . |
SCALED_UP |
cluster_count |
integer | Numero di cluster in esecuzione attivamente. | 2 |
event_time |
timestamp | Timestamp del momento in cui si è verificato l'evento in formato UTC. | 2023-07-20T19:13:09.504Z |
Query di esempio
Le query di esempio seguenti sono modelli. Collegare qualsiasi valore abbia senso per l'organizzazione. È anche possibile aggiungere avvisi a queste query per rimanere informati sulle modifiche apportate ai warehouse. Vedere Creare un avviso.
Usare le query di esempio seguenti per ottenere informazioni dettagliate sul comportamento del warehouse:
- Quali magazzini sono in esecuzione attivamente e per quanto tempo?
- Identificare i magazzini che sono più lunghi del previsto
- Magazzini che iniziano per la prima volta
- Analizzare gli addebiti per la fatturazione
- Quali magazzini non sono stati utilizzati negli ultimi 30 giorni?
- Magazzini con il maggior tempo di attività in un mese
- Magazzini che hanno trascorso il maggior tempo di lusso durante un mese
Quali magazzini sono in esecuzione attivamente e per quanto tempo?
Questa query identifica i warehouse attualmente attivi insieme al tempo di esecuzione in ore.
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
)
Opportunità di avviso: un amministratore dell'area di lavoro potrebbe essere avvisato se un magazzino è in esecuzione più lungo del previsto. Ad esempio, è possibile usare i risultati della query per impostare una condizione di avviso da attivare quando le ore di esecuzione superano una determinata soglia.
Identificare i magazzini che sono più lunghi del previsto
Questa query identifica i warehouse attualmente attivi insieme al tempo di esecuzione in ore.
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
)
Opportunità di avviso: l'invio di avvisi su questa condizione consente di monitorare le risorse e i costi. È possibile impostare un avviso per quando le ore di alto livello superano un determinato limite.
Magazzini che iniziano per la prima volta
Questa query informa i nuovi warehouse che iniziano per la prima volta.
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
)
Opportunità di avviso: gli avvisi sui nuovi warehouse possono aiutare l'organizzazione a tenere traccia dell'allocazione delle risorse. Ad esempio, è possibile impostare un avviso che viene attivato ogni volta che viene avviato un nuovo magazzino.
Analizzare gli addebiti per la fatturazione
Se si vuole comprendere in modo specifico cosa stava facendo un magazzino per generare addebiti per la fatturazione, questa query può indicare le date esatte e le ore in cui il magazzino è stato ridimensionato verso l'alto o verso il basso o avviato e arrestato.
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
Quali magazzini non sono stati utilizzati negli ultimi 30 giorni?
Questa query consente di identificare le risorse inutilizzate, offrendo un'opportunità per l'ottimizzazione dei costi.
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
Opportunità di avviso: la ricezione di un avviso sulle risorse inutilizzate potrebbe aiutare l'organizzazione a ottimizzare i costi. Ad esempio, è possibile impostare un avviso che viene attivato quando la query rileva un warehouse inutilizzato.
Magazzini con il maggior tempo di attività in un mese
Questa query mostra quali magazzini sono stati usati di più durante un mese specifico. Questa query usa luglio come esempio.
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
Opportunità di avviso: è possibile tenere traccia dei magazzini ad utilizzo elevato. Ad esempio, è possibile impostare un avviso che viene attivato quando le ore di tempo di attività per un magazzino superano una soglia specifica.
Magazzini che hanno trascorso il maggior tempo di lusso durante un mese
Questa query informa i magazzini che hanno trascorso un tempo significativo nello stato di lusso durante un mese. Questa query usa luglio come esempio.
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
Opportunità di avviso: è possibile tenere traccia dei magazzini ad utilizzo elevato. Ad esempio, è possibile impostare un avviso che viene attivato quando le ore di tempo di attività per un magazzino superano una soglia specifica.