Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Importante
Questa tabella di sistema è disponibile in anteprima pubblica.
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, funzionamento e cambiamento di scala verso l'alto o verso il basso di un magazzino. È possibile utilizzare le query di esempio fornite in questo articolo insieme agli avvisi per essere informati sulle modifiche apportate ai vostri magazzini.
Percorso della 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 fermata. -
RUNNING
: Il magazzino è operativo. -
STARTING
: il magazzino è in fase di avvio. -
STOPPED
: Il magazzino ha completamente cessato l'attività.
Schema degli eventi del warehouse
La warehouse_events
tabella di sistema usa lo schema seguente:
Nome colonna | Tipo di dati | Descrizione | Esempio |
---|---|---|---|
account_id |
corda | ID dell’account di Azure Databricks. | 7af234db-66d7-4db3-bbf0-956098224879 |
workspace_id |
corda | ID dell'area di lavoro in cui viene distribuito il magazzino. | 123456789012345 |
warehouse_id |
corda | L'ID del warehouse SQL a cui è correlato l'evento. | 123456789012345 |
event_type |
corda | Tipo di evento warehouse. I valori consentiti sono SCALED_UP , SCALED_DOWN , STOPPING , RUNNING , STARTING e STOPPED . |
SCALED_UP |
cluster_count |
numero intero | Numero di cluster in esecuzione attivamente. | 2 |
event_time |
Marca temporale | 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. Inserisci i valori che hanno senso per la tua 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 operativi e da quanto tempo?
- Identificare i magazzini che sono ampliati più a lungo del previsto
- Magazzini che diventano operativi per la prima volta
- Analizzare gli addebiti di 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 ampliati nel corso di un mese
Quali magazzini sono operativi e da quanto tempo?
Questa query identifica i magazzini attualmente attivi insieme al loro tempo di attività in ore.
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
)
Opportunità di avviso: Come amministratore dell'area di lavoro, potresti voler essere avvisato se un magazzino funziona più a 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 stati ampliati per più tempo del previsto
Questa query identifica i magazzini attualmente attivi insieme al loro tempo di attività 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 quando le ore ampliate superano un determinato limite.
Magazzini che aprono per la prima volta
Questa query fornisce informazioni sui nuovi magazzini che stanno iniziando 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
Se si desidera comprendere in modo specifico le operazioni di un magazzino per generare addebiti, questa query può indicare le date esatte e le ore in cui il magazzino è stato espanso o ridotto, 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 passato più tempo ampliati durante un mese
Questa query informa sui magazzini che hanno trascorso un tempo significativo nello stato potenziato 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.