Dokumentacja tabeli systemu zdarzeń magazynu
Ważne
Ta tabela systemowa jest dostępna w publicznej wersji zapoznawczej. Aby uzyskać dostęp do tabeli, schemat musi być włączony w system
katalogu. Aby uzyskać więcej informacji, zobacz Włączanie schematów tabel systemowych.
Z tego artykułu dowiesz się, jak używać tabeli systemu zdarzeń magazynu do monitorowania magazynów i zarządzania nimi w obszarach roboczych. Ta tabela rejestruje wiersz za każdym razem, gdy magazyn uruchamia, zatrzymuje, uruchamia i skaluje w górę i w dół. Możesz użyć przykładowych zapytań w tym artykule z alertami, aby otrzymywać informacje o zmianach w magazynach.
Ścieżka tabeli: ta tabela systemowa znajduje się w lokalizacji system.compute.warehouse_events
.
Zarejestrowane typy zdarzeń magazynu
Ta tabela systemowa rejestruje następujące typy zdarzeń:
SCALED_UP
: Nowy klaster został dodany do magazynu.SCALED_DOWN
: klaster został usunięty z magazynu.STOPPING
: Magazyn jest w trakcie zatrzymywania.RUNNING
: magazyn jest aktywnie uruchomiony.STARTING
: Magazyn jest w trakcie uruchamiania.STOPPED
: magazyn całkowicie przestał działać.
Schemat zdarzeń magazynu
Tabela warehouse_events
systemowa używa następującego schematu:
Nazwa kolumny | Typ danych | opis | Przykład |
---|---|---|---|
account_id |
string | Identyfikator konta usługi Azure Databricks. | 7af234db-66d7-4db3-bbf0-956098224879 |
workspace_id |
string | Identyfikator obszaru roboczego, w którym jest wdrożony magazyn. | 123456789012345 |
warehouse_id |
string | Identyfikator magazynu SQL, z tym zdarzeniem jest powiązane. | 123456789012345 |
event_type |
string | Typ zdarzenia magazynu. Możliwe wartości to SCALED_UP , , SCALED_DOWN , RUNNING STOPPING , STARTING , i STOPPED . |
SCALED_UP |
cluster_count |
integer | Liczba klastrów, które są aktywnie uruchomione. | 2 |
event_time |
timestamp | Sygnatura czasowa zdarzenia w formacie UTC. | 2023-07-20T19:13:09.504Z |
Przykładowe zapytania
Poniższe przykładowe zapytania to szablony. Podłącz dowolne wartości w organizacji. Możesz również dodać alerty do tych zapytań, aby ułatwić informowanie o zmianach w magazynach. Zobacz Tworzenie alertu.
Skorzystaj z następujących przykładowych zapytań, aby uzyskać wgląd w zachowanie magazynu:
- Które magazyny są aktywnie uruchomione i jak długo?
- Identyfikowanie magazynów, które są rozbudowane dłużej niż oczekiwano
- Magazyny, które zaczynają się po raz pierwszy
- Badanie opłat za rozliczenia
- Które magazyny nie były używane w ciągu ostatnich 30 dni?
- Magazyny z największą dostępnością w miesiącu
- Magazyny, które spędziły najwięcej czasu w górę w ciągu miesiąca
Które magazyny są aktywnie uruchomione i jak długo?
To zapytanie określa, które magazyny są obecnie aktywne wraz z czasem działania w godzinach.
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
)
Możliwość alertu: jako administrator obszaru roboczego możesz otrzymywać alerty, jeśli magazyn działa dłużej niż oczekiwano. Na przykład możesz użyć wyników zapytania, aby ustawić warunek alertu do wyzwolenia, gdy godziny pracy przekraczają określony próg.
Identyfikowanie magazynów, które są rozbudowane dłużej niż oczekiwano
To zapytanie określa, które magazyny są obecnie aktywne wraz z czasem działania w godzinach.
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
)
Szansa sprzedaży alertów: Alerty dotyczące tego warunku mogą pomóc w monitorowaniu zasobów i kosztów. Alert można ustawić dla czasu przekroczenia określonego limitu godzin w skali maksymalnej.
Magazyny, które zaczynają się po raz pierwszy
To zapytanie informuje o nowych magazynach, które są uruchamiane po raz pierwszy.
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
)
Możliwość zgłaszania alertów: Alerty dotyczące nowych magazynów mogą pomóc organizacji w śledzeniu alokacji zasobów. Można na przykład ustawić alert wyzwalany za każdym razem, gdy rozpocznie się nowy magazyn.
Badanie opłat za rozliczenia
Jeśli chcesz zrozumieć, co robi magazyn w celu generowania opłat za rozliczenia, to zapytanie może określić dokładne daty i godziny skalowania magazynu w górę lub w dół albo uruchomione i zatrzymane.
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
Które magazyny nie były używane w ciągu ostatnich 30 dni?
To zapytanie pomaga zidentyfikować nieużywane zasoby, co zapewnia możliwość optymalizacji kosztów.
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
Szansa na alert: otrzymywanie alertu dotyczącego nieużywanych zasobów może pomóc organizacji w optymalizacji kosztów. Można na przykład ustawić alert wyzwalany, gdy zapytanie wykryje nieużywany magazyn.
Magazyny z największą dostępnością w miesiącu
To zapytanie pokazuje, które magazyny były używane najbardziej w określonym miesiącu. To zapytanie używa lipca jako przykładu.
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
Możliwość zgłaszania alertów: możesz śledzić magazyny o wysokim wykorzystaniu. Można na przykład ustawić alert, który jest wyzwalany, gdy godziny pracy magazynu przekraczają określony próg.
Magazyny, które spędziły najwięcej czasu w górę w ciągu miesiąca
To zapytanie informuje o magazynach, które spędziły znaczną ilość czasu w stanie rozbudowy w ciągu miesiąca. To zapytanie używa lipca jako przykładu.
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
Możliwość zgłaszania alertów: możesz śledzić magazyny o wysokim wykorzystaniu. Można na przykład ustawić alert, który jest wyzwalany, gdy godziny pracy magazynu przekraczają określony próg.