Lagerevenemangssystem table-referens
Viktigt!
Det här systemet table finns i offentlig förhandsversion. Om du vill komma åt tablemåste schema aktiveras i din system
catalog. Mer information finns i Aktivera systemscheman table.
I den här artikeln får du lära dig hur du använder informationslagerhändelsesystemet table för att övervaka och hantera SQL-lager på dina arbetsytor. Den här table registrerar en rad för varje gång en lageranläggning startar, stoppar, körs och skaleras upp och ned. Du kan använda exempelfrågorna i den här artikeln med aviseringar för att hålla dig informerad om ändringar i dina lager.
Table sökväg: Det här systemet table finns på system.compute.warehouse_events
.
Händelsetyper för loggat lager
Det här systemet table loggar följande typer av händelser:
-
SCALED_UP
: Ett nytt kluster har lagts till i lagret. -
SCALED_DOWN
: Ett kluster har tagits bort från lagret. -
STOPPING
: Lagret håller på att stoppas. -
RUNNING
: Lagret körs aktivt. -
STARTING
: Lagret håller på att startas. -
STOPPED
: Lagret har helt slutat köras.
Lagerhändelser schema
Systemet warehouse_events
använder följande tableschema:
Column namn | Datatyp | beskrivning | Exempel |
---|---|---|---|
account_id |
sträng | ID för Azure Databricks-kontot. | 7af234db-66d7-4db3-bbf0-956098224879 |
workspace_id |
sträng | ID för arbetsytan where där lagret distribueras. | 123456789012345 |
warehouse_id |
sträng | ID för SQL Warehouse som händelsen är relaterad till. | 123456789012345 |
event_type |
sträng | Typ av lagerhändelse. Möjliga values är SCALED_UP , SCALED_DOWN , STOPPING , RUNNING , STARTING och STOPPED . |
SCALED_UP |
cluster_count |
integer | Antalet kluster som körs aktivt. | 2 |
event_time |
timestamp | Tidsstämpel för när händelsen ägde rum i UTC. | 2023-07-20T19:13:09.504Z |
Exempelfrågor
Följande exempelfrågor är mallar. Anslut det values passar din organisation. Du kan också lägga till aviseringar i dessa frågor som hjälper dig att hålla dig informerad om ändringar i dina lager. Se Skapa en avisering.
Använd följande exempelfrågor för att få insikt i informationslagrets beteende:
- Vilka lager körs aktivt och hur länge?
- Identifiera lager som är längre än förväntat
- Lager som startar för första gången
- Undersöka faktureringsavgifter
- Vilka lager har inte använts under de senaste 30 dagarna?
- Lager med mest drifttid på en månad
- Lager som tillbringade mest tid uppskalat under en månad
Vilka lager körs aktivt och hur länge?
Den här frågan identifierar vilka lager som för närvarande är aktiva tillsammans med deras körningstid i timmar.
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
)
Aviseringsmöjlighet: Som arbetsyteadministratör kanske du vill få aviseringar om ett lager körs längre än förväntat. Du kan till exempel använda frågeresultatet för att set ett aviseringsvillkor som utlöses när de timmar som körs överskrider ett visst tröskelvärde.
Identifiera lager som är längre än förväntat
Den här frågan identifierar vilka lager som för närvarande är aktiva tillsammans med deras körningstid i timmar.
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
)
Aviseringsmöjlighet: Aviseringar om det här villkoret kan hjälpa dig att övervaka resurser och kostnader. Du kan set en varning för när de uppskalade timmarna överskrider en viss limit.
Lager som startar för första gången
Den här frågan informerar dig om nya lager som startar för första gången.
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
)
Aviseringsmöjlighet: Aviseringar om nya lager kan hjälpa din organisation att spåra resursallokering. Du kan till exempel set en avisering som utlöses varje gång ett nytt lager startar.
Undersöka faktureringsavgifter
Om du specifikt vill förstå vad ett lager gjorde med faktureringsavgifterna för generate kan det här frågan visa de exakta datum och tider då lagret skalade upp eller ned, eller startade och stoppade.
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
Vilka lager har inte använts under de senaste 30 dagarna?
Den här frågan hjälper dig att identifiera oanvända resurser, vilket ger en möjlighet till kostnadsoptimering.
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
Varningsmöjlighet: Om du tar emot en varning om oanvända resurser kan det hjälpa din organisation att optimize kostnader. Du kan till exempel set en avisering som utlöses när frågan identifierar ett oanvänt lager.
Lager med mest drifttid på en månad
Den här frågan visar vilka lager som har använts mest under en viss månad. Den här frågan använder juli som exempel.
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
Aviseringsmöjlighet: Du kanske vill hålla reda på informationslager med hög användning. Du kan till exempel set en avisering som utlöses när drifttidstiderna för ett lager överskrider ett visst tröskelvärde.
Lager som tillbringade mest tid uppskalat under en månad
Den här frågan informerar dig om lager som har tillbringat mycket tid i det exklusiva tillståndet under en månad. Den här frågan använder juli som exempel.
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
Aviseringsmöjlighet: Du kanske vill hålla reda på informationslager med hög användning. Du kan till exempel set en avisering som utlöses när drifttidstiderna för ett lager överskrider ett visst tröskelvärde.