Sdílet prostřednictvím


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

Důležité

Tato funkce je ve verzi Public Preview.

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ů.

Systémová tabulka událostí skladu 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 string ID účtu Azure Databricks. 7af234db-66d7-4db3-bbf0-956098224879
workspace_id string ID pracovního prostoru, ve kterém je sklad nasazen. 123456789012345
warehouse_id string ID SQL Warehouse, ke které událost souvisí. 123456789012345
event_type string Typ události skladu. Možné hodnoty jsou SCALED_UP, , SCALED_DOWN, RUNNINGSTOPPING, 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 se událost uskutečnila. 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 aktuálně aktivní spolu s dobou běhu v hodinách.

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
)

Příležitost upozornění: Jako správce pracovního prostoru můžete chtít být upozorněni, pokud sklad běží déle, než se čekalo. Pomocí výsledků dotazu můžete například nastavit podmínku upozornění, která se aktivuje, když spuštěná hodina překročí určitou prahovou hodnotu.

Identifikace skladů, které jsou škálované déle, než se čekalo

Tento dotaz identifikuje, které sklady jsou aktuálně aktivní spolu s dobou běhu 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. Výstrahu můžete nastavit, když počet hodin ve škálování překročí určitý limit.

Sklady, které se spouští poprvé

Tento dotaz vás informuje o nových skladech, které se spouští 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ělá za účelem generování fakturačních poplatků, tento dotaz vám může sdělit přesná data a časy vertikálního navýšení nebo snížení kapacity skladu nebo 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

Příležitost upozornění: Příjem upozornění na nevyužité prostředky může vaší organizaci pomoct optimalizovat náklady. Můžete například nastavit upozornění, které se aktivuje, když dotaz zjistí nepoužívaný sklad.

Sklady s největší dostupností 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 limit 0;

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.