Systemtabellreferens för lagerhändelser
Viktigt!
Den här systemtabellen finns i offentlig förhandsversion. För att få åtkomst till tabellen måste schemat vara aktiverat i katalogen system
. Mer information finns i Aktivera systemtabellscheman.
I den här artikeln får du lära dig hur du använder systemtabellen för lagerhändelser för att övervaka och hantera SQL-lager i dina arbetsytor. Den här tabellen registrerar en rad för varje gång ett lager startar, stoppar, körs och skalas 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.
Tabellsökväg: Den här systemtabellen finns på system.compute.warehouse_events
.
Händelsetyper för loggat lager
Den här systemtabellen 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.
Schema för informationslagerhändelser
Systemtabellen warehouse_events
använder följande schema:
Kolumnnamn | Datatyp | beskrivning | Exempel |
---|---|---|---|
account_id |
sträng | ID för Azure Databricks-kontot. | 7af234db-66d7-4db3-bbf0-956098224879 |
workspace_id |
sträng | ID:t för arbetsytan 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 värden ä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 de värden som 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 ange ett aviseringsvillkor som ska utlösas 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 ange en avisering för när de uppskalade timmarna överskrider en viss gräns.
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 ange 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 för att generera faktureringsavgifter kan den här frågan berätta exakta datum och tider då lagret skalades upp eller ned eller startades och stoppades.
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
Aviseringsmöjlighet: Att ta emot en avisering om oanvända resurser kan hjälpa din organisation att optimera kostnaderna. Du kan till exempel ange 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 ange 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 ange en avisering som utlöses när drifttidstiderna för ett lager överskrider ett visst tröskelvärde.