Referenční informace k systémové tabulce událostí skladových událostí

V tomto článku se naučíte používat systémovou tabulku událostí skladu k monitorování a správě skladových skladů ve vašich pracovních prostorech. Tato tabulka zaznamenává řádek při každém spuštění, zastavení, spuštění a vertikálním navýšení nebo snížení kapacity skladu. Ukázkové dotazy v tomto článku můžete použít s upozorněními, abyste měli přehled o změnách skladů.

Cesta k tabulce: Tato systémová tabulka se nachází na system.compute.warehouse_eventsadrese .

Typy událostí protokolovaného skladu

Tato systémová tabulka protokoluje následující typy událostí:

  • SCALED_UP: Do skladu se přidal nový cluster.
  • SCALED_DOWN: Cluster byl odebrán ze skladu.
  • STOPPING: Sklad je v procesu zastavení.
  • RUNNING: Sklad je aktivně spuštěný.
  • STARTING: Sklad se právě spouští.
  • STOPPED: Sklad se úplně zastavil.

Schéma událostí skladu

warehouse_events Systémová tabulka používá následující schéma:

Název sloupce Datový typ Popis Příklad
account_id řetězec ID účtu Azure Databricks. 7af234db-66d7-4db3-bbf0-956098224879
workspace_id řetězec ID pracovního prostoru, ve kterém je sklad nasazen. 123456789012345
warehouse_id řetězec ID SQL Warehouse, ke které událost souvisí. 123456789012345
event_type řetězec Typ události skladu. Možné hodnoty jsou SCALED_UP, , SCALED_DOWN, STOPPINGRUNNING, STARTING, a STOPPED. SCALED_UP
cluster_count integer Počet clusterů, které jsou aktivně spuštěné. 2
event_time časové razítko Časové razítko, kdy došlo k události v UTC. 2023-07-20T19:13:09.504Z

Vzorové dotazy

Následující ukázkové dotazy jsou šablony. Připojte všechny hodnoty, které mají smysl pro vaši organizaci. Do těchto dotazů můžete také přidat upozornění, která vám pomůžou udržet si přehled o změnách vašich skladů. Viz Vytvoření výstrahy.

Pomocí následujících ukázkových dotazů získáte přehled o chování skladu:

Které sklady aktivně běží a jak dlouho?

Tento dotaz identifikuje, které sklady jsou nyní aktivní spolu s dobou provozu v hodinách.

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
  )

Příležitost k upozornění: Jako správce pracovního prostoru můžete chtít dostávat upozornění, pokud sklad běží déle, než se očekávalo. Pomocí výsledků dotazu můžete například nastavit podmínku upozornění, která se aktivuje, když provozní hodiny překročí určitou prahovou hodnotu.

Identifikovat sklady, které jsou rozšířené déle, než se očekávalo

Tento dotaz identifikuje, které sklady jsou nyní aktivní spolu s dobou provozu v hodinách.

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
   )

Příležitost k upozornění: Upozorňování na tuto podmínku vám může pomoct monitorovat prostředky a náklady. Upozornění můžete nastavit ve chvíli, kdy počet navýšených hodin překročí určitý limit.

Sklady, které začínají poprvé

Tento dotaz vás informuje o nových skladech, které se otevírají poprvé.

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
   )

Příležitost k upozornění: Upozorňování na nové sklady může vaší organizaci pomoct sledovat přidělení prostředků. Můžete například nastavit upozornění, které se aktivuje při každém spuštění nového skladu.

Zkoumání fakturačních poplatků

Pokud chcete zjistit konkrétně, co sklad dělal k generování účtovacích poplatků, tento dotaz vám může sdělit přesná data a časy, kdy sklad zvýšil nebo snížil kapacitu, nebo kdy byl spuštěn a zastaven.

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

Které sklady se během posledních 30 dnů nepoužily?

Tento dotaz vám pomůže identifikovat nevyužité prostředky a poskytuje příležitost pro optimalizaci nákladů.

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

Možnost upozornění: Obdržení upozornění na nevyužité prostředky by mohlo pomoci vaší organizaci optimalizovat náklady. Můžete například nastavit upozornění, které se aktivuje, když dotaz zjistí nepoužívaný sklad.

Sklady s největším provozním časem za měsíc

Tento dotaz ukazuje, které sklady se během konkrétního měsíce používají nejvíce. Tento dotaz jako příklad používá červenec.

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

Příležitost k upozornění: Možná budete chtít sledovat sklady s vysokým využitím. Můžete například nastavit upozornění, které se aktivuje, když doba provozu skladu překročí určitou prahovou hodnotu.

Sklady, které strávily nejvíce času škálováním během měsíce

Tento dotaz vás informuje o skladech, které během měsíce strávily významný čas ve stavu upscaled. Tento dotaz jako příklad používá červenec.

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

Příležitost k upozornění: Možná budete chtít sledovat sklady s vysokým využitím. Můžete například nastavit upozornění, které se aktivuje, když doba provozu skladu překročí určitou prahovou hodnotu.